From 72b2b0ec8e103b3f8a3871f63a9dafca9dfabb11 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 8 Apr 2021 12:58:59 -0400 Subject: [PATCH 01/66] :bookmark: Bump version --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 33161ead..26455336 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,11 @@ "description": "Configurable Pipeline for the Analysis of Connectomes", "homepage": "https://github.com/FCP-INDI/C-PAC_GUI", "productName": "C-PAC", - "version": "0.0.7", + "version": "0.0.8", "scripts": { - "build-dll": "cross-env NODE_ENV=development node --trace-warnings --trace-deprecation -r @babel/register ./node_modules/webpack/bin/webpack --mode development --config config/webpack.config.renderer.dev.dll.js --color", + "build-dll": "cross-env NODE_ENV=development node --trace-warnings --trace-deprecation -r @babel/register ./node_modules/webpack/bin/webpack --mode development --config config/webpack.config.renderer.dev.dll.js --color", "build:electron": "cross-env node --trace-warnings --trace-deprecation -r @babel/register ./node_modules/webpack/bin/webpack --mode production --config config/webpack.config.main.prod.js --color", - "build:renderer": "cross-env node --trace-warnings --trace-deprecation -r @babel/register ./node_modules/webpack/bin/webpack --mode production --config config/webpack.config.renderer.prod.js --color", + "build:renderer": "cross-env node --trace-warnings -r @babel/register ./node_modules/webpack/bin/webpack --mode production --config config/webpack.config.renderer.prod.js --color", "build:all": "yarn run build:electron && yarn run build:renderer", "electron-rebuild": "electron-rebuild --parallel --force --types prod,dev,optional --module-dir app", "postinstall": "yarn run build-dll && electron-builder install-app-deps && yarn run link", @@ -17,7 +17,7 @@ "dev:browser": "TARGET=browser yarn run dev:renderer", "dev:electron": "npm-run-all --parallel dev:renderer dev:electron-main", "dev:electron-main": "cross-env NODE_ENV=development node --trace-warnings --trace-deprecation -r @babel/register ./node_modules/webpack/bin/webpack --mode development --config config/webpack.config.main.dev.js && cross-env HOT=1 NODE_ENV=development node_modules/electron/dist/electron -r @babel/register ./app/dist/main", - "dev:renderer": "cross-env NODE_ENV=development node --trace-warnings --trace-deprecation -r @babel/register ./node_modules/webpack/bin/webpack serve --mode development --config config/webpack.config.renderer.dev.js", + "dev:renderer": "cross-env NODE_ENV=development node --trace-warnings --trace-deprecation -r @babel/register ./node_modules/webpack/bin/webpack serve --mode development --config config/webpack.config.renderer.dev.js", "lint": "cross-env NODE_ENV=development eslint --cache --format=node_modules/eslint-formatter-pretty .", "lint:fix": "yarn run lint -- --fix", "lint-styles": "stylelint app/*.css app/components/*.css --syntax scss", From d5960028f561d0db156019cc262bfcca0b3b615f Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 8 Apr 2021 13:03:03 -0400 Subject: [PATCH 02/66] :construction_worker: Delete release if already exists --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index c6812df2..83e5c62f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -123,6 +123,7 @@ jobs: git push origin "${TAG}" -f if [ "${CIRCLE_BRANCH}" == "master" ]; then + github-release delete -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} --tag "${VERSION}" || true github-release release -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} --tag "${VERSION}" --name "${VERSION}" ${RELEASE_OPTS} github-release upload -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} --tag "${VERSION}" --name "c-pac_gui-${VERSION}-linux-amd64.deb" --file /tmp/workspace/dist-linux/c-pac_gui_*_amd64.deb github-release upload -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} --tag "${VERSION}" --name "c-pac_gui-${VERSION}-linux-amd64.snap" --file /tmp/workspace/dist-linux/c-pac_gui_*_amd64.snap From 456a5a48cbc95cf6b1a6eff0852eeae26e1e43e1 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Apr 2021 15:25:55 -0400 Subject: [PATCH 03/66] :construction: WIP Add 1.8 (manual) card --- app/components/PipelineCard.js | 12 +- app/sagas/config.js | 1 + c-pac/pipeline.js | 164 ++++++++++++++++++++++++- config/webpack.config.renderer.prod.js | 4 +- 4 files changed, 175 insertions(+), 6 deletions(-) diff --git a/app/components/PipelineCard.js b/app/components/PipelineCard.js index e7e04721..956b7055 100644 --- a/app/components/PipelineCard.js +++ b/app/components/PipelineCard.js @@ -82,7 +82,9 @@ class PipelineCard extends Component { const version = versions.get(versionId) - const functional = version.getIn(['configuration', 'functional', 'enabled']) + const anatomical = version.getIn(['configuration', 'anatomical', 'enabled']) || false + + const functional = version.getIn(['configuration', 'functional', 'enabled']) || false let derivatives = version.getIn(['configuration', 'derivatives', 'enabled']) if (derivatives) { @@ -117,9 +119,13 @@ class PipelineCard extends Component { - + - + diff --git a/app/sagas/config.js b/app/sagas/config.js index acc1d98e..0336e7c0 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -196,6 +196,7 @@ function* loadConfig (action) { if (initialState.pipelines) { initialState.pipelines = initialState.pipelines.map(cpac.pipeline.normalize) + initialState.pipelines.push({'id': 'manual', 'name': '1.8 manual', 'versions': {1: {'version': '1.8.0', 'configuration': cpac.pipeline.newTemplate}}}); // temporary localStorage.setItem('state', JSON.stringify(initialState)) } diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index d4363ab7..d16fbdec 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -8,7 +8,169 @@ import yamlTemplate, { raw } from './resources/pipeline/yaml' const template = parse(raw) template.name = 'Default' -export { yamlTemplate, template, raw as rawTemplate } +const newTemplateRaw = `%YAML 1.1 +--- +# CPAC Pipeline Configuration YAML file +# Version 1.8.0 +# +# http://fcp-indi.github.io for more info. +# +# Tip: This file can be edited manually with a text editor for quick modifications. + +pipeline_setup: + + # Name for this pipeline configuration - useful for identification. + pipeline_name: cpac-default-pipeline + + output_directory: + + # Directory where C-PAC should write out processed data, logs, and crash reports. + # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary + # name like '/output', and then map (-B/-v) your desired output directory to that label. + # - If running outside a container, this should be a full path to a directory. + path: /output + + # (Optional) Path to a BIDS-Derivatives directory that already has outputs. + # - This option is intended to ingress already-existing resources from an output + # directory without writing new outputs back into the same directory. + # - If provided, C-PAC will ingress the already-computed outputs from this directory and + # continue the pipeline from where they leave off. + # - If left as 'None', C-PAC will ingress any already-computed outputs from the + # output directory you provide above in 'path' instead, the default behavior. + source_outputs_dir: None + + # Set to True to make C-PAC ingress the outputs from the primary output directory if they + # exist, even if a source_outputs_dir is provided + # - Setting to False will pull from source_outputs_dir every time, over-writing any + # calculated outputs in the main output directory + # - C-PAC will still pull from source_outputs_dir if the main output directory is + # empty, however + pull_source_once: True + + # Include extra versions and intermediate steps of functional preprocessing in the output directory. + write_func_outputs: False + + # Include extra outputs in the output directory that may be of interest when more information is needed. + write_debugging_outputs: False + + # Output directory format and structure. + # Options: default, ndmg + output_tree: "default" + + # Generate quality control pages containing preprocessing and derivative outputs. + generate_quality_control_images: True + + working_directory: + + # Directory where C-PAC should store temporary and intermediate files. + # - This directory must be saved if you wish to re-run your pipeline from where you left off (if not completed). + # - NOTE: As it stores all intermediate files, this directory can grow to become very + # large, especially for data with a large amount of TRs. + # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary + # name like '/work', and then map (-B/-v) your desired output directory to that label. + # - If running outside a container, this should be a full path to a directory. + # - This can be written to '/tmp' if you do not intend to save your working directory. + path: /tmp + + # Deletes the contents of the Working Directory after running. + # This saves disk space, but any additional preprocessing or analysis will have to be completely re-run. + remove_working_dir: True + + log_directory: + + # Whether to write log details of the pipeline run to the logging files. + run_logging: True + + path: /logs + + crash_log_directory: + + # Directory where CPAC should write crash logs. + path: /crash + + system_config: + + # Select Off if you intend to run CPAC on a single machine. + # If set to On, CPAC will attempt to submit jobs through the job scheduler / resource manager selected below. + on_grid: + + run: Off + + # Sun Grid Engine (SGE), Portable Batch System (PBS), or Simple Linux Utility for Resource Management (SLURM). + # Only applies if you are running on a grid or compute cluster. + resource_manager: SGE + + SGE: + # SGE Parallel Environment to use when running CPAC. + # Only applies when you are running on a grid or compute cluster using SGE. + parallel_environment: mpi_smp + + # SGE Queue to use when running CPAC. + # Only applies when you are running on a grid or compute cluster using SGE. + queue: all.q + + # The maximum amount of memory each participant's workflow can allocate. + # Use this to place an upper bound of memory usage. + # - Warning: 'Memory Per Participant' multiplied by 'Number of Participants to Run Simultaneously' + # must not be more than the total amount of RAM. + # - Conversely, using too little RAM can impede the speed of a pipeline run. + # - It is recommended that you set this to a value that when multiplied by + # 'Number of Participants to Run Simultaneously' is as much RAM you can safely allocate. + maximum_memory_per_participant: 1 + + # The maximum amount of cores (on a single machine) or slots on a node (on a cluster/grid) + # to allocate per participant. + # - Setting this above 1 will parallelize each participant's workflow where possible. + # If you wish to dedicate multiple cores to ANTS-based anatomical registration (below), + # this value must be equal or higher than the amount of cores provided to ANTS. + # - The maximum number of cores your run can possibly employ will be this setting multiplied + # by the number of participants set to run in parallel (the 'Number of Participants to Run + # Simultaneously' setting). + max_cores_per_participant: 1 + + # The number of cores to allocate to ANTS-based anatomical registration per participant. + # - Multiple cores can greatly speed up this preprocessing step. + # - This number cannot be greater than the number of cores per participant. + num_ants_threads: 1 + + # The number of cores to allocate to processes that use OpenMP. + num_OMP_threads: 1 + + # The number of participant workflows to run at the same time. + # - The maximum number of cores your run can possibly employ will be this setting + # multiplied by the number of cores dedicated to each participant (the 'Maximum Number of Cores Per Participant' setting). + num_participants_at_once: 1 + + # Full path to the FSL version to be used by CPAC. + # If you have specified an FSL path in your .bashrc file, this path will be set automatically. + FSLDIR: /usr/share/fsl/5.0 + + Amazon-AWS: + + # If setting the 'Output Directory' to an S3 bucket, insert the path to your AWS credentials file here. + aws_output_bucket_credentials: + + # Enable server-side 256-AES encryption on data to the S3 bucket + s3_encryption: False + + Debugging: + + # Verbose developer messages. + verbose: Off + + +# PREPROCESSING +# ------------- +surface_analysis: + + # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives. + # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline, + # select those 'Freesurfer-' labeled options further below in anatomical_preproc. + run_freesurfer: Off` + +const newTemplate = yaml.safeLoad(newTemplateRaw) + +export { yamlTemplate, template, raw as rawTemplate, newTemplate } function slugify(text) { return text.toString().toLowerCase() diff --git a/config/webpack.config.renderer.prod.js b/config/webpack.config.renderer.prod.js index cd757f90..a36103ab 100644 --- a/config/webpack.config.renderer.prod.js +++ b/config/webpack.config.renderer.prod.js @@ -10,8 +10,8 @@ import baseConfig from './webpack.config.base'; const dist = path.resolve(process.cwd(), 'app', 'dist'); -const SpeedMeasurePlugin = require("speed-measure-webpack-plugin"); -const smp = new SpeedMeasurePlugin(); +// const SpeedMeasurePlugin = require("speed-measure-webpack-plugin"); +// const smp = new SpeedMeasurePlugin(); const target = process.env.TARGET == 'browser' ? 'web' : 'electron-renderer' From 3f2d9932493392b336d409a0b1aa0ac1ed25843f Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Apr 2021 16:59:17 -0400 Subject: [PATCH 04/66] :construction: Autogenerate tabs --- app/containers/pipeline/PipelineEditor.js | 6 +++++- app/sagas/config.js | 2 +- c-pac/pipeline.js | 1 - 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index de416b8c..a38665da 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -37,7 +37,6 @@ import Switch from '@material-ui/core/Switch'; import Collapse from '@material-ui/core/Collapse'; - class PipelineEditor extends Component { static styles = theme => ({ @@ -91,6 +90,11 @@ class PipelineEditor extends Component { textColor="primary" centered > + { + configuration.map((entry, k) => ( + + )) + } { configuration.getIn(["anatomical", "enabled"]) ? diff --git a/app/sagas/config.js b/app/sagas/config.js index 0336e7c0..bbb804a0 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -196,7 +196,7 @@ function* loadConfig (action) { if (initialState.pipelines) { initialState.pipelines = initialState.pipelines.map(cpac.pipeline.normalize) - initialState.pipelines.push({'id': 'manual', 'name': '1.8 manual', 'versions': {1: {'version': '1.8.0', 'configuration': cpac.pipeline.newTemplate}}}); // temporary + initialState.pipelines.push({'id': 'manual', 'name': '1.8 manual', 'versions': {1: {'version': '1.8.0', 'configuration': {...Object.values(initialState.pipelines[0].versions)[0].configuration, ...cpac.pipeline.newTemplate}}}}); // temporary localStorage.setItem('state', JSON.stringify(initialState)) } diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index d16fbdec..92c4ecd0 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -186,7 +186,6 @@ function clone(obj) { } export function normalize(pipeline) { - pipeline = pipeline ? pipeline : {}; if (pipeline.id == 'default') { return clone(template) From a38fe32a7770e01a5047e8bf48451543383089f5 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 13 Apr 2021 16:53:09 -0400 Subject: [PATCH 05/66] :art: Generalize tab navigation --- app/containers/pipeline/PipelineEditor.js | 48 ++++++++--------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index a38665da..7c122ab6 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -91,41 +91,27 @@ class PipelineEditor extends Component { centered > { - configuration.map((entry, k) => ( - + configuration.keySeq().toJS().map((k) => ( + )) } - - - { configuration.getIn(["anatomical", "enabled"]) ? - - - Functional - - )} classes={{ - wrapper: classes.tabWrap - }} /> - : null } - { configuration.getIn(["longitudinal", "enabled"]) ? - - : null } - { configuration.getIn(["derivatives", "enabled"]) ? - - : null } - - - - - + { + configuration.entrySeq().map((entry) => { + switch(entry[0]){ + case 'general': + return ( + // TODO SSOT + ) + break; + default: + return ( +
No form yet for {entry[0].replace('_', ' ')}
+ ) + } + }) + } ); } From 8190ee00410f6d7fc056b9ace3686bf96fb02196 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 13 Apr 2021 17:32:12 -0400 Subject: [PATCH 06/66] :construction: :recycle: Move logic-in-progress to PipelinePart component --- app/containers/pipeline/PipelineEditor.js | 22 +- .../pipeline/parts/PipelinePart.jsx | 399 ++++++++++++++++++ app/containers/pipeline/parts/index.js | 1 + 3 files changed, 421 insertions(+), 1 deletion(-) create mode 100644 app/containers/pipeline/parts/PipelinePart.jsx diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 7c122ab6..8b07adca 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -29,6 +29,7 @@ import { FunctionalPage, LongitudinalPage, DerivativesPage, + PipelinePart } from 'containers/pipeline/parts' import Button from '@material-ui/core/Button'; @@ -105,9 +106,28 @@ class PipelineEditor extends Component { // TODO SSOT ) break; + case 'anatomical': + return ( + // TODO SSOT + ) + case 'functional': + return ( + // TODO SSOT + ) + case 'derivatives': + return ( + // TODO SSOT + ) + case 'longitudinal': + return ( + // TODO SSOT + ) default: return ( -
No form yet for {entry[0].replace('_', ' ')}
+ +
No form yet for {entry[0].replace('_', ' ')}
+ +
) } }) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx new file mode 100644 index 00000000..6ff4882e --- /dev/null +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -0,0 +1,399 @@ +import React, { Component } from 'react'; +import { withStyles, Typography } from '@material-ui/core'; +import Grid from '@material-ui/core/Grid' + +import Paper from '@material-ui/core/Paper'; +import ExpansionPanel from '@material-ui/core/ExpansionPanel'; +import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; +import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; +import MenuItem from '@material-ui/core/MenuItem'; +import TextField from '@material-ui/core/TextField'; +import Switch from '@material-ui/core/Switch'; +import InputAdornment from '@material-ui/core/InputAdornment'; + +import FormGroup from '@material-ui/core/FormGroup'; +import FormLabel from '@material-ui/core/FormLabel'; +import FormControl from '@material-ui/core/FormControl'; +import FormHelperText from '@material-ui/core/FormHelperText'; +import FormControlLabel from '@material-ui/core/FormControlLabel'; +import InputLabel from '@material-ui/core/InputLabel'; + +import Help from 'components/Help' +import FormControlLabelled from 'components/FormControlLabelled' + + +class PipelinePart extends Component { + + static styles = theme => ({ + sectionTitle: { + paddingTop: 6, + paddingLeft: 6, + }, + }); + + render() { + const { classes, configuration, onChange } = this.props + + return ( + +
{ JSON.stringify(configuration, null, 2) }
+ {/* + + + Execution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sun Grid Engine (SGE) + Portable Batch System (PBS) + SLURM + + + + + + + + + + + + + + + + + + + Outputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */} +
+ ) + } +} + +export default withStyles(PipelinePart.styles)(PipelinePart); diff --git a/app/containers/pipeline/parts/index.js b/app/containers/pipeline/parts/index.js index bd7d4a7e..b623ebfd 100644 --- a/app/containers/pipeline/parts/index.js +++ b/app/containers/pipeline/parts/index.js @@ -3,3 +3,4 @@ export AnatomicalPage from './AnatomicalPage' export FunctionalPage from './FunctionalPage' export LongitudinalPage from './LongitudinalPage' export DerivativesPage from './DerivativesPage' +export PipelinePart from './PipelinePart' \ No newline at end of file From 513389b717d1f1cdf80484409ff25b31f514196d Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 14 Apr 2021 17:25:34 -0400 Subject: [PATCH 07/66] :construction: :recycle: Generate form inputs based on input type TODO: Fix `names`. Right now they're just the most-specific level --- app/containers/pipeline/PipelineEditor.js | 15 +- .../pipeline/parts/PipelinePart.jsx | 486 +++++------------- 2 files changed, 138 insertions(+), 363 deletions(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 8b07adca..7eb2f722 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -51,7 +51,7 @@ class PipelineEditor extends Component { }); state = { - tab: 0, + tab: 'general', }; handleTabChange = (event, tab) => { @@ -103,29 +103,28 @@ class PipelineEditor extends Component { switch(entry[0]){ case 'general': return ( - // TODO SSOT + // TODO SSOT ) break; case 'anatomical': return ( - // TODO SSOT + // TODO SSOT ) case 'functional': return ( - // TODO SSOT + // TODO SSOT ) case 'derivatives': return ( - // TODO SSOT + // TODO SSOT ) case 'longitudinal': return ( - // TODO SSOT + // TODO SSOT ) default: return ( - -
No form yet for {entry[0].replace('_', ' ')}
+ ) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 6ff4882e..185ac538 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -20,6 +20,135 @@ import InputLabel from '@material-ui/core/InputLabel'; import Help from 'components/Help' import FormControlLabelled from 'components/FormControlLabelled' +import Immutable from 'immutable'; + + +function formatLabel(label) { + const specialCasings = { + ants: "ANTs", + freesurfer: "FreeSurfer", + dir: "Directory" + }; // words with special casing or adjusted spelling + const keepLower = ['at', 'per'] // words to not capitalize + let labelParts = label.split("_"); + return labelParts.map(part => { + if (part == part.toUpperCase() || keepLower.includes(part)) { + return part; // keep all uppercase uppercase + } + if (Object.keys(specialCasings).includes(part)) { + return specialCasings[part]; + } + return part.charAt(0).toUpperCase() + part.slice(1,) + }).join(" "); +} + + +function returnComponent(obj, classes={}, onChange=undefined, parents=[]) { + switch (Immutable.Map.isMap(obj)) { + case true: + return ( + <> + { console.log(obj) } + { obj.entrySeq().map((entry) => { + console.log(Object.fromEntries([[entry[0], typeof(entry[1])]])) + switch (Immutable.Map.isMap(entry[1])) { + case true: + parents.push(entry[0]) + return ( + + + + { formatLabel(entry[0]) } + + + + + { returnComponent(entry[1], classes, onChange, parents) } + + + + ) + case false: + const regex = new RegExp(`^\s*{entry[0]}`); + const label = formatLabel(entry[0]); + switch (typeof(entry[1])) { + case 'boolean': + return ( + + + + + + + + + + ) + case 'string': + return ( + + + + + + + + ) + case 'number': + return ( + + + + + + + + ) + } + default: + return ( + <>{ entry[1] } + // <>key {k} : value {v} + ) + } + } ) } + + ) + default: + return ( + <> + //
{ typeof(obj) }
{ obj }
+ ) + } +} class PipelinePart extends Component { @@ -36,361 +165,8 @@ class PipelinePart extends Component { return ( -
{ JSON.stringify(configuration, null, 2) }
- {/* - - - Execution - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sun Grid Engine (SGE) - Portable Batch System (PBS) - SLURM - - - - - - - - - - - - - - - - - - - Outputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */} + {/*
{ JSON.stringify(configuration, null, 2) }
*/} + { returnComponent(configuration, classes, onChange) }
) } From 8254335a61d0bc4f5d4e02ed47a6c0b25b065ede Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 15 Apr 2021 11:29:50 -0400 Subject: [PATCH 08/66] :recycle: Set names on components --- app/containers/pipeline/PipelineEditor.js | 2 +- .../pipeline/parts/PipelinePart.jsx | 21 +++++++------------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 7eb2f722..cdb1f59b 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -125,7 +125,7 @@ class PipelineEditor extends Component { default: return ( - + ) } diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 185ac538..639df0a5 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -43,17 +43,14 @@ function formatLabel(label) { } -function returnComponent(obj, classes={}, onChange=undefined, parents=[]) { +function returnComponent(obj, classes={}, onChange=undefined, parents=[], level=1) { switch (Immutable.Map.isMap(obj)) { case true: return ( <> - { console.log(obj) } { obj.entrySeq().map((entry) => { - console.log(Object.fromEntries([[entry[0], typeof(entry[1])]])) switch (Immutable.Map.isMap(entry[1])) { case true: - parents.push(entry[0]) return ( @@ -63,7 +60,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[]) { - { returnComponent(entry[1], classes, onChange, parents) } + { returnComponent(entry[1], classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } @@ -71,6 +68,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[]) { case false: const regex = new RegExp(`^\s*{entry[0]}`); const label = formatLabel(entry[0]); + const name = [...parents, entry[0]].join('.'); switch (typeof(entry[1])) { case 'boolean': return ( @@ -83,7 +81,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[]) { > @@ -123,7 +121,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[]) { fullWidth > { entry[1] } - // <>key {k} : value {v} ) } } ) } @@ -145,7 +142,6 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[]) { default: return ( <> - //
{ typeof(obj) }
{ obj }
) } } @@ -161,12 +157,11 @@ class PipelinePart extends Component { }); render() { - const { classes, configuration, onChange } = this.props + const { classes, configuration, onChange, parents } = this.props return ( - {/*
{ JSON.stringify(configuration, null, 2) }
*/} - { returnComponent(configuration, classes, onChange) } + { returnComponent(configuration, classes, onChange, parents) }
) } From 49a5bb8232c49c9698a62bdedeb395c9382a29b8 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 15 Apr 2021 15:06:38 -0400 Subject: [PATCH 09/66] :art: Start on first tab. Make tabs scroll --- app/containers/pipeline/PipelineEditor.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index cdb1f59b..6dc1a509 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -8,6 +8,7 @@ import Header, { HeaderText, HeaderAvatar, HeaderTools } from '../../components/ import Grid from '@material-ui/core/Grid'; import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; +import TabScrollButton from '@material-ui/core/TabScrollButton'; import Paper from '@material-ui/core/Paper'; import { @@ -40,6 +41,13 @@ import Collapse from '@material-ui/core/Collapse'; class PipelineEditor extends Component { + constructor(props) { + super(props); + this.state = { + tab: [...props.configuration.keySeq()][0], // first tab + }; + } + static styles = theme => ({ content: { padding: 20, @@ -50,9 +58,9 @@ class PipelineEditor extends Component { } }); - state = { - tab: 'general', - }; + // state = { + // tab: 'general', + // }; handleTabChange = (event, tab) => { this.setState({ tab }); @@ -89,7 +97,7 @@ class PipelineEditor extends Component { onChange={this.handleTabChange} indicatorColor="primary" textColor="primary" - centered + variant="scrollable" > { configuration.keySeq().toJS().map((k) => ( From 80706943e3a2155d54dd5a32e901c044caf00df2 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 15 Apr 2021 15:19:00 -0400 Subject: [PATCH 10/66] :coffin: Remove hard-coded components --- app/containers/pipeline/PipelineEditor.js | 55 +- .../pipeline/parts/AnatomicalPage.js | 113 -- .../pipeline/parts/DerivativesPage.js | 129 -- .../pipeline/parts/FunctionalPage.js | 161 -- app/containers/pipeline/parts/GeneralPage.js | 398 ----- .../pipeline/parts/LongitudinalPage.js | 71 - .../parts/anatomical/InitialPreprocessing.js | 89 - .../pipeline/parts/anatomical/Registration.js | 1553 ---------------- .../parts/anatomical/SkullStripping.js | 924 ---------- .../parts/anatomical/TissueSegmentation.js | 699 -------- .../pipeline/parts/anatomical/index.js | 4 - .../pipeline/parts/derivatives/ALFF.js | 76 - .../parts/derivatives/NetworkCentrality.js | 311 ---- .../pipeline/parts/derivatives/PyPEER.js | 154 -- .../parts/derivatives/RegionalHomogeneity.js | 58 - .../parts/derivatives/SeedBasedCorrelation.js | 179 -- .../parts/derivatives/TimeSeriesExtraction.js | 290 --- .../pipeline/parts/derivatives/VMHC.js | 98 - .../pipeline/parts/derivatives/index.js | 7 - .../pipeline/parts/functional/AROMA.js | 57 - .../functional/AnatomicalRegistration.js | 482 ----- .../parts/functional/DistortionCorrection.js | 229 --- .../parts/functional/EPIRegistration.js | 44 - .../parts/functional/InitialPreprocessing.js | 227 --- .../parts/functional/MedianAngleCorrection.js | 54 - .../parts/functional/NuisanceRegression.js | 774 -------- .../parts/functional/SliceTimingCorrection.js | 104 -- .../pipeline/parts/functional/Smoothing.js | 93 - .../parts/functional/TemplateRegistration.js | 1578 ----------------- .../pipeline/parts/functional/index.js | 10 - app/containers/pipeline/parts/index.js | 5 - .../pipeline/parts/longitudinal/Execution.js | 90 - .../parts/longitudinal/TemplateCreation.js | 174 -- .../pipeline/parts/longitudinal/index.js | 2 - c-pac/pipeline.js | 291 +-- c-pac/resources/pipeline/default_pipeline.yml | 1451 +++++++++++++++ 36 files changed, 1606 insertions(+), 9428 deletions(-) delete mode 100644 app/containers/pipeline/parts/AnatomicalPage.js delete mode 100644 app/containers/pipeline/parts/DerivativesPage.js delete mode 100644 app/containers/pipeline/parts/FunctionalPage.js delete mode 100644 app/containers/pipeline/parts/GeneralPage.js delete mode 100644 app/containers/pipeline/parts/LongitudinalPage.js delete mode 100644 app/containers/pipeline/parts/anatomical/InitialPreprocessing.js delete mode 100644 app/containers/pipeline/parts/anatomical/Registration.js delete mode 100644 app/containers/pipeline/parts/anatomical/SkullStripping.js delete mode 100644 app/containers/pipeline/parts/anatomical/TissueSegmentation.js delete mode 100644 app/containers/pipeline/parts/anatomical/index.js delete mode 100644 app/containers/pipeline/parts/derivatives/ALFF.js delete mode 100644 app/containers/pipeline/parts/derivatives/NetworkCentrality.js delete mode 100644 app/containers/pipeline/parts/derivatives/PyPEER.js delete mode 100644 app/containers/pipeline/parts/derivatives/RegionalHomogeneity.js delete mode 100644 app/containers/pipeline/parts/derivatives/SeedBasedCorrelation.js delete mode 100644 app/containers/pipeline/parts/derivatives/TimeSeriesExtraction.js delete mode 100644 app/containers/pipeline/parts/derivatives/VMHC.js delete mode 100644 app/containers/pipeline/parts/derivatives/index.js delete mode 100644 app/containers/pipeline/parts/functional/AROMA.js delete mode 100644 app/containers/pipeline/parts/functional/AnatomicalRegistration.js delete mode 100644 app/containers/pipeline/parts/functional/DistortionCorrection.js delete mode 100644 app/containers/pipeline/parts/functional/EPIRegistration.js delete mode 100644 app/containers/pipeline/parts/functional/InitialPreprocessing.js delete mode 100644 app/containers/pipeline/parts/functional/MedianAngleCorrection.js delete mode 100644 app/containers/pipeline/parts/functional/NuisanceRegression.js delete mode 100644 app/containers/pipeline/parts/functional/SliceTimingCorrection.js delete mode 100644 app/containers/pipeline/parts/functional/Smoothing.js delete mode 100644 app/containers/pipeline/parts/functional/TemplateRegistration.js delete mode 100644 app/containers/pipeline/parts/functional/index.js delete mode 100644 app/containers/pipeline/parts/longitudinal/Execution.js delete mode 100644 app/containers/pipeline/parts/longitudinal/TemplateCreation.js delete mode 100644 app/containers/pipeline/parts/longitudinal/index.js create mode 100644 c-pac/resources/pipeline/default_pipeline.yml diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 6dc1a509..96e7d2ab 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -24,14 +24,7 @@ import { SubjectIcon, } from 'components/icons'; -import { - GeneralPage, - AnatomicalPage, - FunctionalPage, - LongitudinalPage, - DerivativesPage, - PipelinePart -} from 'containers/pipeline/parts' +import { PipelinePart } from 'containers/pipeline/parts'; import Button from '@material-ui/core/Button'; import IconButton from '@material-ui/core/IconButton' @@ -58,10 +51,6 @@ class PipelineEditor extends Component { } }); - // state = { - // tab: 'general', - // }; - handleTabChange = (event, tab) => { this.setState({ tab }); }; @@ -91,7 +80,7 @@ class PipelineEditor extends Component { } return ( - + <> { configuration.keySeq().toJS().map((k) => ( - + )) } { - configuration.entrySeq().map((entry) => { - switch(entry[0]){ - case 'general': - return ( - // TODO SSOT - ) - break; - case 'anatomical': - return ( - // TODO SSOT - ) - case 'functional': - return ( - // TODO SSOT - ) - case 'derivatives': - return ( - // TODO SSOT - ) - case 'longitudinal': - return ( - // TODO SSOT - ) - default: - return ( - - - - ) + configuration.entrySeq().map((entry) => ( + + + + )) } - }) - } - + ); } } diff --git a/app/containers/pipeline/parts/AnatomicalPage.js b/app/containers/pipeline/parts/AnatomicalPage.js deleted file mode 100644 index 04bde79a..00000000 --- a/app/containers/pipeline/parts/AnatomicalPage.js +++ /dev/null @@ -1,113 +0,0 @@ -import React, { Component } from 'react'; -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import Paper from '@material-ui/core/Paper'; -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; -import Switch from '@material-ui/core/Switch'; -import { - SkullStripping, - Registration, - TissueSegmentation, -} from 'containers/pipeline/parts/anatomical' - -import Help from 'components/Help' -import InitialPreprocessing from './anatomical/InitialPreprocessing'; - - -class AnatomicalPage extends Component { - - static styles = theme => ({ - sectionTitle: { - paddingTop: 6, - paddingLeft: 6, - }, - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - - Initial Preprocessing - - - - - - - - - - - - - - - - Skull stripping - - - - - - - - - - - - - - - - Registration - - - - - - - - - - - - - - - - Tissue Segmentation - - - - - - - - - - - - ) - } -} - -export default withStyles(AnatomicalPage.styles)(AnatomicalPage); diff --git a/app/containers/pipeline/parts/DerivativesPage.js b/app/containers/pipeline/parts/DerivativesPage.js deleted file mode 100644 index 1a229379..00000000 --- a/app/containers/pipeline/parts/DerivativesPage.js +++ /dev/null @@ -1,129 +0,0 @@ -import React, { Component } from 'react'; -import { withStyles, Typography } from '@material-ui/core'; - -import Divider from '@material-ui/core/Divider'; - -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; -import Switch from '@material-ui/core/Switch'; - -import { - ALFF, - NetworkCentrality, - RegionalHomogeneity, - SeedBasedCorrelation, - TimeSeriesExtraction, - VMHC -} from 'containers/pipeline/parts/derivatives' -import PyPEER from './derivatives/PyPEER'; - - -class DerivativesPage extends Component { - static styles = theme => ({ - divider: { - margin: theme.spacing(), - marginBottom: theme.spacing(3), - }, - sectionTitle: { - paddingTop: 10 - }, - }) - - renderSection(title, name, component) { - const { classes, configuration, onChange } = this.props - const value = configuration.getIn(name.split(".")) - - return ( - - - - - { title } - - - - { - React.createElement(component, { - configuration, - onChange, - }) - } - - - ) - } - - render() { - const { classes, configuration, onChange, onValueChange } = this.props - - return ( - - - { - this.renderSection( - "Time Series Extraction", - "derivatives.timeseries_extraction.enabled", - TimeSeriesExtraction - ) - } - - { - this.renderSection( - "Seed-based Correlation", - "derivatives.sca.enabled", - SeedBasedCorrelation - ) - } - - { - this.renderSection( - "ALFF / f-ALFF", - "derivatives.alff.enabled", - ALFF - ) - } - - { - this.renderSection( - "Network Centrality", - "derivatives.network_centrality.enabled", - NetworkCentrality - ) - } - - { - this.renderSection( - "Voxel-Mirrored Homotopic Connectivity (VMHC)", - "derivatives.vmhc.enabled", - VMHC - ) - } - - { - this.renderSection( - "Regional Homogeneity", - "derivatives.reho.enabled", - RegionalHomogeneity - ) - } - - { - this.renderSection( - "PyPEER", - "derivatives.pypeer.enabled", - PyPEER - ) - } - - - ) - } -} - -export default withStyles(DerivativesPage.styles)(DerivativesPage); diff --git a/app/containers/pipeline/parts/FunctionalPage.js b/app/containers/pipeline/parts/FunctionalPage.js deleted file mode 100644 index 7041992a..00000000 --- a/app/containers/pipeline/parts/FunctionalPage.js +++ /dev/null @@ -1,161 +0,0 @@ -import React, { Component } from 'react'; -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; -import Switch from '@material-ui/core/Switch'; - -import { - // EPIRegistration, - AnatomicalRegistration, - DistortionCorrection, - MedianAngleCorrection, - NuisanceRegression, - TemplateRegistration, - SliceTimingCorrection, - Smoothing, - AROMA, -} from 'containers/pipeline/parts/functional' -import InitialPreprocessing from './functional/InitialPreprocessing'; - -class FunctionalPage extends Component { - static styles = theme => ({ - sectionTitle: { - paddingTop: 10 - }, - }) - - renderSection(title, name, component) { - const { classes, configuration, onChange } = this.props - const value = configuration.getIn(name.split('.')) - - return ( - - - - - { title } - - - - - - { - React.createElement(component, { - configuration, - onChange, - }) - } - - - - - ) - } - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - - Initial Preprocessing - - - - - - - - - - - - { - this.renderSection( - "Slice Timing Correction", - "functional.slice_timing_correction.enabled", - SliceTimingCorrection - ) - } - - { - this.renderSection( - "Functional to Anatomical Registration", - "functional.anatomical_registration.enabled", - AnatomicalRegistration - ) - } - - { - this.renderSection( - "Functional to Template Registration", - "functional.template_registration.enabled", - TemplateRegistration - ) - } - - {/* { - this.renderSection( - "Functional to EPI Template Registration", - "functional.epi_registration.enabled", - EPIRegistration - ) - } */} - - { - this.renderSection( - "Distortion Correction", - "functional.distortion_correction.enabled", - DistortionCorrection - ) - } - - { - this.renderSection( - "ICA AROMA", - "functional.aroma.enabled", - AROMA - ) - } - - { - this.renderSection( - "Nuisance Regression", - "functional.nuisance_regression.enabled", - NuisanceRegression - ) - } - - { - this.renderSection( - "Median Angle Correction", - "functional.median_angle_correction.enabled", - MedianAngleCorrection - ) - } - - { - this.renderSection( - "Smoothing / Z-Scoring", - "functional.smoothing.enabled", - Smoothing - ) - } - - - ) - } -} - -export default withStyles(FunctionalPage.styles)(FunctionalPage); diff --git a/app/containers/pipeline/parts/GeneralPage.js b/app/containers/pipeline/parts/GeneralPage.js deleted file mode 100644 index 5b249144..00000000 --- a/app/containers/pipeline/parts/GeneralPage.js +++ /dev/null @@ -1,398 +0,0 @@ -import React, { Component } from 'react'; -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import Paper from '@material-ui/core/Paper'; -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import Switch from '@material-ui/core/Switch'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import InputLabel from '@material-ui/core/InputLabel'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' - - -class GeneralPage extends Component { - - static styles = theme => ({ - sectionTitle: { - paddingTop: 6, - paddingLeft: 6, - }, - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - Execution - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sun Grid Engine (SGE) - Portable Batch System (PBS) - SLURM - - - - - - - - - - - - - - - - - - - Outputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) - } -} - -export default withStyles(GeneralPage.styles)(GeneralPage); diff --git a/app/containers/pipeline/parts/LongitudinalPage.js b/app/containers/pipeline/parts/LongitudinalPage.js deleted file mode 100644 index 30d5e5b5..00000000 --- a/app/containers/pipeline/parts/LongitudinalPage.js +++ /dev/null @@ -1,71 +0,0 @@ -import React, { Component } from 'react'; -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import Paper from '@material-ui/core/Paper'; -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; -import Switch from '@material-ui/core/Switch'; -import { - Execution, - TemplateCreation, -} from 'containers/pipeline/parts/longitudinal' - -import Help from 'components/Help' - -class LongitudinalPage extends Component { - - static styles = theme => ({ - sectionTitle: { - paddingTop: 6, - paddingLeft: 6, - }, - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - - Execution - - - - - - - - - - - - - - - - Longitudinal Template Creation Settings - - - - - - - - - - - - ) - } -} - -export default withStyles(LongitudinalPage.styles)(LongitudinalPage); \ No newline at end of file diff --git a/app/containers/pipeline/parts/anatomical/InitialPreprocessing.js b/app/containers/pipeline/parts/anatomical/InitialPreprocessing.js deleted file mode 100644 index 62442e3f..00000000 --- a/app/containers/pipeline/parts/anatomical/InitialPreprocessing.js +++ /dev/null @@ -1,89 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography, Collapse } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; - -import TextField from '@material-ui/core/TextField'; -import Switch from '@material-ui/core/Switch'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import InputLabel from '@material-ui/core/InputLabel'; - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' -import IconButton from '@material-ui/core/IconButton' - -import { - SettingsIcon, -} from 'components/icons'; - -class InitialPreprocessing extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, advanced, onChange } = this.props - - return ( - - - - - - - - - - - - - - - - - - - - ) - } -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(InitialPreprocessing.styles)(InitialPreprocessing)); diff --git a/app/containers/pipeline/parts/anatomical/Registration.js b/app/containers/pipeline/parts/anatomical/Registration.js deleted file mode 100644 index e05a4b05..00000000 --- a/app/containers/pipeline/parts/anatomical/Registration.js +++ /dev/null @@ -1,1553 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography } from '@material-ui/core'; - -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; -import MenuItem from '@material-ui/core/MenuItem'; -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; -import InputLabel from '@material-ui/core/InputLabel'; -import Collapse from '@material-ui/core/Collapse'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; -import IconButton from '@material-ui/core/IconButton'; -import { - SettingsIcon, -} from 'components/icons'; - - -class Registration extends Component { - - static styles = theme => ({ - }); - - state = { - antsParaOptions: false, - } - - handleOpen = () => { - this.setState({ antsParaOptions: true }) - } - - handleClose = () => { - this.setState({ antsParaOptions: false }) - } - - render() { - // const { classes, configuration, onChange } = this.props - const { classes, configuration, advanced, onChange } = this.props - - const resolution = configuration.getIn("anatomical.registration.resolution".split(".")) - - return ( - - - Resolution - { - - resolution.size !== undefined ? - - - - mm, - }} - /> - - - mm, - }} - /> - - - mm, - }} - /> - - - - : - - mm, - }} - /> - } - - - - - - Templates - - - - - - - - - - - - - - - - - Methods - - - - - - - - - - - - - - - - - - - - - - ANTS options - - - - - - - - - - - - - - - - - - - - Linear - LanczosWindowedSinc - BSpline - - - - - - ANTs Registration Parameters - {/* add icon button to set ants parameters */} - {configuration.getIn(['anatomical', 'registration', 'methods', 'ants', 'enabled']) ? - this.handleOpen()}> - - - : null} - - - - {/* ants_para expanding */} - - {`ANTs Registration Parameters Options`} - - - {/* collapse-output-transforms */} - - - - - - - {/* dimensionality */} - - - - - - - {/* initial-fixed-transform */} - - - - - - - {/* expand transform Rigid. TODO: make transforms(Rigid,Affine,SyN) for loop */} - - - - - - - - - {/* gradientStep */} - - - - Rigid gradientStep - - - - - - - - - {/* metric */} - - - - Metric - - - ,]`} - > - - - - - - - {/* metric MI parameters. TODO: make it short - for loop */} - - - - - - - - - - - - - - - - - - None - Regular - Random - - - - - - - - - - - - - ,]`} - > - - - - - - - {/* metric CC parameters.*/} - - - - - - - - - - - - - - - - {/* convergence */} - - - ,] - Convergence is determined from the number of iterations per level and is - determined by fitting a line to the normalized energy profile of the last N - iterations (where N is specified by the window size) and determining the slope - which is then compared with the convergence threshold.`} - fullWidth - /> - Convergence - - - - - - - - - - - - - - - - - - - {/* smoothing-sigmas */} - - - - Smoothing sigmas - - - - - - - - - {/* shrink_factors */} - - - - Shrink factors - - - - - - - - - {/* use_histogram_matching */} - - - - Use histogram matching - - - - - True - False - - - - - - - - {/* expand transform Affine. TODO: make transforms(Rigid,Affine,SyN) for loop */} - - - - - - - - - {/* gradientStep */} - - - - Affine gradientStep - - - - - - - - - {/* metric */} - - - - Metric - - - ,]`} - > - - - - - - - {/* metric MI parameters. TODO: make it short - for loop */} - - - - - - - - - - - - - - - - - - None - Regular - Random - - - - - - - - - - - - - ,]`} - > - - - - - - - {/* metric CC parameters.*/} - - - - - - - - - - - - - - - - {/* convergence */} - - - ,] - Convergence is determined from the number of iterations per level and is - determined by fitting a line to the normalized energy profile of the last N - iterations (where N is specified by the window size) and determining the slope - which is then compared with the convergence threshold.`} - fullWidth - /> - Convergence - - - - - - - - - - - - - - - - - - - {/* smoothing-sigmas */} - - - - Smoothing sigmas - - - - - - - - - {/* shrink_factors */} - - - - Shrink factors - - - - - - - - - {/* use_histogram_matching */} - - - - Use histogram matching - - - - - True - False - - - - - - - - {/* expand transform SyN. TODO: make transforms(Rigid,Affine,SyN) for loop */} - - - - - - - - - {/* gradientStep */} - - - ,] - Several transform options are available. The gradientStep or learningRate - characterizes the gradient descent optimization and is scaled appropriately for - each transform using the shift scales estimator. Subsequent parameters are - transform-specific and can be determined from the usage.`} - fullWidth - /> - SyN parameters - - - - - - - - - - - - - - - - - - - {/* metric */} - - - - Metric - - - ,]`} - > - - - - - - - {/* metric MI parameters. TODO: make it short - for loop */} - - - - - - - - - - - - - - - - - - None - Regular - Random - - - - - - - - - - - - - ,]`} - > - - - - - - - {/* metric CC parameters.*/} - - - - - - - - - - - - - - - - {/* convergence */} - - - ,] - Convergence is determined from the number of iterations per level and is - determined by fitting a line to the normalized energy profile of the last N - iterations (where N is specified by the window size) and determining the slope - which is then compared with the convergence threshold.`} - fullWidth - /> - Convergence - - - - - - - - - - - - - - - - - - - {/* smoothing-sigmas */} - - - - Smoothing sigmas - - - - - - - - - {/* shrink_factors */} - - - - Shrink factors - - - - - - - - - {/* use_histogram_matching */} - - - - Use histogram matching - - - - - True - False - - - - - - {/* winsoriz_image_intensities */} - - - - Winsorize image intensities - - - - - - - - - - - - - - - - - - - {/* end ants param expand */} - - - - - - - FSL FLIRT/FNIRT options - - - - - - - - - - - - - - - - - - - - - - Trilinear - Sinc - Spline - - - - - - - - - - - ) - } -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(Registration.styles)(Registration)); - -// export default withStyles(Registration.styles)(Registration); diff --git a/app/containers/pipeline/parts/anatomical/SkullStripping.js b/app/containers/pipeline/parts/anatomical/SkullStripping.js deleted file mode 100644 index 907b717a..00000000 --- a/app/containers/pipeline/parts/anatomical/SkullStripping.js +++ /dev/null @@ -1,924 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography, Collapse } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; - -import TextField from '@material-ui/core/TextField'; -import Switch from '@material-ui/core/Switch'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import InputLabel from '@material-ui/core/InputLabel'; - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' -import IconButton from '@material-ui/core/IconButton' - -import { - SettingsIcon, -} from 'components/icons'; - -class SkullStripping extends Component { - - static styles = theme => ({ - }); - - state = { - betOptions: false, - afniOptions: false, - niworkflows_antsOptions: false, - unetOptions: false, - } - - handleValueChange = (event) => { - const name = event.target.name - - const checkBoxes = [ - "anatomical.skull_stripping.methods.afni.enabled", - "anatomical.skull_stripping.methods.bet.enabled", - "anatomical.skull_stripping.methods.niworkflows_ants.enabled", - "anatomical.skull_stripping.methods.unet.enabled", - "anatomical.skull_stripping.enabled" - ] - - if (!checkBoxes.includes(name)) { - this.props.onChange([ - [name, event.target.value] - ]) - - } else { - const changes = [] - const value = event.target.checked - - if (name == "anatomical.skull_stripping.enabled") { - changes.push([name, !value]) - if (value) { - changes.push(["anatomical.skull_stripping.methods.afni.enabled", false]) - changes.push(["anatomical.skull_stripping.methods.bet.enabled", false]) - changes.push(["anatomical.skull_stripping.methods.niworkflows_ants.enabled", false]) - changes.push(["anatomical.skull_stripping.methods.unet.enabled", false]) - } - } - - const methods = [ - "anatomical.skull_stripping.methods.afni.enabled", - "anatomical.skull_stripping.methods.bet.enabled", - "anatomical.skull_stripping.methods.niworkflows_ants.enabled", - "anatomical.skull_stripping.methods.unet.enabled" - ] - if (methods.includes(name)) { - changes.push([name, value]) - if (value) { - changes.push(["anatomical.skull_stripping.enabled", true]) - } - } - - this.props.onChange(changes) - } - }; - - handleOpenAfni = () => { - this.setState({ afniOptions: true }) - } - - handleOpenBet = () => { - this.setState({ betOptions: true }) - } - - handleOpenNiworkflows_ants = () => { - this.setState({ niworkflows_antsOptions: true }) - } - - handleOpenUnet = () => { - this.setState({ unetOptions: true }) - } - - handleCloseAfni = () => { - this.setState({ afniOptions: false }) - } - - handleCloseBet = () => { - this.setState({ betOptions: false }) - } - - handleCloseNiworkflows_ants = () => { - this.setState({ niworkflows_antsOptions: false }) - } - - handleCloseUnet = () => { - this.setState({ unetOptions: false }) - } - - render() { - const { classes, configuration, advanced, onChange } = this.props - - return ( - - - {`FSL BET Options`} - - - - - - - - - - - - - - - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - {`3dSkullStrip Options`} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - {`niworkflows-ants Options`} - - - - - - - - - - - - - - - - - - - - {`U-Net Model`} - - - - - - - - - - - - - - - - - - - - } - /> - { configuration.getIn(['anatomical', 'skull_stripping', 'methods', 'afni', 'enabled']) ? - this.handleOpenAfni()}> - - - : null } - - - } - /> - { configuration.getIn(['anatomical', 'skull_stripping', 'methods', 'bet', 'enabled']) ? - this.handleOpenBet()}> - - - : null } - - - } - /> - { configuration.getIn(['anatomical', 'skull_stripping', 'methods', 'niworkflows_ants', 'enabled']) ? - this.handleOpenNiworkflows_ants()}> - - - : null } - - - } - /> - { configuration.getIn(['anatomical', 'skull_stripping', 'methods', 'unet', 'enabled']) ? - this.handleOpenUnet()}> - - - : null} - - - - - - ) - } -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(SkullStripping.styles)(SkullStripping)); diff --git a/app/containers/pipeline/parts/anatomical/TissueSegmentation.js b/app/containers/pipeline/parts/anatomical/TissueSegmentation.js deleted file mode 100644 index 0a125fd8..00000000 --- a/app/containers/pipeline/parts/anatomical/TissueSegmentation.js +++ /dev/null @@ -1,699 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; - -import TextField from '@material-ui/core/TextField'; -import Switch from '@material-ui/core/Switch'; -import MenuItem from '@material-ui/core/MenuItem'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormControlLabelled from 'components/FormControlLabelled'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import IconButton from '@material-ui/core/IconButton'; -import Icon from '@material-ui/core/Icon'; -import Button from '@material-ui/core/Button'; -import Fab from '@material-ui/core/Fab'; -import InputLabel from '@material-ui/core/InputLabel'; -import Collapse from '@material-ui/core/Collapse'; -import Help from 'components/Help' -import { - SettingsIcon, -} from 'components/icons'; -import Paper from '@material-ui/core/Paper'; -import Table from '@material-ui/core/Table'; -import TableBody from '@material-ui/core/TableBody'; -import TableCell from '@material-ui/core/TableCell'; -import TableHead from '@material-ui/core/TableHead'; -import TableRow from '@material-ui/core/TableRow'; -import TableFooter from '@material-ui/core/TableFooter'; -import { - AddIcon, - DeleteIcon -} from 'components/icons'; -import { fromJS } from 'immutable'; -class TissueSegmentation extends Component { - - static styles = theme => ({ - paper: { flexGrow: 1, padding: theme.spacing(), marginBottom: theme.spacing(2) }, - footer: { textAlign: 'right', padding: theme.spacing(2) } - }); - - addMask_brain = (event) => { - const { configuration, onChange } = this.props - const next = configuration.getIn(['anatomical', 'tissue_segmentation', 'configuration', 'ANTs_prior_based_seg','template_brain_list']).size - - onChange([ - [ - `anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.template_brain_list.${next}`, - fromJS({ - mask: '', - }) - ] - ]) - } - - removeMask_brain = (i) => { - const { classes, configuration, onChange } = this.props - - const template_brain_list = configuration.getIn(['anatomical', 'tissue_segmentation', 'configuration', 'ANTs_prior_based_seg', 'template_brain_list']).delete(i) - - onChange([ - [['anatomical', 'tissue_segmentation', 'configuration', 'ANTs_prior_based_seg', 'template_brain_list'], template_brain_list] - ]) - - } - - addMask_seg = (event) => { - const { configuration, onChange } = this.props - const next = configuration.getIn(['anatomical', 'tissue_segmentation', 'configuration', 'ANTs_prior_based_seg', 'template_segmentation_list']).size - - onChange([ - [ - `anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.template_segmentation_list.${next}`, - fromJS({ - mask: '', - }) - ] - ]) - } - - removeMask_seg = (i) => { - const { classes, configuration, onChange } = this.props - - const template_brain_list = configuration.getIn(['anatomical', 'tissue_segmentation', 'configuration', 'ANTs_prior_based_seg', 'template_segmentation_list']).delete(i) - - onChange([ - [['anatomical', 'tissue_segmentation', 'configuration', 'ANTs_prior_based_seg', 'template_segmentation_list'], template_segmentation_list] - ]) - - } - - handleValueChange = (event) => { - const name = event.target.name - - const checkBoxes = [ - "anatomical.tissue_segmentation.configuration.fast_threshold.enabled", - "anatomical.tissue_segmentation.configuration.custom_threshold.enabled", - ] - - if (!checkBoxes.includes(name)) { - this.props.onChange([ - [name, event.target.value] - ]) - - } else { - const changes = [] - const value = event.target.checked - - if (name == "anatomical.tissue_segmentation.configuration.fast_threshold.enabled") { - changes.push([name, value]) - if (value) { - changes.push(["anatomical.tissue_segmentation.configuration.custom_threshold.enabled", false]) - } - } else if (name == "anatomical.tissue_segmentation.configuration.custom_threshold.enabled") { - changes.push([name, value]) - if (value) { - changes.push(["anatomical.tissue_segmentation.configuration.fast_threshold.enabled", false]) - } - } - - this.props.onChange(changes) - } - }; - - handleOpenFSL = () => { - this.setState({ fsl: true }) - } - - handleOpenCustomized = () => { - this.setState({ customized: true }) - } - - handleCloseFSL = () => { - this.setState({ fsl: false }) - } - - handleCloseCustomized = () => { - this.setState({ customized: false }) - } - - render() { - const { classes, configuration, onChange } = this.props - - const config = configuration.getIn(['anatomical','tissue_segmentation','configuration','ANTs_prior_based_seg']) - - return ( - - - - - - Tissue Segmentation Options - - - - - - - - - - - - - } - /> - { configuration.getIn(['anatomical', 'tissue_segmentation', 'configuration', 'fast_threshold', 'enabled']) ? - this.handleOpenFSL()}> - - : null } - - - } - /> - { configuration.getIn(['anatomical', 'tissue_segmentation', 'configuration', 'custom_threshold', 'enabled']) ? - this.handleOpenCustomized()}> - - : null } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tissue Prior Probability Map - - - - - - - - - - - - - - - - - - - - - - - - - - Threshold - - - - - - - - - - - - - - - - - - - - - - - - - - Erosion - - - - - - - - - - - - - - Template based tissue segmentation - - - - - EPI Template based - T1 Template based - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ANTs Prior Based Tissue Segmentation - - - - - - - - - The atlas images - - - - { - config.get('template_brain_list').size == 0 ? ( - - - Add new rows with the "+" below. - - - ) : ( - config.get('template_brain_list').map((mask, i) => ( - - - this.removeMask_brain(i)}> - - - - - - - - )))} - - - - - - - - - - -
-
- - - - - - - - - The atlas segmentation images - - - - { - config.get('template_segmentation_list').size == 0 ? ( - - - Add new rows with the "+" below. - - - ) : ( - config.get('template_segmentation_list').map((mask, i) => ( - - - this.removeMask_seg(i)}> - - - - - - - - )))} - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
- ) - } -} - -export default withStyles(TissueSegmentation.styles)(TissueSegmentation); diff --git a/app/containers/pipeline/parts/anatomical/index.js b/app/containers/pipeline/parts/anatomical/index.js deleted file mode 100644 index a41b0266..00000000 --- a/app/containers/pipeline/parts/anatomical/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export InitialPreprocessing from './InitialPreprocessing' -export SkullStripping from './SkullStripping' -export Registration from './Registration' -export TissueSegmentation from './TissueSegmentation' diff --git a/app/containers/pipeline/parts/derivatives/ALFF.js b/app/containers/pipeline/parts/derivatives/ALFF.js deleted file mode 100644 index 4ee734c8..00000000 --- a/app/containers/pipeline/parts/derivatives/ALFF.js +++ /dev/null @@ -1,76 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Help from 'components/Help' - - -class ALFF extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - Hz, - }} - /> - - - - Hz, - }} - /> - - - - - ) - } -} - -export default withStyles(ALFF.styles)(ALFF); diff --git a/app/containers/pipeline/parts/derivatives/NetworkCentrality.js b/app/containers/pipeline/parts/derivatives/NetworkCentrality.js deleted file mode 100644 index 60b83f41..00000000 --- a/app/containers/pipeline/parts/derivatives/NetworkCentrality.js +++ /dev/null @@ -1,311 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Help from 'components/Help' - - -class NetworkCentrality extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - const config = configuration.getIn(['derivatives', 'network_centrality']) - - return ( - - - - - - - - - - - Degree Centrality - - - - - - - Weight - - - - } - /> - - - - } - /> - - - - - - - Significance - Sparsity - Correlation - - - - - - - - - - - - - Eigenvector - - - - - - - Weight - - - - } - /> - - - - } - /> - - - - - - - Significance - Sparsity - Correlation - - - - - - - - - - - - - Local Functional Connectivity Density - - - - - - - Weight - - - - } - /> - - - - } - /> - - - - - - - Significance - Correlation - - - - - - - - - - - ) - } -} - -export default withStyles(NetworkCentrality.styles)(NetworkCentrality); diff --git a/app/containers/pipeline/parts/derivatives/PyPEER.js b/app/containers/pipeline/parts/derivatives/PyPEER.js deleted file mode 100644 index 86d12cba..00000000 --- a/app/containers/pipeline/parts/derivatives/PyPEER.js +++ /dev/null @@ -1,154 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; - -import Grid from '@material-ui/core/Grid'; -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormControlLabelled from 'components/FormControlLabelled' -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Help from 'components/Help' - -class PyPEER extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) - } -} - -export default withStyles(PyPEER.styles)(PyPEER); diff --git a/app/containers/pipeline/parts/derivatives/RegionalHomogeneity.js b/app/containers/pipeline/parts/derivatives/RegionalHomogeneity.js deleted file mode 100644 index bb34102e..00000000 --- a/app/containers/pipeline/parts/derivatives/RegionalHomogeneity.js +++ /dev/null @@ -1,58 +0,0 @@ -import React, { Component } from 'react' - -import { withStyles, Typography } from '@material-ui/core' -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem' -import TextField from '@material-ui/core/TextField' -import InputAdornment from '@material-ui/core/InputAdornment' -import Switch from '@material-ui/core/Switch' - -import FormGroup from '@material-ui/core/FormGroup' -import FormLabel from '@material-ui/core/FormLabel' -import FormControl from '@material-ui/core/FormControl' -import FormControlLabel from '@material-ui/core/FormControlLabel' -import FormHelperText from '@material-ui/core/FormHelperText' - -import Help from 'components/Help' - - -class RegionalHomogeneity extends Component { - - static styles = theme => ({ - }) - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - 7 - 19 - 27 - - - - - ) - } -} - -export default withStyles(RegionalHomogeneity.styles)(RegionalHomogeneity) diff --git a/app/containers/pipeline/parts/derivatives/SeedBasedCorrelation.js b/app/containers/pipeline/parts/derivatives/SeedBasedCorrelation.js deleted file mode 100644 index 56af6781..00000000 --- a/app/containers/pipeline/parts/derivatives/SeedBasedCorrelation.js +++ /dev/null @@ -1,179 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Paper from '@material-ui/core/Paper'; - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; -import Checkbox from '@material-ui/core/Checkbox'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Table from '@material-ui/core/Table'; -import TableBody from '@material-ui/core/TableBody'; -import TableCell from '@material-ui/core/TableCell'; -import TableHead from '@material-ui/core/TableHead'; -import TableRow from '@material-ui/core/TableRow'; -import TableFooter from '@material-ui/core/TableFooter'; - -import Icon from '@material-ui/core/Icon'; -import IconButton from '@material-ui/core/IconButton'; -import Button from '@material-ui/core/Button'; -import Fab from '@material-ui/core/Fab'; -import { fromJS } from 'immutable'; - -import { - AddIcon, - DeleteIcon -} from 'components/icons'; - -import Help from 'components/Help' - - -class SeedBasedCorrelation extends Component { - - static styles = theme => ({ - paper: { flexGrow: 1, padding: theme.spacing(), marginBottom: theme.spacing(2) }, - footer: { textAlign: 'right', padding: theme.spacing(2) } - }); - - addMask = (event) => { - const { configuration, onChange } = this.props - const next = configuration.getIn(['derivatives', 'sca', 'masks']).size - - onChange([ - [ - `derivatives.sca.masks.${next}`, - fromJS({ - mask: '', - average: false, - dual_regression: false, - multiple_regression: false, - }) - ] - ]) - } - - removeMask = (i) => { - const { classes, configuration, onChange } = this.props - const masks = configuration.getIn(['derivatives', 'sca', 'masks']).delete(i) - onChange([[['derivatives', 'sca', 'masks'], masks]]) - } - - render() { - const { classes, configuration, onChange } = this.props - - const config = configuration.getIn(['derivatives', 'sca']) - - return ( - - - - - - - - - - Roi Image - Average - Dual Reg - Multi Reg - - - - { - config.get('masks').size == 0 ? ( - - - Add new rows with the "+" below. - - - ) : ( - config.get('masks').map((mask, i) => ( - - - this.removeMask(i)}> - - - - - - - - - - - - - - - - - )))} - - - - - - - - - - -
-
- - - - } - /> - -
-
- ) - } -} - -export default withStyles(SeedBasedCorrelation.styles)(SeedBasedCorrelation); diff --git a/app/containers/pipeline/parts/derivatives/TimeSeriesExtraction.js b/app/containers/pipeline/parts/derivatives/TimeSeriesExtraction.js deleted file mode 100644 index 84d84eb3..00000000 --- a/app/containers/pipeline/parts/derivatives/TimeSeriesExtraction.js +++ /dev/null @@ -1,290 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Paper from '@material-ui/core/Paper'; - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; -import Checkbox from '@material-ui/core/Checkbox'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Table from '@material-ui/core/Table'; -import TableBody from '@material-ui/core/TableBody'; -import TableCell from '@material-ui/core/TableCell'; -import TableHead from '@material-ui/core/TableHead'; -import TableRow from '@material-ui/core/TableRow'; -import TableFooter from '@material-ui/core/TableFooter'; - -import Icon from '@material-ui/core/Icon'; -import IconButton from '@material-ui/core/IconButton'; -import Button from '@material-ui/core/Button'; -import Fab from '@material-ui/core/Fab'; -import { fromJS } from 'immutable'; - -import { - AddIcon, - DeleteIcon -} from 'components/icons'; - -import Help from 'components/Help' - - -class TimeSeriesExtraction extends Component { - - static styles = theme => ({ - paper: { flexGrow: 1, padding: theme.spacing(), marginBottom: theme.spacing(2) }, - footer: { textAlign: 'right', padding: theme.spacing(2) } - }); - - addMask = (event) => { - const { configuration, onChange } = this.props - const next = configuration.getIn(['derivatives', 'timeseries_extraction', 'masks']).size - - onChange([ - [ - `derivatives.timeseries_extraction.masks.${next}`, - fromJS({ - mask: '', - average: false, - voxel: false, - spatial_regression: false, - pearson_correlation: false, - partial_correlation: false, - }) - ] - ]) - } - - removeMask = (i) => { - const { classes, configuration, onChange } = this.props - - const masks = configuration.getIn(['derivatives', 'timeseries_extraction', 'masks']).delete(i) - - onChange([ - [['derivatives', 'timeseries_extraction', 'masks'], masks] - ]) - - } - - handleValueChange = (event) => { - const name = event.target.name - - const checkBoxes = [ - "derivatives.timeseries_extraction.realignment.roi_to_func", - "derivatives.timeseries_extraction.realignment.func_to_roi", - ] - - if (!checkBoxes.includes(name)) { - this.props.onChange([ - [name, event.target.value] - ]) - - } else { - const changes = [] - const value = event.target.checked - - if (name == "derivatives.timeseries_extraction.realignment.roi_to_func") { - changes.push([name, value]) - if (value) { - changes.push(["derivatives.timeseries_extraction.realignment.func_to_roi", false]) - } - } else if (name == "derivatives.timeseries_extraction.realignment.func_to_roi") { - changes.push([name, value]) - if (value) { - changes.push(["derivatives.timeseries_extraction.realignment.roi_to_func", false]) - } - } - - this.props.onChange(changes) - } - }; - - - render() { - const { classes, configuration, onChange } = this.props - - const config = configuration.getIn(['derivatives', 'timeseries_extraction']) - - return ( - - - - - - - - - - - Roi Image - Average - Voxel - Spatial Regression - Pearson correlation - Partial correlation - - - - { - config.get('masks').size == 0 ? ( - - - Add new rows with the "+" below. - - - ) : ( - config.get('masks').map((mask, i) => ( - - - this.removeMask(i)}> - - - - - - - - - - - - - - - - - - - - - - - )))} - - - - - - - - - - -
-
- - - - - Realignment - - - - } - /> - - } - /> - - - - - - - - Outputs - - - - } - /> - - } - /> - - -
-
- ) - } -} - -export default withStyles(TimeSeriesExtraction.styles)(TimeSeriesExtraction); diff --git a/app/containers/pipeline/parts/derivatives/VMHC.js b/app/containers/pipeline/parts/derivatives/VMHC.js deleted file mode 100644 index 2fbb315c..00000000 --- a/app/containers/pipeline/parts/derivatives/VMHC.js +++ /dev/null @@ -1,98 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Help from 'components/Help' - - -class VMHC extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - const config = configuration.getIn(['derivatives', 'vmhc']) - - return ( - - - - - - - - - - - - - - - - - - - - ) - } -} - -export default withStyles(VMHC.styles)(VMHC); diff --git a/app/containers/pipeline/parts/derivatives/index.js b/app/containers/pipeline/parts/derivatives/index.js deleted file mode 100644 index 2e3756c6..00000000 --- a/app/containers/pipeline/parts/derivatives/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export ALFF from './ALFF' -export NetworkCentrality from './NetworkCentrality' -export RegionalHomogeneity from './RegionalHomogeneity' -export SeedBasedCorrelation from './SeedBasedCorrelation' -export TimeSeriesExtraction from './TimeSeriesExtraction' -export VMHC from './VMHC' -export PyPEER from "./PyPEER" diff --git a/app/containers/pipeline/parts/functional/AROMA.js b/app/containers/pipeline/parts/functional/AROMA.js deleted file mode 100644 index e5d74355..00000000 --- a/app/containers/pipeline/parts/functional/AROMA.js +++ /dev/null @@ -1,57 +0,0 @@ -import React, { Component } from 'react' - -import { withStyles, Typography } from '@material-ui/core' - -import Grid from '@material-ui/core/Grid' -import MenuItem from '@material-ui/core/MenuItem' -import TextField from '@material-ui/core/TextField' -import InputAdornment from '@material-ui/core/InputAdornment' -import Switch from '@material-ui/core/Switch' - -import FormGroup from '@material-ui/core/FormGroup' -import FormLabel from '@material-ui/core/FormLabel' -import FormControl from '@material-ui/core/FormControl' -import FormControlLabel from '@material-ui/core/FormControlLabel' -import FormHelperText from '@material-ui/core/FormHelperText' - -import Help from 'components/Help' - - -class AROMA extends Component { - - static styles = theme => ({ - }) - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - Non-Aggressive - Aggressive - - - - - ) - } -} - -export default withStyles(AROMA.styles)(AROMA) diff --git a/app/containers/pipeline/parts/functional/AnatomicalRegistration.js b/app/containers/pipeline/parts/functional/AnatomicalRegistration.js deleted file mode 100644 index 642bee6c..00000000 --- a/app/containers/pipeline/parts/functional/AnatomicalRegistration.js +++ /dev/null @@ -1,482 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Collapse from '@material-ui/core/Collapse'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' -import IconButton from '@material-ui/core/IconButton' - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; - -import { - SettingsIcon, -} from 'components/icons'; - -class AnatomicalRegistration extends Component { - - static styles = theme => ({ - }); - - state = { - fslOptions: false, - } - - handleValueChange = (event) => { - const name = event.target.name - - const checkBoxes = [ - "functional.anatomical_registration.functional_masking.fsl.enabled", - ] - - if (!checkBoxes.includes(name)) { - this.props.onChange([ - [name, event.target.value] - ]) - - } else { - const changes = [] - const value = event.target.checked - - const methods = [ - "functional.anatomical_registration.functional_masking.fsl.enabled" - ] - - if (methods.includes(name)) { - changes.push([name, value]) - } - - this.props.onChange(changes) - } - }; - - handleOpenFSL = () => { - this.setState({ fslOptions: true }) - } - - handleCloseFSL = () => { - this.setState({ fslOptions: false }) - } - - render() { - const { classes, configuration, advanced, onChange } = this.props - return ( - - - - - - - - - - - - - - - - - - - Mean Functional - Selected Functional Volume - - - - - - - - - - - - - Functional Masking - - - - - - - - - {/* functional masking - fsl option */} - - {`FSL BET Options`} - - - - - - - - - - - - - - - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - } - /> - - - - - - - - } - /> - {configuration.getIn(["functional", "anatomical_registration", "functional_masking", "fsl", 'enabled']) ? - this.handleOpenFSL()}> - - - : null} - - - - - - - - - - - - - - - - - - - ) - } -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(AnatomicalRegistration.styles)(AnatomicalRegistration)); - -// export default withStyles(AnatomicalRegistration.styles)(AnatomicalRegistration); diff --git a/app/containers/pipeline/parts/functional/DistortionCorrection.js b/app/containers/pipeline/parts/functional/DistortionCorrection.js deleted file mode 100644 index 0db5b709..00000000 --- a/app/containers/pipeline/parts/functional/DistortionCorrection.js +++ /dev/null @@ -1,229 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; - -import Grid from '@material-ui/core/Grid'; -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabelled from 'components/FormControlLabelled' -import FormHelperText from '@material-ui/core/FormHelperText'; -import Collapse from '@material-ui/core/Collapse'; -import Help from 'components/Help' - - -class DistortionCorrection extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - return( - - - - - Options for Distortion Correction - - - - - - - - - - - - - - - - - - - - - - - - - - 'PhaseDiff' Distortion Correction - - - - - BET - 3dSkullStrip - - - - - - - - - - - - ms, - }} - helperText='' - /> - - - - - s, - }} - helperText='' - /> - - - - - - - - - - - x - y - z - -x - -y - -z - - - - - - - - - - 'Blip' Distortion Correction - - - - - - - - ) - } -} - -export default withStyles(DistortionCorrection.styles)(DistortionCorrection); diff --git a/app/containers/pipeline/parts/functional/EPIRegistration.js b/app/containers/pipeline/parts/functional/EPIRegistration.js deleted file mode 100644 index d26a6eb4..00000000 --- a/app/containers/pipeline/parts/functional/EPIRegistration.js +++ /dev/null @@ -1,44 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid'; -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputLabel from '@material-ui/core/InputLabel'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Collapse from '@material-ui/core/Collapse'; -import Help from 'components/Help' - - -class EPIRegistration extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - - - - - ) - } -} - -export default withStyles(EPIRegistration.styles)(EPIRegistration); diff --git a/app/containers/pipeline/parts/functional/InitialPreprocessing.js b/app/containers/pipeline/parts/functional/InitialPreprocessing.js deleted file mode 100644 index fd5de88e..00000000 --- a/app/containers/pipeline/parts/functional/InitialPreprocessing.js +++ /dev/null @@ -1,227 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography, Collapse } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; - -import TextField from '@material-ui/core/TextField'; -import Switch from '@material-ui/core/Switch'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import InputLabel from '@material-ui/core/InputLabel'; - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' -import IconButton from '@material-ui/core/IconButton' - -import { - SettingsIcon, -} from 'components/icons'; - -class InitialPreprocessing extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, advanced, onChange } = this.props - - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Motion Correction Tool - - - - - - - - - - - - - - - - - Motion Correction Reference - - - - - - - - - - - - - - - - - - - - - ) - } -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(InitialPreprocessing.styles)(InitialPreprocessing)); diff --git a/app/containers/pipeline/parts/functional/MedianAngleCorrection.js b/app/containers/pipeline/parts/functional/MedianAngleCorrection.js deleted file mode 100644 index 7c11a6c5..00000000 --- a/app/containers/pipeline/parts/functional/MedianAngleCorrection.js +++ /dev/null @@ -1,54 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Help from 'components/Help' - - -class MedialAngleCorrection extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - °, - }} - /> - - - - ) - } -} - -export default withStyles(MedialAngleCorrection.styles)(MedialAngleCorrection); diff --git a/app/containers/pipeline/parts/functional/NuisanceRegression.js b/app/containers/pipeline/parts/functional/NuisanceRegression.js deleted file mode 100644 index bc6dd8e4..00000000 --- a/app/containers/pipeline/parts/functional/NuisanceRegression.js +++ /dev/null @@ -1,774 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import Collapse from '@material-ui/core/Collapse'; - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; -import Checkbox from '@material-ui/core/Checkbox'; -import Button from '@material-ui/core/Button'; -import IconButton from '@material-ui/core/IconButton' - -import Input from '@material-ui/core/Input'; -import InputLabel from '@material-ui/core/InputLabel'; -import Select from '@material-ui/core/Select'; - -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ListItemText from '@material-ui/core/ListItemText'; -import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; -import Divider from '@material-ui/core/Divider'; - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; - -import Table from '@material-ui/core/Table'; -import TableBody from '@material-ui/core/TableBody'; -import TableCell from '@material-ui/core/TableCell'; -import TableHead from '@material-ui/core/TableHead'; -import TableRow from '@material-ui/core/TableRow'; -import TableFooter from '@material-ui/core/TableFooter'; - -import { fromJS } from 'immutable'; -import MathJax from 'react-mathjax' - -import FormControlLabelled from 'components/FormControlLabelled' -import Help from 'components/Help' - -import { - AddIcon, - EditIcon, - DeleteIcon, - DuplicateIcon -} from 'components/icons'; - -const original = fromJS({ - GrayMatter: { - enabled: false, - summary: { - method: 'Mean', - }, - erode_mask: true, - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - WhiteMatter: { - enabled: false, - summary: { - method: 'Mean', - }, - erode_mask: true, - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - CerebrospinalFluid: { - enabled: false, - summary: { - method: 'Mean', - }, - erode_mask: false, - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - aCompCor: { - enabled: false, - summary: { - filter: ' ', - method: 'DetrendPC', - components: 5, - }, - tissues: ['WhiteMatter'], - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - tCompCor: { - enabled: false, - summary: { - filter: ' ', - method: 'PC', - components: 5, - }, - degree: 1, - threshold: '1.5SD', - by_slice: true, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - erode_mask: false, - erode_mask_mm: false, - }, - GlobalSignal: { - enabled: false, - summary: { - method: 'Mean', - }, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - Motion: { - enabled: false, - include_delayed: true, - include_squared: true, - include_delayed_squared: true, - }, - PolyOrt: { - enabled: false, - degree: 2, - }, - Bandpass: { - enabled: false, - bottom_frequency: 0.01, - top_frequency: 0.1, - }, - Censor: { - enabled: false, - method: 'Kill', - threshold: { - type: 'FD_J', - value: 0.0, - }, - number_of_previous_trs_to_censor: 1, - number_of_subsequent_trs_to_censor: 2, - }, -}) - -class NuisanceRegression extends Component { - - state = { - editRegressor: null - } - - static styles = theme => ({ - header: { padding: 0, minHeight: 10 }, - content: { padding: 0, minHeight: 10, margin: 0 }, - details: { padding: '0 10px 0 10px', minHeight: 10 }, - details_box: { margin: 0 }, - footer: { textAlign: 'right', padding: theme.spacing(2) } - }); - - handleEdit = (regi) => { - this.setState({ editRegressor: regi }); - }; - - handleNew = () => { - const { classes, configuration, onChange } = this.props - const regressors = configuration.getIn(['functional', 'nuisance_regression', 'regressors']).push(original) - - onChange([ - [['functional', 'nuisance_regression', 'regressors'], regressors] - ]) - this.setState({ editRegressor: regressors.size - 1 }); - }; - - handleDuplicate = (regi) => { - const { classes, configuration, onChange } = this.props - const regressors = - configuration.getIn(['functional', 'nuisance_regression', 'regressors']).push( - configuration.getIn(['functional', 'nuisance_regression', 'regressors', regi]) - ) - - onChange([ - [['functional', 'nuisance_regression', 'regressors'], regressors] - ]) - }; - - handleDelete = (regi) => { - const { classes, configuration, onChange } = this.props - const regressors = configuration.getIn(['functional', 'nuisance_regression', 'regressors']).delete(regi) - - onChange([ - [['functional', 'nuisance_regression', 'regressors'], regressors] - ]) - }; - - handleClose = () => { - this.setState({ - editRegressor: null, - deleteRegressor: null, - }); - }; - - getRegressorLabel = (regressors) => { - const renaming = { - 'WhiteMatter': 'WM', - 'CerebrospinalFluid': 'CSF', - 'GrayMatter': 'GM', - 'GlobalSignal': 'GR', - 'Motion': 'Mot', - 'Bandpass': 'BP', - } - - const censor_renaming = { - 'FD_J': 'FD Jenkinson', - 'FD_P': 'FD Power', - 'DVARS': 'DVARS', - } - - let representation = '' - - const regressor_pieces = [] - for(let reg of [ - 'Motion', 'GlobalSignal', 'WhiteMatter', 'CerebrospinalFluid', - 'GrayMatter','aCompCor', 'tCompCor', 'PolyOrt', 'Bandpass', 'Censor' - ]) { - if (regressors[reg] === undefined) { - continue - } - - if (!regressors[reg].enabled) { - continue - } - - if (reg == 'aCompCor') { - if (!regressors[reg]['summary']) { - regressors[reg]['summary'] = { - filter: ' ', - method: 'DetrendPC', - components: 5, - } - } - } - - if (reg == 'tCompCor') { - if (!regressors[reg]['summary']) { - regressors[reg]['summary'] = { - filter: ' ', - method: 'PC', - components: 5, - } - } - } - - const regressor = regressors[reg] - let name = reg - if (renaming[reg] !== undefined) { - name = renaming[reg] - } - - let terms = [`\\textrm{${name}}`] - - if (regressor['include_squared']) { - terms.push(`\\textrm{${name}}^{2}`) - } - if (regressor['include_delayed']) { - terms.push(`\\textrm{${name}}_{t-1}`) - } - if (regressor['include_delayed_squared']) { - terms.push(`\\textrm{${name}}_{t-1}^{2}`) - } - if (regressor['erode_mask']) { - terms.push(`\\textrm{${name}}`) - } - if (regressor['erode_mask_mm']) { - terms.push(`\\textrm{${name}}`) - } - - let regressor_terms = terms.join(' + ') - - if (regressor['tissues']) { - regressor_terms += '\\;(' - regressor_terms += regressor['tissues'].map((tissue) => `\\textrm{${renaming[tissue]}}`).reduce((t, tt) => t + " + " + tt) - regressor_terms += ')' - } - - if (regressor['summary']) { - if (typeof(regressor['summary']) == "object") { - regressor_terms += ` ${regressor['summary']['filter']}` - regressor_terms += ` ${regressor['summary']['method']}` - if (['DetrendPC', 'PC'].indexOf(regressor['summary']['method']) > -1) { - regressor_terms += `\\;${regressor['summary']['components']}` - } - } else { - regressor_terms += `\\;\\textrm{${regressor['summary']}}` - } - } - - if (reg == 'PolyOrt') { - regressor_terms += `\\;${regressor['degree']}` - } - - if (reg == 'Bandpass') { - regressor_terms += `\\;${regressor['bottom_frequency'] || 0.00}-${regressor['top_frequency'] || 9999.00}` - } - - if (reg == 'Censor') { - regressor_terms += `\\;\\textrm{${regressor['method']}}\\;\\textrm{${censor_renaming[regressor['threshold']['type']]}}:\\;${regressor['threshold']['value']}` - } - - regressor_pieces.push(regressor_terms) - } - - representation = regressor_pieces.map((p, i) => ) - - if (!representation) { - representation = 'No regressors selected' - } - - return representation - } - - renderDialogRegressor(regressor, i) { - const { classes, configuration, onChange } = this.props - - return ( - - { this.renderRegressor(regressor, i, 'Motion', 'Motion', true) } - { this.renderRegressor(regressor, i, 'GlobalSignal', 'Global Signal', true, true) } - { this.renderRegressor(regressor, i, 'GrayMatter', 'Gray Matter', true, true, true) } - { this.renderRegressor(regressor, i, 'WhiteMatter', 'White Matter', true, true, true) } - { this.renderRegressor(regressor, i, 'CerebrospinalFluid', 'CerebrospinalFluid', true, true, true) } - { this.renderRegressor(regressor, i, 'aCompCor', 'aCompCor', true, true, false, ( - - - Tissues - - - - )) } - { this.renderRegressor(regressor, i, 'tCompCor', 'tCompCor', true, true, false, ( - - - - - - - - - - - - - - - - - - - - - - - - )) } - { this.renderRegressor(regressor, i, 'PolyOrt', 'PolyOrt', false, false, false, ( - - - - - - )) } - { this.renderRegressor(regressor, i, 'Bandpass', 'Bandpass', false, false, false, ( - - - Hz, - }} - /> - - - Hz, - }} - /> - - - )) } - { this.renderRegressor(regressor, i, 'Censor', 'Censor', false, false, false, ( - - - - Kill - Zero - Interpolate - Spike Regression - - - - TRs, - }} - /> - - - TRs, - }} - /> - - - - Framewise Displacement - Jenkinson - Framewise Displacement - Power - DVARS - - - - - )) } - - ) - } - - renderRegressor(regressor, i, key, name, derivatives, summary, extraction, custom) { - - if (!regressor) { - return null - } - - const { classes, configuration, onChange } = this.props - - return ( - - - - { name } - - - - - { summary ? ( - - - - - Cosine - - - - - - PC - Detrended PC - Mean - Norm Mean - Detrended Norm Mean - - - - { - regressor.getIn([key, 'summary', 'method']) == 'PC' || - regressor.getIn([key, 'summary', 'method']) == 'DetrendPC' - ? ( - - - - ) : null } - - ) : null } - - {custom} - - { extraction ? ( - - - mm, - }} - /> - - - - - - - - ) : null } - - { derivatives ? ( - - - - - - - - - - - - - - - - - - ) : null } - - - - ) - } - - render() { - const { classes, configuration, onChange } = this.props - - const regressors = configuration.getIn(["functional", "nuisance_regression", "regressors"]) // .map((r) => original.mergeDeep(r)) - - let regressor = null - if (this.state.editRegressor !== null) { - regressor = regressors.get(this.state.editRegressor) - } - - return ( - - - - - - - - - - Regressors - - - - {`Edit Nuisance Regressor`} - - { - regressor ? - this.renderDialogRegressor(regressor, this.state.editRegressor) : - null - } - - - - - { - regressors.map((regressor, i) => ( - () => this.handleEdit(regi))(i)}> - { - this.getRegressorLabel(regressor.toJS()).reduce((result, child, index, children) => { - if (index < children.length - 1) { - return result.concat([child, , ]) - } - return result.concat(child) - }, []) - } - } style={{ padding: '0 115px 0 0' }} /> - - () => this.handleEdit(regi))(i)}> - - - () => this.handleDuplicate(regi))(i)}> - - - () => this.handleDelete(regi))(i)}> - - - - - )) - } - - - - this.handleNew()}> - - - - - - - - - ) - } -} - -export default withStyles(NuisanceRegression.styles)(NuisanceRegression); diff --git a/app/containers/pipeline/parts/functional/SliceTimingCorrection.js b/app/containers/pipeline/parts/functional/SliceTimingCorrection.js deleted file mode 100644 index c8463f5b..00000000 --- a/app/containers/pipeline/parts/functional/SliceTimingCorrection.js +++ /dev/null @@ -1,104 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import Help from 'components/Help' - - -class SliceTimingCorrection extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - - - Use NIFTI header - alt+z - alt+z2 - alt-z - alt-z2 - seq+z - seq-z - - - - - sec, - }} - /> - - - - - - - - - - - - - ) - } -} - -export default withStyles(SliceTimingCorrection.styles)(SliceTimingCorrection); diff --git a/app/containers/pipeline/parts/functional/Smoothing.js b/app/containers/pipeline/parts/functional/Smoothing.js deleted file mode 100644 index 9c49affc..00000000 --- a/app/containers/pipeline/parts/functional/Smoothing.js +++ /dev/null @@ -1,93 +0,0 @@ -import React, { Component } from 'react'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' - -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import FormHelperText from '@material-ui/core/FormHelperText'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' - - -class Smoothing extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, onChange } = this.props - - return ( - - - - mm, - }} - /> - - - - - - - - - - - - - - - - - - - - - ) - } -} - -export default withStyles(Smoothing.styles)(Smoothing); diff --git a/app/containers/pipeline/parts/functional/TemplateRegistration.js b/app/containers/pipeline/parts/functional/TemplateRegistration.js deleted file mode 100644 index a64abae8..00000000 --- a/app/containers/pipeline/parts/functional/TemplateRegistration.js +++ /dev/null @@ -1,1578 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid'; -import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; -import InputLabel from '@material-ui/core/InputLabel'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Collapse from '@material-ui/core/Collapse'; -import Help from 'components/Help' -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControlLabelled from 'components/FormControlLabelled' -import Switch from '@material-ui/core/Switch'; -import { fromJS } from 'immutable'; - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; -import IconButton from '@material-ui/core/IconButton'; -import { - SettingsIcon, -} from 'components/icons'; -import EditIcon from 'components/icons'; - -class TemplateRegistration extends Component { - - static styles = theme => ({ - }); - - state = { - antsParaOptions: false, - } - - handleOpen = () => { - this.setState({ antsParaOptions: true }) - } - - handleClose = () => { - this.setState({ antsParaOptions: false }) - } - - render() { - const { classes, configuration, advanced, onChange } = this.props - // const { classes, configuration, onChange } = this.props - const functional_resolution = configuration.getIn(["functional", "template_registration", "functional_resolution"]) - const derivative_resolution = configuration.getIn(["functional", "template_registration", "derivative_resolution"]) - - return ( - - - - {/* - - - - - Linear - LanczosWindowedSinc - BSPline - - - - - - - - - - - - Linear - Sinc - Spline - - - - - */} - - - Functional Resolution - { - - functional_resolution.size !== undefined ? - - - - mm, - }} - /> - - - mm, - }} - /> - - - mm, - }} - /> - - - - : - - mm, - }} - /> - } - - - - Derivative Resolution - { - - derivative_resolution.size !== undefined ? - - - - mm, - }} - /> - - - mm, - }} - /> - - - mm, - }} - /> - - - - : - - mm, - }} - /> - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - T1 - Brain/Skull Templates - - - - - - - - - - - - - - - - - EPI - Brain/Skull Template - - - - - - - - - {/* ants_para */} - - - ANTs Registration Parameters - {/* add icon button to set ants parameters */} - {configuration.getIn(['anatomical', 'registration', 'methods', 'ants', 'enabled']) ? - this.handleOpen()}> - - - : null} - - - - {/* ants_para expanding */} - - {`ANTs Registration Parameters Options`} - - - {/* collapse-output-transforms */} - - - - - - - {/* dimensionality */} - - - - - - - {/* initial-fixed-transform */} - - - - - - - {/* expand transform Rigid. TODO: make transforms(Rigid,Affine,SyN) for loop */} - - - - - - - - - {/* gradientStep */} - - - - Rigid gradientStep - - - - - - - - - {/* metric */} - - - - Metric - - - ,]`} - > - - - - - - - {/* metric MI parameters. TODO: make it short - for loop */} - - - - - - - - - - - - - - - - - - None - Regular - Random - - - - - - - - - - - - - ,]`} - > - - - - - - - {/* metric CC parameters.*/} - - - - - - - - - - - - - - - - {/* convergence */} - - - ,] - Convergence is determined from the number of iterations per level and is - determined by fitting a line to the normalized energy profile of the last N - iterations (where N is specified by the window size) and determining the slope - which is then compared with the convergence threshold.`} - fullWidth - /> - Convergence - - - - - - - - - - - - - - - - - - - {/* smoothing-sigmas */} - - - - Smoothing sigmas - - - - - - - - - {/* shrink_factors */} - - - - Shrink factors - - - - - - - - - {/* use_histogram_matching */} - - - - Use histogram matching - - - - - True - False - - - - - - - - {/* expand transform Affine. TODO: make transforms(Rigid,Affine,SyN) for loop */} - - - - - - - - - {/* gradientStep */} - - - - Affine gradientStep - - - - - - - - - {/* metric */} - - - - Metric - - - ,]`} - > - - - - - - - {/* metric MI parameters. TODO: make it short - for loop */} - - - - - - - - - - - - - - - - - - None - Regular - Random - - - - - - - - - - - - - ,]`} - > - - - - - - - {/* metric CC parameters.*/} - - - - - - - - - - - - - - - - {/* convergence */} - - - ,] - Convergence is determined from the number of iterations per level and is - determined by fitting a line to the normalized energy profile of the last N - iterations (where N is specified by the window size) and determining the slope - which is then compared with the convergence threshold.`} - fullWidth - /> - Convergence - - - - - - - - - - - - - - - - - - - {/* smoothing-sigmas */} - - - - Smoothing sigmas - - - - - - - - - {/* shrink_factors */} - - - - Shrink factors - - - - - - - - - {/* use_histogram_matching */} - - - - Use histogram matching - - - - - True - False - - - - - - - - - {/* expand transform SyN. TODO: make transforms(Rigid,Affine,SyN) for loop */} - - - - - - - - - {/* gradientStep */} - - - ,] - Several transform options are available. The gradientStep or learningRate - characterizes the gradient descent optimization and is scaled appropriately for - each transform using the shift scales estimator. Subsequent parameters are - transform-specific and can be determined from the usage.`} - fullWidth - /> - SyN parameters - - - - - - - - - - - - - - - - - - - {/* metric */} - - - - Metric - - - ,]`} - > - - - - - - - {/* metric MI parameters. TODO: make it short - for loop */} - - - - - - - - - - - - - - - - - - None - Regular - Random - - - - - - - - - - - - - ,]`} - > - - - - - - - {/* metric CC parameters.*/} - - - - - - - - - - - - - - - - {/* convergence */} - - - ,] - Convergence is determined from the number of iterations per level and is - determined by fitting a line to the normalized energy profile of the last N - iterations (where N is specified by the window size) and determining the slope - which is then compared with the convergence threshold.`} - fullWidth - /> - Convergence - - - - - - - - - - - - - - - - - - - {/* smoothing-sigmas */} - - - - Smoothing sigmas - - - - - - - - - {/* shrink_factors */} - - - - Shrink factors - - - - - - - - - {/* use_histogram_matching */} - - - - Use histogram matching - - - - - True - False - - - - - - {/* winsoriz_image_intensities */} - - - - Winsorize image intensities - - - - - - - - - - - - - - - - - - {/* end ants param expand */} - - - - - - ) - } -} -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(TemplateRegistration.styles)(TemplateRegistration)); -// export default withStyles(TemplateRegistration.styles)(TemplateRegistration); diff --git a/app/containers/pipeline/parts/functional/index.js b/app/containers/pipeline/parts/functional/index.js deleted file mode 100644 index e73013dd..00000000 --- a/app/containers/pipeline/parts/functional/index.js +++ /dev/null @@ -1,10 +0,0 @@ -export InitialPreprocessing from './InitialPreprocessing' -export AnatomicalRegistration from './AnatomicalRegistration' -export AROMA from './AROMA' -export DistortionCorrection from './DistortionCorrection' -export MedianAngleCorrection from './MedianAngleCorrection' -export NuisanceRegression from './NuisanceRegression' -export TemplateRegistration from './TemplateRegistration' -export EPIRegistration from './EPIRegistration' -export SliceTimingCorrection from './SliceTimingCorrection' -export Smoothing from './Smoothing' diff --git a/app/containers/pipeline/parts/index.js b/app/containers/pipeline/parts/index.js index b623ebfd..48f6782a 100644 --- a/app/containers/pipeline/parts/index.js +++ b/app/containers/pipeline/parts/index.js @@ -1,6 +1 @@ -export GeneralPage from './GeneralPage' -export AnatomicalPage from './AnatomicalPage' -export FunctionalPage from './FunctionalPage' -export LongitudinalPage from './LongitudinalPage' -export DerivativesPage from './DerivativesPage' export PipelinePart from './PipelinePart' \ No newline at end of file diff --git a/app/containers/pipeline/parts/longitudinal/Execution.js b/app/containers/pipeline/parts/longitudinal/Execution.js deleted file mode 100644 index 94260a02..00000000 --- a/app/containers/pipeline/parts/longitudinal/Execution.js +++ /dev/null @@ -1,90 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography, Collapse } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; - -import TextField from '@material-ui/core/TextField'; -import Switch from '@material-ui/core/Switch'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import InputLabel from '@material-ui/core/InputLabel'; - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' -import IconButton from '@material-ui/core/IconButton' - -import { - SettingsIcon, -} from 'components/icons'; - -class Execution extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, advanced, onChange } = this.props - - return ( - - - - - - - - - - - - - - - - - - - - ) - } -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(Execution.styles)(Execution)); \ No newline at end of file diff --git a/app/containers/pipeline/parts/longitudinal/TemplateCreation.js b/app/containers/pipeline/parts/longitudinal/TemplateCreation.js deleted file mode 100644 index 654e42f7..00000000 --- a/app/containers/pipeline/parts/longitudinal/TemplateCreation.js +++ /dev/null @@ -1,174 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography } from '@material-ui/core'; - -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; -import MenuItem from '@material-ui/core/MenuItem'; -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import TextField from '@material-ui/core/TextField'; -import InputAdornment from '@material-ui/core/InputAdornment'; -import Switch from '@material-ui/core/Switch'; -import InputLabel from '@material-ui/core/InputLabel'; -import Collapse from '@material-ui/core/Collapse'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; -import IconButton from '@material-ui/core/IconButton'; -import { - SettingsIcon, -} from 'components/icons'; - -class TemplateCreation extends Component { - - static styles = theme => ({ - }); - - render() { - - const { classes, configuration, advanced, onChange } = this.props - - return ( - - - - - - - - - - - - - - - - - - - - - - - - Median - Mean - Standard Deviation - - - - - - - - Trilinear - Nearest Neighbour - Sinc - BSpline - - - - - - - - Correlation Ratio (corratio) - Mutual Information (mutualinfo) - Normalized Mutual Information (normmi) - Normalized Correlation (normcorr) - Least Squares (leastsq) - Boundary-Based Registration (bbr) - labeldiff - - - - - - ) - - } - -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(TemplateCreation.styles)(TemplateCreation)); \ No newline at end of file diff --git a/app/containers/pipeline/parts/longitudinal/index.js b/app/containers/pipeline/parts/longitudinal/index.js deleted file mode 100644 index a9d98b2b..00000000 --- a/app/containers/pipeline/parts/longitudinal/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export Execution from './Execution' -export TemplateCreation from './TemplateCreation' \ No newline at end of file diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index 92c4ecd0..a806987f 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -4,169 +4,170 @@ import deepmerge from 'deepmerge' import { default as defaultTemplate } from './resources/pipeline/config' import yamlTemplate, { raw } from './resources/pipeline/yaml' +import { default as newTemplateRaw } from './resources/pipeline/default_pipeline.yml' const template = parse(raw) template.name = 'Default' -const newTemplateRaw = `%YAML 1.1 ---- -# CPAC Pipeline Configuration YAML file -# Version 1.8.0 -# -# http://fcp-indi.github.io for more info. -# -# Tip: This file can be edited manually with a text editor for quick modifications. - -pipeline_setup: - - # Name for this pipeline configuration - useful for identification. - pipeline_name: cpac-default-pipeline - - output_directory: - - # Directory where C-PAC should write out processed data, logs, and crash reports. - # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary - # name like '/output', and then map (-B/-v) your desired output directory to that label. - # - If running outside a container, this should be a full path to a directory. - path: /output - - # (Optional) Path to a BIDS-Derivatives directory that already has outputs. - # - This option is intended to ingress already-existing resources from an output - # directory without writing new outputs back into the same directory. - # - If provided, C-PAC will ingress the already-computed outputs from this directory and - # continue the pipeline from where they leave off. - # - If left as 'None', C-PAC will ingress any already-computed outputs from the - # output directory you provide above in 'path' instead, the default behavior. - source_outputs_dir: None - - # Set to True to make C-PAC ingress the outputs from the primary output directory if they - # exist, even if a source_outputs_dir is provided - # - Setting to False will pull from source_outputs_dir every time, over-writing any - # calculated outputs in the main output directory - # - C-PAC will still pull from source_outputs_dir if the main output directory is - # empty, however - pull_source_once: True - - # Include extra versions and intermediate steps of functional preprocessing in the output directory. - write_func_outputs: False - - # Include extra outputs in the output directory that may be of interest when more information is needed. - write_debugging_outputs: False - - # Output directory format and structure. - # Options: default, ndmg - output_tree: "default" - - # Generate quality control pages containing preprocessing and derivative outputs. - generate_quality_control_images: True +// const newTemplateRaw = `%YAML 1.1 +// --- +// # CPAC Pipeline Configuration YAML file +// # Version 1.8.0 +// # +// # http://fcp-indi.github.io for more info. +// # +// # Tip: This file can be edited manually with a text editor for quick modifications. + +// pipeline_setup: + +// # Name for this pipeline configuration - useful for identification. +// pipeline_name: cpac-default-pipeline + +// output_directory: + +// # Directory where C-PAC should write out processed data, logs, and crash reports. +// # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary +// # name like '/output', and then map (-B/-v) your desired output directory to that label. +// # - If running outside a container, this should be a full path to a directory. +// path: /output + +// # (Optional) Path to a BIDS-Derivatives directory that already has outputs. +// # - This option is intended to ingress already-existing resources from an output +// # directory without writing new outputs back into the same directory. +// # - If provided, C-PAC will ingress the already-computed outputs from this directory and +// # continue the pipeline from where they leave off. +// # - If left as 'None', C-PAC will ingress any already-computed outputs from the +// # output directory you provide above in 'path' instead, the default behavior. +// source_outputs_dir: None + +// # Set to True to make C-PAC ingress the outputs from the primary output directory if they +// # exist, even if a source_outputs_dir is provided +// # - Setting to False will pull from source_outputs_dir every time, over-writing any +// # calculated outputs in the main output directory +// # - C-PAC will still pull from source_outputs_dir if the main output directory is +// # empty, however +// pull_source_once: True + +// # Include extra versions and intermediate steps of functional preprocessing in the output directory. +// write_func_outputs: False + +// # Include extra outputs in the output directory that may be of interest when more information is needed. +// write_debugging_outputs: False + +// # Output directory format and structure. +// # Options: default, ndmg +// output_tree: "default" + +// # Generate quality control pages containing preprocessing and derivative outputs. +// generate_quality_control_images: True - working_directory: +// working_directory: - # Directory where C-PAC should store temporary and intermediate files. - # - This directory must be saved if you wish to re-run your pipeline from where you left off (if not completed). - # - NOTE: As it stores all intermediate files, this directory can grow to become very - # large, especially for data with a large amount of TRs. - # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary - # name like '/work', and then map (-B/-v) your desired output directory to that label. - # - If running outside a container, this should be a full path to a directory. - # - This can be written to '/tmp' if you do not intend to save your working directory. - path: /tmp - - # Deletes the contents of the Working Directory after running. - # This saves disk space, but any additional preprocessing or analysis will have to be completely re-run. - remove_working_dir: True - - log_directory: - - # Whether to write log details of the pipeline run to the logging files. - run_logging: True - - path: /logs - - crash_log_directory: - - # Directory where CPAC should write crash logs. - path: /crash - - system_config: - - # Select Off if you intend to run CPAC on a single machine. - # If set to On, CPAC will attempt to submit jobs through the job scheduler / resource manager selected below. - on_grid: - - run: Off - - # Sun Grid Engine (SGE), Portable Batch System (PBS), or Simple Linux Utility for Resource Management (SLURM). - # Only applies if you are running on a grid or compute cluster. - resource_manager: SGE - - SGE: - # SGE Parallel Environment to use when running CPAC. - # Only applies when you are running on a grid or compute cluster using SGE. - parallel_environment: mpi_smp - - # SGE Queue to use when running CPAC. - # Only applies when you are running on a grid or compute cluster using SGE. - queue: all.q - - # The maximum amount of memory each participant's workflow can allocate. - # Use this to place an upper bound of memory usage. - # - Warning: 'Memory Per Participant' multiplied by 'Number of Participants to Run Simultaneously' - # must not be more than the total amount of RAM. - # - Conversely, using too little RAM can impede the speed of a pipeline run. - # - It is recommended that you set this to a value that when multiplied by - # 'Number of Participants to Run Simultaneously' is as much RAM you can safely allocate. - maximum_memory_per_participant: 1 +// # Directory where C-PAC should store temporary and intermediate files. +// # - This directory must be saved if you wish to re-run your pipeline from where you left off (if not completed). +// # - NOTE: As it stores all intermediate files, this directory can grow to become very +// # large, especially for data with a large amount of TRs. +// # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary +// # name like '/work', and then map (-B/-v) your desired output directory to that label. +// # - If running outside a container, this should be a full path to a directory. +// # - This can be written to '/tmp' if you do not intend to save your working directory. +// path: /tmp + +// # Deletes the contents of the Working Directory after running. +// # This saves disk space, but any additional preprocessing or analysis will have to be completely re-run. +// remove_working_dir: True + +// log_directory: + +// # Whether to write log details of the pipeline run to the logging files. +// run_logging: True + +// path: /logs + +// crash_log_directory: + +// # Directory where CPAC should write crash logs. +// path: /crash + +// system_config: + +// # Select Off if you intend to run CPAC on a single machine. +// # If set to On, CPAC will attempt to submit jobs through the job scheduler / resource manager selected below. +// on_grid: + +// run: Off + +// # Sun Grid Engine (SGE), Portable Batch System (PBS), or Simple Linux Utility for Resource Management (SLURM). +// # Only applies if you are running on a grid or compute cluster. +// resource_manager: SGE + +// SGE: +// # SGE Parallel Environment to use when running CPAC. +// # Only applies when you are running on a grid or compute cluster using SGE. +// parallel_environment: mpi_smp + +// # SGE Queue to use when running CPAC. +// # Only applies when you are running on a grid or compute cluster using SGE. +// queue: all.q + +// # The maximum amount of memory each participant's workflow can allocate. +// # Use this to place an upper bound of memory usage. +// # - Warning: 'Memory Per Participant' multiplied by 'Number of Participants to Run Simultaneously' +// # must not be more than the total amount of RAM. +// # - Conversely, using too little RAM can impede the speed of a pipeline run. +// # - It is recommended that you set this to a value that when multiplied by +// # 'Number of Participants to Run Simultaneously' is as much RAM you can safely allocate. +// maximum_memory_per_participant: 1 - # The maximum amount of cores (on a single machine) or slots on a node (on a cluster/grid) - # to allocate per participant. - # - Setting this above 1 will parallelize each participant's workflow where possible. - # If you wish to dedicate multiple cores to ANTS-based anatomical registration (below), - # this value must be equal or higher than the amount of cores provided to ANTS. - # - The maximum number of cores your run can possibly employ will be this setting multiplied - # by the number of participants set to run in parallel (the 'Number of Participants to Run - # Simultaneously' setting). - max_cores_per_participant: 1 - - # The number of cores to allocate to ANTS-based anatomical registration per participant. - # - Multiple cores can greatly speed up this preprocessing step. - # - This number cannot be greater than the number of cores per participant. - num_ants_threads: 1 +// # The maximum amount of cores (on a single machine) or slots on a node (on a cluster/grid) +// # to allocate per participant. +// # - Setting this above 1 will parallelize each participant's workflow where possible. +// # If you wish to dedicate multiple cores to ANTS-based anatomical registration (below), +// # this value must be equal or higher than the amount of cores provided to ANTS. +// # - The maximum number of cores your run can possibly employ will be this setting multiplied +// # by the number of participants set to run in parallel (the 'Number of Participants to Run +// # Simultaneously' setting). +// max_cores_per_participant: 1 + +// # The number of cores to allocate to ANTS-based anatomical registration per participant. +// # - Multiple cores can greatly speed up this preprocessing step. +// # - This number cannot be greater than the number of cores per participant. +// num_ants_threads: 1 - # The number of cores to allocate to processes that use OpenMP. - num_OMP_threads: 1 +// # The number of cores to allocate to processes that use OpenMP. +// num_OMP_threads: 1 - # The number of participant workflows to run at the same time. - # - The maximum number of cores your run can possibly employ will be this setting - # multiplied by the number of cores dedicated to each participant (the 'Maximum Number of Cores Per Participant' setting). - num_participants_at_once: 1 +// # The number of participant workflows to run at the same time. +// # - The maximum number of cores your run can possibly employ will be this setting +// # multiplied by the number of cores dedicated to each participant (the 'Maximum Number of Cores Per Participant' setting). +// num_participants_at_once: 1 - # Full path to the FSL version to be used by CPAC. - # If you have specified an FSL path in your .bashrc file, this path will be set automatically. - FSLDIR: /usr/share/fsl/5.0 +// # Full path to the FSL version to be used by CPAC. +// # If you have specified an FSL path in your .bashrc file, this path will be set automatically. +// FSLDIR: /usr/share/fsl/5.0 - Amazon-AWS: +// Amazon-AWS: - # If setting the 'Output Directory' to an S3 bucket, insert the path to your AWS credentials file here. - aws_output_bucket_credentials: +// # If setting the 'Output Directory' to an S3 bucket, insert the path to your AWS credentials file here. +// aws_output_bucket_credentials: - # Enable server-side 256-AES encryption on data to the S3 bucket - s3_encryption: False +// # Enable server-side 256-AES encryption on data to the S3 bucket +// s3_encryption: False - Debugging: +// Debugging: - # Verbose developer messages. - verbose: Off +// # Verbose developer messages. +// verbose: Off -# PREPROCESSING -# ------------- -surface_analysis: +// # PREPROCESSING +// # ------------- +// surface_analysis: - # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives. - # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline, - # select those 'Freesurfer-' labeled options further below in anatomical_preproc. - run_freesurfer: Off` +// # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives. +// # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline, +// # select those 'Freesurfer-' labeled options further below in anatomical_preproc. +// run_freesurfer: false` const newTemplate = yaml.safeLoad(newTemplateRaw) diff --git a/c-pac/resources/pipeline/default_pipeline.yml b/c-pac/resources/pipeline/default_pipeline.yml new file mode 100644 index 00000000..b451ef27 --- /dev/null +++ b/c-pac/resources/pipeline/default_pipeline.yml @@ -0,0 +1,1451 @@ +%YAML 1.1 +--- +# CPAC Pipeline Configuration YAML file +# Version 1.8.0 +# +# http://fcp-indi.github.io for more info. +# +# Tip: This file can be edited manually with a text editor for quick modifications. + +pipeline_setup: + + # Name for this pipeline configuration - useful for identification. + pipeline_name: cpac-default-pipeline + + output_directory: + + # Directory where C-PAC should write out processed data, logs, and crash reports. + # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary + # name like '/output', and then map (-B/-v) your desired output directory to that label. + # - If running outside a container, this should be a full path to a directory. + path: /output + + # (Optional) Path to a BIDS-Derivatives directory that already has outputs. + # - This option is intended to ingress already-existing resources from an output + # directory without writing new outputs back into the same directory. + # - If provided, C-PAC will ingress the already-computed outputs from this directory and + # continue the pipeline from where they leave off. + # - If left as 'None', C-PAC will ingress any already-computed outputs from the + # output directory you provide above in 'path' instead, the default behavior. + source_outputs_dir: None + + # Set to True to make C-PAC ingress the outputs from the primary output directory if they + # exist, even if a source_outputs_dir is provided + # - Setting to False will pull from source_outputs_dir every time, over-writing any + # calculated outputs in the main output directory + # - C-PAC will still pull from source_outputs_dir if the main output directory is + # empty, however + pull_source_once: True + + # Include extra versions and intermediate steps of functional preprocessing in the output directory. + write_func_outputs: False + + # Include extra outputs in the output directory that may be of interest when more information is needed. + write_debugging_outputs: False + + # Output directory format and structure. + # Options: default, ndmg + output_tree: "default" + + # Generate quality control pages containing preprocessing and derivative outputs. + generate_quality_control_images: True + + working_directory: + + # Directory where C-PAC should store temporary and intermediate files. + # - This directory must be saved if you wish to re-run your pipeline from where you left off (if not completed). + # - NOTE: As it stores all intermediate files, this directory can grow to become very + # large, especially for data with a large amount of TRs. + # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary + # name like '/work', and then map (-B/-v) your desired output directory to that label. + # - If running outside a container, this should be a full path to a directory. + # - This can be written to '/tmp' if you do not intend to save your working directory. + path: /tmp + + # Deletes the contents of the Working Directory after running. + # This saves disk space, but any additional preprocessing or analysis will have to be completely re-run. + remove_working_dir: True + + log_directory: + + # Whether to write log details of the pipeline run to the logging files. + run_logging: True + + path: /logs + + crash_log_directory: + + # Directory where CPAC should write crash logs. + path: /crash + + system_config: + + # Select Off if you intend to run CPAC on a single machine. + # If set to On, CPAC will attempt to submit jobs through the job scheduler / resource manager selected below. + on_grid: + + run: Off + + # Sun Grid Engine (SGE), Portable Batch System (PBS), or Simple Linux Utility for Resource Management (SLURM). + # Only applies if you are running on a grid or compute cluster. + resource_manager: SGE + + SGE: + # SGE Parallel Environment to use when running CPAC. + # Only applies when you are running on a grid or compute cluster using SGE. + parallel_environment: mpi_smp + + # SGE Queue to use when running CPAC. + # Only applies when you are running on a grid or compute cluster using SGE. + queue: all.q + + # The maximum amount of memory each participant's workflow can allocate. + # Use this to place an upper bound of memory usage. + # - Warning: 'Memory Per Participant' multiplied by 'Number of Participants to Run Simultaneously' + # must not be more than the total amount of RAM. + # - Conversely, using too little RAM can impede the speed of a pipeline run. + # - It is recommended that you set this to a value that when multiplied by + # 'Number of Participants to Run Simultaneously' is as much RAM you can safely allocate. + maximum_memory_per_participant: 1 + + # The maximum amount of cores (on a single machine) or slots on a node (on a cluster/grid) + # to allocate per participant. + # - Setting this above 1 will parallelize each participant's workflow where possible. + # If you wish to dedicate multiple cores to ANTS-based anatomical registration (below), + # this value must be equal or higher than the amount of cores provided to ANTS. + # - The maximum number of cores your run can possibly employ will be this setting multiplied + # by the number of participants set to run in parallel (the 'Number of Participants to Run + # Simultaneously' setting). + max_cores_per_participant: 1 + + # The number of cores to allocate to ANTS-based anatomical registration per participant. + # - Multiple cores can greatly speed up this preprocessing step. + # - This number cannot be greater than the number of cores per participant. + num_ants_threads: 1 + + # The number of cores to allocate to processes that use OpenMP. + num_OMP_threads: 1 + + # The number of participant workflows to run at the same time. + # - The maximum number of cores your run can possibly employ will be this setting + # multiplied by the number of cores dedicated to each participant (the 'Maximum Number of Cores Per Participant' setting). + num_participants_at_once: 1 + + # Full path to the FSL version to be used by CPAC. + # If you have specified an FSL path in your .bashrc file, this path will be set automatically. + FSLDIR: /usr/share/fsl/5.0 + + Amazon-AWS: + + # If setting the 'Output Directory' to an S3 bucket, insert the path to your AWS credentials file here. + aws_output_bucket_credentials: + + # Enable server-side 256-AES encryption on data to the S3 bucket + s3_encryption: False + + Debugging: + + # Verbose developer messages. + verbose: Off + + +# PREPROCESSING +# ------------- +surface_analysis: + + # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives. + # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline, + # select those 'Freesurfer-' labeled options further below in anatomical_preproc. + run_freesurfer: Off + + +longitudinal_template_generation: + + # If you have multiple T1w's, you can generate your own run-specific custom + # T1w template to serve as an intermediate to the standard template for + # anatomical registration. + + # This runs before the main pipeline as it requires multiple T1w sessions + # at once. + run: Off + + # Freesurfer longitudinal template algorithm using FSL FLIRT + # Method to average the dataset at each iteration of the template creation + # Options: median, mean or std + average_method: median + + # Degree of freedom for FLIRT in the template creation + # Options: 12 (affine), 9 (traditional), 7 (global rescale) or 6 (rigid body) + dof: 12 + + # Interpolation parameter for FLIRT in the template creation + # Options: trilinear, nearestneighbour, sinc or spline + interp: trilinear + + # Cost function for FLIRT in the template creation + # Options: corratio, mutualinfo, normmi, normcorr, leastsq, labeldiff or bbr + cost: corratio + + # Number of threads used for one run of the template generation algorithm + thread_pool: 2 + + # Threshold of transformation distance to consider that the loop converged + # (-1 means numpy.finfo(np.float64).eps and is the default) + convergence_threshold: -1 + + +anatomical_preproc: + + run: On + + # Non-local means filtering via ANTs DenoiseImage + non_local_means_filtering: False + + # N4 bias field correction via ANTs + n4_bias_field_correction: False + + acpc_alignment: + + run: Off + + # Run ACPC alignment before non-local means filtering or N4 bias + # correction + run_before_preproc: True + + # ACPC size of brain in z-dimension in mm. + # Default: 150mm for human data. + brain_size: 150 + + # ACPC Target + # options: 'brain' or 'whole-head' + # note: 'brain' requires T1w_brain_ACPC_template below to be populated + acpc_target: 'whole-head' + + # ACPC aligned template + T1w_ACPC_template: /usr/share/fsl/5.0/data/standard/MNI152_T1_1mm.nii.gz + T1w_brain_ACPC_template: None + + brain_extraction: + + # using: ['3dSkullStrip', 'BET', 'UNet', 'niworkflows-ants'] + # this is a fork option + using: ['3dSkullStrip'] + + # option parameters + AFNI-3dSkullStrip: + + # Output a mask volume instead of a skull-stripped volume. The mask volume containes 0 to 6, which represents voxel's postion. If set to True, C-PAC will use this output to generate anatomical brain mask for further analysis. + mask_vol: False + + # Set the threshold value controlling the brain vs non-brain voxels. Default is 0.6. + shrink_factor: 0.6 + + # Vary the shrink factor at every iteration of the algorithm. This prevents the likelihood of surface getting stuck in large pools of CSF before reaching the outer surface of the brain. Default is On. + var_shrink_fac: True + + # The shrink factor bottom limit sets the lower threshold when varying the shrink factor. Default is 0.4, for when edge detection is used (which is On by default), otherwise the default value is 0.65. + shrink_factor_bot_lim: 0.4 + + # Avoids ventricles while skullstripping. + avoid_vent: True + + # Set the number of iterations. Default is 250.The number of iterations should depend upon the density of your mesh. + n_iterations: 250 + + # While expanding, consider the voxels above and not only the voxels below + pushout: True + + # Perform touchup operations at the end to include areas not covered by surface expansion. + touchup: True + + # Give the maximum number of pixels on either side of the hole that can be filled. The default is 10 only if 'Touchup' is On - otherwise, the default is 0. + fill_hole: 10 + + # Perform nearest neighbor coordinate interpolation every few iterations. Default is 72. + NN_smooth: 72 + + # Perform final surface smoothing after all iterations. Default is 20. + smooth_final: 20 + + # Avoid eyes while skull stripping. Default is On. + avoid_eyes: True + + # Use edge detection to reduce leakage into meninges and eyes. Default is On. + use_edge: True + + # Speed of expansion. + exp_frac: 0.1 + + # Perform aggressive push to edge. This might cause leakage. Default is Off. + push_to_edge: False + + # Use outer skull to limit expansion of surface into the skull in case of very strong shading artifacts. Use this only if you have leakage into the skull. + use_skull: Off + + # Percentage of segments allowed to intersect surface. It is typically a number between 0 and 0.1, but can include negative values (which implies no testing for intersection). + perc_int: 0 + + # Number of iterations to remove intersection problems. With each iteration, the program automatically increases the amount of smoothing to get rid of intersections. Default is 4. + max_inter_iter: 4 + + # Multiply input dataset by FAC if range of values is too small. + fac: 1 + + # Blur dataset after spatial normalization. Recommended when you have lots of CSF in brain and when you have protruding gyri (finger like). If so, recommended value range is 2-4. Otherwise, leave at 0. + blur_fwhm: 0 + + # Set it as True if processing monkey data with AFNI + monkey: False + + FSL-BET: + + # Set the threshold value controling the brain vs non-brain voxels, default is 0.5 + frac: 0.5 + + # Mask created along with skull stripping. It should be `On`, if selected functionalMasking : ['Anatomical_Refined'] and `FSL` as skull-stripping method. + mask_boolean: On + + # Mesh created along with skull stripping + mesh_boolean: Off + + # Create a surface outline image + outline: Off + + # Add padding to the end of the image, improving BET.Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + padding: Off + + # Integer value of head radius + radius: 0 + + # Reduce bias and cleanup neck. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + reduce_bias: Off + + # Eyes and optic nerve cleanup. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + remove_eyes: Off + + # Robust brain center estimation. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + robust: Off + + # Create a skull image + skull: Off + + # Gets additional skull and scalp surfaces by running bet2 and betsurf. This is mutually exclusive with reduce_bias, robust, padding, remove_eyes + surfaces: Off + + # Apply thresholding to segmented brain image and mask + threshold: Off + + # Vertical gradient in fractional intensity threshold (-1,1) + vertical_gradient : 0.0 + + UNet: + + # UNet model + unet_model : s3://fcp-indi/resources/cpac/resources/Site-All-T-epoch_36.model + + niworkflows-ants: + + # Template to be used during niworkflows-ants. + # It is not necessary to change this path unless you intend to use a non-standard template. + + # niworkflows-ants Brain extraction template + template_path : /ants_template/oasis/T_template0.nii.gz + + # niworkflows-ants probability mask + mask_path : /ants_template/oasis/T_template0_BrainCerebellumProbabilityMask.nii.gz + + # niworkflows-ants registration mask (can be optional) + regmask_path : /ants_template/oasis/T_template0_BrainCerebellumRegistrationMask.nii.gz + + +segmentation: + + # Automatically segment anatomical images into white matter, gray matter, + # and CSF based on prior probability maps. + run: On + + tissue_segmentation: + + # using: ['FSL-FAST', 'Template_Based', 'FreeSurfer', 'ANTs_Prior_Based'] + # this is a fork point + using: ['FSL-FAST'] + + # option parameters + FSL-FAST: + + thresholding: + + # thresholding of the tissue segmentation probability maps + # options: 'Auto', 'Custom' + use: 'Auto' + + Custom: + # Set the threshold value for the segmentation probability masks (CSF, White Matter, and Gray Matter) + # The values remaining will become the binary tissue masks. + # A good starting point is 0.95. + + # CSF (cerebrospinal fluid) threshold. + CSF_threshold_value : 0.95 + + # White matter threshold. + WM_threshold_value : 0.95 + + # Gray matter threshold. + GM_threshold_value : 0.95 + + use_priors: + + # Use template-space tissue priors to refine the binary tissue masks generated by segmentation. + run: On + + # Full path to a directory containing binarized prior probability maps. + # These maps are included as part of the 'Image Resource Files' package available on the Install page of the User Guide. + # It is not necessary to change this path unless you intend to use non-standard priors. + priors_path: $FSLDIR/data/standard/tissuepriors/2mm + + # Full path to a binarized White Matter prior probability map. + # It is not necessary to change this path unless you intend to use non-standard priors. + WM_path: $priors_path/avg152T1_white_bin.nii.gz + + # Full path to a binarized Gray Matter prior probability map. + # It is not necessary to change this path unless you intend to use non-standard priors. + GM_path: $priors_path/avg152T1_gray_bin.nii.gz + + # Full path to a binarized CSF prior probability map. + # It is not necessary to change this path unless you intend to use non-standard priors. + CSF_path: $priors_path/avg152T1_csf_bin.nii.gz + + Template_Based: + + # These masks should be in the same space of your registration template, e.g. if + # you choose 'EPI Template' , below tissue masks should also be EPI template tissue masks. + # + # Options: ['T1_Template', 'EPI_Template'] + template_for_segmentation: ['T1_Template'] + + # These masks are included as part of the 'Image Resource Files' package available + # on the Install page of the User Guide. + + # Full path to a binarized White Matter mask. + WHITE: $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_white_bin.nii.gz + + # Full path to a binarized Gray Matter mask. + GRAY: $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_gray_bin.nii.gz + + # Full path to a binarized CSF mask. + CSF: $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_csf_bin.nii.gz + + ANTs_Prior_Based: + + # Generate white matter, gray matter, CSF masks based on antsJointLabelFusion + # ANTs Prior-based Segmentation workflow that has shown optimal results for non-human primate data. + + # The atlas image assumed to be used in ANTs Prior-based Segmentation. + template_brain_list : + - /monkey_seg/templates/JointLabelCouncil/MacaqueYerkes19_T1w_0.5mm/T1w_brain.nii.gz + - /monkey_seg/templates/JointLabelCouncil/J_Macaque_11mo_atlas_nACQ_194x252x160space_0.5mm/T1w_brain.nii.gz + + # The atlas segmentation images. + # For performing ANTs Prior-based segmentation method + # the number of specified segmentations should be identical to the number of atlas brain image sets. + # eg. + # ANTs_prior_seg_template_brain_list : + # - atlas1.nii.gz + # - atlas2.nii.gz + # ANTs_prior_seg_template_segmentation_list: + # - segmentation1.nii.gz + # - segmentation1.nii.gz + template_segmentation_list: + - /monkey_seg/templates/JointLabelCouncil/MacaqueYerkes19_T1w_0.5mm/Segmentation.nii.gz + - /monkey_seg/templates/JointLabelCouncil/J_Macaque_11mo_atlas_nACQ_194x252x160space_0.5mm/Segmentation.nii.gz + + # Label values corresponding to CSF/GM/WM in atlas file + # It is not necessary to change this values unless your CSF/GM/WM label values are different from Freesurfer Color Lookup Table. + # https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/AnatomicalROI/FreeSurferColorLUT + + # Label value corresponding to CSF in multiatlas file + CSF_label : 24 + + # Label value corresponding to Left Gray Matter in multiatlas file + left_GM_label : 3 + + # Label value corresponding to Right Gray Matter in multiatlas file + right_GM_label : 42 + + # Label value corresponding to Left White Matter in multiatlas file + left_WM_label : 2 + + # Label value corresponding to Right White Matter in multiatlas file + right_WM_label : 41 + + +registration_workflows: + + anatomical_registration: + + run: On + + # The resolution to which anatomical images should be transformed during registration. + # This is the resolution at which processed anatomical files will be output. + resolution_for_anat: 2mm + + # Template to be used during registration. + # It is not necessary to change this path unless you intend to use a non-standard template. + T1w_brain_template: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}_brain.nii.gz + + # Template to be used during registration. + # It is not necessary to change this path unless you intend to use a non-standard template. + T1w_template: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}.nii.gz + + # Template to be used during registration. + # It is not necessary to change this path unless you intend to use a non-standard template. + T1w_brain_template_mask: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask.nii.gz + + # Register skull-on anatomical image to a template. + reg_with_skull: True + + registration: + + # using: ['ANTS', 'FSL', 'FSL-linear'] + # this is a fork point + # selecting both ['ANTS', 'FSL'] will run both and fork the pipeline + using: ['ANTS'] + + # option parameters + ANTs: + + # If a lesion mask is available for a T1w image, use it to improve the ANTs' registration + # ANTS registration only. + use_lesion_mask: False + + # ANTs parameters for T1-template-based registration + T1_registration: + + - collapse-output-transforms: 0 + - dimensionality: 3 + - initial-moving-transform : + initializationFeature: 0 + + - transforms: + - Rigid: + gradientStep : 0.1 + metric : + type : MI + metricWeight: 1 + numberOfBins : 32 + samplingStrategy : Regular + samplingPercentage : 0.25 + convergence: + iteration : 1000x500x250x100 + convergenceThreshold : 1e-08 + convergenceWindowSize : 10 + smoothing-sigmas : 3.0x2.0x1.0x0.0 + shrink-factors : 8x4x2x1 + use-histogram-matching : True + + - Affine: + gradientStep : 0.1 + metric : + type : MI + metricWeight: 1 + numberOfBins : 32 + samplingStrategy : Regular + samplingPercentage : 0.25 + convergence: + iteration : 1000x500x250x100 + convergenceThreshold : 1e-08 + convergenceWindowSize : 10 + smoothing-sigmas : 3.0x2.0x1.0x0.0 + shrink-factors : 8x4x2x1 + use-histogram-matching : True + + - SyN: + gradientStep : 0.1 + updateFieldVarianceInVoxelSpace : 3.0 + totalFieldVarianceInVoxelSpace : 0.0 + metric: + type : CC + metricWeight: 1 + radius : 4 + convergence: + iteration : 100x100x70x20 + convergenceThreshold : 1e-09 + convergenceWindowSize : 15 + smoothing-sigmas : 3.0x2.0x1.0x0.0 + shrink-factors : 6x4x2x1 + use-histogram-matching : True + winsorize-image-intensities : + lowerQuantile : 0.01 + upperQuantile : 0.99 + + # Interpolation method for writing out transformed anatomical images. + # Possible values: Linear, BSpline, LanczosWindowedSinc + interpolation: LanczosWindowedSinc + + FSL-FNIRT: + + # Configuration file to be used by FSL to set FNIRT parameters. + # It is not necessary to change this path unless you intend to use custom FNIRT parameters or a non-standard template. + fnirt_config: T1_2_MNI152_2mm + + # Reference mask for FSL registration. + ref_mask: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask_dil.nii.gz + + # Interpolation method for writing out transformed anatomical images. + # Possible values: trilinear, sinc, spline + interpolation: sinc + + # Identity matrix used during FSL-based resampling of anatomical-space data throughout the pipeline. + # It is not necessary to change this path unless you intend to use a different template. + identity_matrix: /usr/share/fsl/5.0/etc/flirtsch/ident.mat + + functional_registration: + + coregistration: + # functional (BOLD/EPI) registration to anatomical (structural/T1) + + run: On + + func_input_prep: + + # Choose whether to use the mean of the functional/EPI as the input to functional-to-anatomical registration or one of the volumes from the functional 4D timeseries that you choose. + # input: ['Mean Functional', 'Selected_Functional_Volume'] + input: ['Mean_Functional'] + + Mean Functional: + + # Run ANTs’ N4 Bias Field Correction on the input BOLD (EPI) + # this can increase tissue contrast which may improve registration quality in some data + n4_correct_func: False + + Selected Functional Volume: + + # Only for when 'Use as Functional-to-Anatomical Registration Input' is set to 'Selected Functional Volume'. + #Input the index of which volume from the functional 4D timeseries input file you wish to use as the input for functional-to-anatomical registration. + func_reg_input_volume: 0 + + boundary_based_registration: + # this is a fork point + # run: [On, Off] - this will run both and fork the pipeline + run: [On] + + # Standard FSL 5.0 Scheduler used for Boundary Based Registration. + # It is not necessary to change this path unless you intend to use non-standard MNI registration. + bbr_schedule: /usr/share/fsl/5.0/etc/flirtsch/bbr.sch + + EPI_registration: + + # directly register the mean functional to an EPI template + # instead of applying the anatomical T1-to-template transform to the functional data that has been + # coregistered to anatomical/T1 space + run: Off + + # using: ['ANTS', 'FSL', 'FSL-linear'] + # this is a fork point + # ex. selecting both ['ANTS', 'FSL'] will run both and fork the pipeline + using: ['ANTS'] + + # EPI template for direct functional-to-template registration + # (bypassing coregistration and the anatomical-to-template transforms) + EPI_template: s3://fcp-indi/resources/cpac/resources/epi_hbn.nii.gz + + # EPI template mask. + EPI_template_mask: None + + ANTs: + + # EPI registration configuration - synonymous with T1_registration + # parameters under anatomical registration above + parameters: + + - collapse-output-transforms: 0 + - dimensionality: 3 + - initial-moving-transform : + initializationFeature: 0 + + - transforms: + - Rigid: + gradientStep : 0.1 + metric : + type : MI + metricWeight: 1 + numberOfBins : 32 + samplingStrategy : Regular + samplingPercentage : 0.25 + convergence: + iteration : 1000x500x250x100 + convergenceThreshold : 1e-08 + convergenceWindowSize : 10 + smoothing-sigmas : 3.0x2.0x1.0x0.0 + shrink-factors : 8x4x2x1 + use-histogram-matching : True + + - Affine: + gradientStep : 0.1 + metric : + type : MI + metricWeight: 1 + numberOfBins : 32 + samplingStrategy : Regular + samplingPercentage : 0.25 + convergence: + iteration : 1000x500x250x100 + convergenceThreshold : 1e-08 + convergenceWindowSize : 10 + smoothing-sigmas : 3.0x2.0x1.0x0.0 + shrink-factors : 8x4x2x1 + use-histogram-matching : True + + - SyN: + gradientStep : 0.1 + updateFieldVarianceInVoxelSpace : 3.0 + totalFieldVarianceInVoxelSpace : 0.0 + metric: + type : CC + metricWeight: 1 + radius : 4 + convergence: + iteration : 100x100x70x20 + convergenceThreshold : 1e-09 + convergenceWindowSize : 15 + smoothing-sigmas : 3.0x2.0x1.0x0.0 + shrink-factors : 6x4x2x1 + use-histogram-matching : True + winsorize-image-intensities : + lowerQuantile : 0.01 + upperQuantile : 0.99 + + # Interpolation method for writing out transformed EPI images. + # Possible values: Linear, BSpline, LanczosWindowedSinc + interpolation: LanczosWindowedSinc + + FSL-FNIRT: + + # Configuration file to be used by FSL to set FNIRT parameters. + # It is not necessary to change this path unless you intend to use custom FNIRT parameters or a non-standard template. + fnirt_config: T1_2_MNI152_2mm + + # Interpolation method for writing out transformed EPI images. + # Possible values: trilinear, sinc, spline + interpolation: sinc + + # Identity matrix used during FSL-based resampling of BOLD-space data throughout the pipeline. + # It is not necessary to change this path unless you intend to use a different template. + identity_matrix: /usr/share/fsl/5.0/etc/flirtsch/ident.mat + + func_registration_to_template: + + # these options modify the application (to the functional data), not the calculation, of the + # T1-to-template and EPI-to-template transforms calculated earlier during registration + run: On + + output_resolution: + + # The resolution (in mm) to which the preprocessed, registered functional timeseries outputs are written into. + # NOTE: + # selecting a 1 mm or 2 mm resolution might substantially increase your RAM needs- these resolutions should be selected with caution. + # for most cases, 3 mm or 4 mm resolutions are suggested. + # NOTE: + # this also includes the single-volume 3D preprocessed functional data, + # such as the mean functional (mean EPI) in template space + func_preproc_outputs: 3mm + + # The resolution (in mm) to which the registered derivative outputs are written into. + # NOTE: + # this is for the single-volume functional-space outputs (i.e. derivatives) + # thus, a higher resolution may not result in a large increase in RAM needs as above + func_derivative_outputs: 3mm + + target_template: + + # using: ['T1_template', 'EPI_template'] + # this is a fork point + # NOTE: + # this will determine which registration transform to use to warp the functional + # outputs and derivatives to template space + using: ['T1_template'] + + # option parameters + T1_template: + + # Standard Skull Stripped Template. Used as a reference image for functional registration. + # This can be different than the template used as the reference/fixed for T1-to-template registration. + T1w_brain_template_funcreg: /usr/share/fsl/5.0/data/standard/MNI152_T1_${func_resolution}_brain.nii.gz + + # Standard Anatomical Brain Image with Skull. + # This can be different than the template used as the reference/fixed for T1-to-template registration. + T1w_template_funcreg: /usr/share/fsl/5.0/data/standard/MNI152_T1_${func_resolution}.nii.gz + + # Template to be used during registration. + # It is not necessary to change this path unless you intend to use a non-standard template. + T1w_brain_template_mask_funcreg: /usr/share/fsl/5.0/data/standard/MNI152_T1_${func_resolution}_brain_mask.nii.gz + + # a standard template for resampling if using float resolution + T1w_template_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz + + EPI_template: + + # EPI template for direct functional-to-template registration + # (bypassing coregistration and the anatomical-to-template transforms) + EPI_template_funcreg: s3://fcp-indi/resources/cpac/resources/epi_hbn.nii.gz + + # EPI template mask. + EPI_template_mask_funcreg: None + + # a standard template for resampling if using float resolution + EPI_template_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz + + ANTs_pipelines: + + # Interpolation method for writing out transformed functional images. + # Possible values: Linear, BSpline, LanczosWindowedSinc + interpolation: LanczosWindowedSinc + + FNIRT_pipelines: + + # Interpolation method for writing out transformed functional images. + # Possible values: trilinear, sinc, spline + interpolation: sinc + + # Identity matrix used during FSL-based resampling of functional-space data throughout the pipeline. + # It is not necessary to change this path unless you intend to use a different template. + identity_matrix: /usr/share/fsl/5.0/etc/flirtsch/ident.mat + + +functional_preproc: + + run: On + + truncation: + + # First timepoint to include in analysis. + # Default is 0 (beginning of timeseries). + # First timepoint selection in the scan parameters in the data configuration file, if present, will over-ride this selection. + # Note: the selection here applies to all scans of all participants. + start_tr: 0 + + # Last timepoint to include in analysis. + # Default is None or End (end of timeseries). + # Last timepoint selection in the scan parameters in the data configuration file, if present, will over-ride this selection. + # Note: the selection here applies to all scans of all participants. + stop_tr: None + + scaling: + + # Scale functional raw data, usually used in rodent pipeline + run: Off + + # Scale the size of the dataset voxels by the factor. + scaling_factor: 10 + + despiking: + + # Run AFNI 3dDespike + # this is a fork point + # run: [On, Off] - this will run both and fork the pipeline + run: [Off] + + slice_timing_correction: + + # Interpolate voxel time courses so they are sampled at the same time points. + # this is a fork point + # run: [On, Off] - this will run both and fork the pipeline + run: [On] + + motion_estimates_and_correction: + + # calculate motion statistics BEFORE slice-timing correction + calculate_motion_first: Off + + motion_correction: + + # using: ['3dvolreg', 'mcflirt'] + # this is a fork point + using: ['3dvolreg'] + + # option parameters + AFNI-3dvolreg: + + # This option is useful when aligning high-resolution datasets that may need more alignment than a few voxels. + functional_volreg_twopass: On + + # Choose motion correction reference. Options: mean, median, selected_volume + motion_correction_reference: ['mean'] + + # Choose motion correction reference volume + motion_correction_reference_volume: 0 + + motion_estimate_filter: + + # Filter physiological (respiration) artifacts from the head motion estimates. + # Adapted from DCAN Labs filter. + # https://www.ohsu.edu/school-of-medicine/developmental-cognition-and-neuroimaging-lab + # https://www.biorxiv.org/content/10.1101/337360v1.full.pdf + # this is a fork point + # run: [On, Off] - this will run both and fork the pipeline + run: [Off] + + # options: "notch", "lowpass" + filter_type: "notch" + + # Number of filter coefficients. + filter_order: 4 + + # Dataset-wide respiratory rate data from breathing belt. + # Notch filter requires either: + # "breathing_rate_min" and "breathing_rate_max" + # or + # "center_frequency" and "filter_bandwitdh". + # Lowpass filter requires either: + # "breathing_rate_min" + # or + # "lowpass_cutoff". + # If "breathing_rate_min" (for lowpass and notch filter) + # and "breathing_rate_max" (for notch filter) are set, + # the values set in "lowpass_cutoff" (for lowpass filter), + # "center_frequency" and "filter_bandwidth" (for notch filter) + # options are ignored. + + # Lowest Breaths-Per-Minute in dataset. + # For both notch and lowpass filters. + breathing_rate_min: + + # Highest Breaths-Per-Minute in dataset. + # For notch filter. + breathing_rate_max: + + # notch filter direct customization parameters + + # mutually exclusive with breathing_rate options above. + # If breathing_rate_min and breathing_rate_max are provided, + # the following parameters will be ignored. + + # the center frequency of the notch filter + center_frequency: + + # the width of the notch filter + filter_bandwidth: + + # lowpass filter direct customization parameter + + # mutually exclusive with breathing_rate options above. + # If breathing_rate_min is provided, the following + # parameter will be ignored. + + # the frequency cutoff of the filter + lowpass_cutoff: + + distortion_correction: + + # this is a fork point + # run: [On, Off] - this will run both and fork the pipeline + run: [On] + + # using: ['PhaseDiff', 'Blip'] + # PhaseDiff - Perform field map correction using a single phase difference image, a subtraction of the two phase images from each echo. Default scanner for this method is SIEMENS. + # Blip - Uses AFNI 3dQWarp to calculate the distortion unwarp for EPI field maps of opposite/same phase encoding direction. + # NOTE: + # this is NOT a fork point - instead, the technique used will depend on what type of distortion correction field data accompanies the dataset + # for example, phase-difference field maps will lead to phase-difference distortion correction, and phase-encoding direction field maps will lead to blip-up/blip-down + using: ['PhaseDiff', 'Blip'] + + # option parameters + PhaseDiff: + + # Since the quality of the distortion heavily relies on the skull-stripping step, we provide a choice of method ('AFNI' for AFNI 3dSkullStrip or 'BET' for FSL BET). + # Options: 'BET' or 'AFNI' + fmap_skullstrip_option: 'BET' + + # Set the fraction value for the skull-stripping of the magnitude file. Depending on the data, a tighter extraction may be necessary in order to prevent noisy voxels from interfering with preparing the field map. + # The default value is 0.5. + fmap_skullstrip_BET_frac: 0.5 + + # Set the threshold value for the skull-stripping of the magnitude file. Depending on the data, a tighter extraction may be necessary in order to prevent noisy voxels from interfering with preparing the field map. + # The default value is 0.6. + fmap_skullstrip_AFNI_threshold: 0.6 + + func_masking: + + # using: ['AFNI', 'FSL', 'FSL_AFNI', 'Anatomical_Refined', 'Anatomical_Based'] + # this is a fork point + using: ['AFNI'] + + FSL-BET: + + # Apply to 4D FMRI data, if bold_bet_functional_mean_boolean : Off. + # Mutually exclusive with functional, reduce_bias, robust, padding, remove_eyes, surfaces + # It must be 'on' if select 'reduce_bias', 'robust', 'padding', 'remove_eyes', or 'bet_surfaces' on + functional_mean_boolean: Off + + # Set the threshold value controling the brain vs non-brain voxels. + frac: 0.3 + + # Mesh created along with skull stripping + mesh_boolean: Off + + # Create a surface outline image + outline: Off + + # Add padding to the end of the image, improving BET.Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + padding: Off + + # Integer value of head radius + radius: 0 + + # Reduce bias and cleanup neck. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + reduce_bias: Off + + # Eyes and optic nerve cleanup. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + remove_eyes: Off + + # Robust brain center estimation. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces + robust: Off + + # Create a skull image + skull: Off + + # Gets additional skull and scalp surfaces by running bet2 and betsurf. This is mutually exclusive with reduce_bias, robust, padding, remove_eyes + surfaces: Off + + # Apply thresholding to segmented brain image and mask + threshold: Off + + # Vertical gradient in fractional intensity threshold (-1,1) + vertical_gradient: 0.0 + + Anatomical_Refined: + + # Choose whether or not to dilate the anatomical mask if you choose 'Anatomical_Refined' as the functional masking option. It will dilate one voxel if enabled. + anatomical_mask_dilation: False + + +nuisance_corrections: + + 1-ICA-AROMA: + + # this is a fork point + # run: [On, Off] - this will run both and fork the pipeline + run: [Off] + + # Types of denoising strategy: + # nonaggr: nonaggressive-partial component regression + # aggr: aggressive denoising + denoising_type: nonaggr + + 2-nuisance_regression: + + # this is a fork point + # run: [On, Off] - this will run both and fork the pipeline + run: [On] + + # Select which nuisance signal corrections to apply + Regressors: + + - Name: 'default' + + Motion: + include_delayed: true + include_squared: true + include_delayed_squared: true + + aCompCor: + summary: + method: DetrendPC + components: 5 + tissues: + - WhiteMatter + - CerebrospinalFluid + extraction_resolution: 2 + + CerebrospinalFluid: + summary: Mean + extraction_resolution: 2 + erode_mask: true + + GlobalSignal: + summary: Mean + + PolyOrt: + degree: 2 + + Bandpass: + bottom_frequency: 0.01 + top_frequency: 0.1 + method: default + + - Name: 'defaultNoGSR' + + Motion: + include_delayed: true + include_squared: true + include_delayed_squared: true + + aCompCor: + summary: + method: DetrendPC + components: 5 + tissues: + - WhiteMatter + - CerebrospinalFluid + extraction_resolution: 2 + + CerebrospinalFluid: + summary: Mean + extraction_resolution: 2 + erode_mask: true + + PolyOrt: + degree: 2 + + Bandpass: + bottom_frequency: 0.01 + top_frequency: 0.1 + method: default + + # Standard Lateral Ventricles Binary Mask + # used in CSF mask refinement for CSF signal-related regressions + lateral_ventricles_mask: $FSLDIR/data/atlases/HarvardOxford/HarvardOxford-lateral-ventricles-thr25-2mm.nii.gz + + # Whether to run frequency filtering before or after nuisance regression. + # Options: 'After' or 'Before' + bandpass_filtering_order: 'After' + + # Process and refine masks used to produce regressors and time series for + # regression. + regressor_masks: + + erode_anatomical_brain_mask: + + # Erode binarized anatomical brain mask. If choosing True, please also set seg_csf_use_erosion: True; regOption: niworkflows-ants. + run: Off + + # Erosion proportion, if using erosion. + # Default proportion is 0 for anatomical brain mask. + # Recommend that do not use erosion in both proportion and millimeter method. + brain_mask_erosion_prop : 0 + + # Erode brain mask in millimeter, default of brain is 30 mm + # brain erosion default is using millimeter erosion method when use erosion for brain. + brain_mask_erosion_mm : 30 + + # Erode binarized brain mask in millimeter + brain_erosion_mm: 0 + + erode_csf: + + # Erode binarized csf tissue mask. + run: Off + + # Erosion proportion, if use erosion. + # Default proportion is 0 for CSF (cerebrospinal fluid) mask. + # Recommend to do not use erosion in both proportion and millimeter method. + csf_erosion_prop : 0 + + # Erode brain mask in millimeter, default of csf is 30 mm + # CSF erosion default is using millimeter erosion method when use erosion for CSF. + csf_mask_erosion_mm: 30 + + # Erode binarized CSF (cerebrospinal fluid) mask in millimeter + csf_erosion_mm: 0 + + erode_wm: + + # Erode WM binarized tissue mask. + run: Off + + # Erosion proportion, if use erosion. + # Default proportion is 0.6 for White Matter mask. + # Recommend to do not use erosion in both proportion and millimeter method. + # White Matter erosion default is using proportion erosion method when use erosion for White Matter. + wm_erosion_prop : 0.6 + + # Erode brain mask in millimeter, default of White Matter is 0 mm + wm_mask_erosion_mm: 0 + + # Erode binarized White Matter mask in millimeter + wm_erosion_mm: 0 + + erode_gm: + + # Erode GM binarized tissue mask. + run: Off + + # Erosion proportion, if use erosion. + # Recommend to do not use erosion in both proportion and millimeter method. + gm_erosion_prop : 0.6 + + # Erode brain mask in millimeter, default of csf is 30 mm + gm_mask_erosion_mm: 30 + + # Erode binarized White Matter mask in millimeter + gm_erosion_mm: 0 + + +# OUTPUTS AND DERIVATIVES +# ----------------------- +post_processing: + + spatial_smoothing: + + # Smooth the derivative outputs. + # Set as ['nonsmoothed'] to disable smoothing. Set as both to get both. + # + # Options: + # ['smoothed', 'nonsmoothed'] + output: ['smoothed'] + + # Tool to use for smoothing. + # 'FSL' for FSL MultiImageMaths for FWHM provided + # 'AFNI' for AFNI 3dBlurToFWHM for FWHM provided + smoothing_method: ['FSL'] + + # Full Width at Half Maximum of the Gaussian kernel used during spatial smoothing. + # this is a fork point + # i.e. multiple kernels - fwhm: [4,6,8] + fwhm: [4] + + z-scoring: + + # z-score standardize the derivatives. This may be needed for group-level analysis. + # Set as ['raw'] to disable z-scoring. Set as both to get both. + # + # Options: + # ['z-scored', 'raw'] + output: ['z-scored'] + + +timeseries_extraction: + + run: On + + # Enter paths to region-of-interest (ROI) NIFTI files (.nii or .nii.gz) to be used for time-series extraction, and then select which types of analyses to run. + # Denote which analyses to run for each ROI path by listing the names below. For example, if you wish to run Avg and SpatialReg, you would enter: '/path/to/ROI.nii.gz': Avg, SpatialReg + # available analyses: + # /path/to/atlas.nii.gz: Avg, Voxel, SpatialReg, PearsonCorr, PartialCorr + tse_roi_paths: + /cpac_templates/CC400.nii.gz: Avg + /cpac_templates/aal_mask_pad.nii.gz: Avg + /cpac_templates/CC200.nii.gz: Avg + /cpac_templates/tt_mask_pad.nii.gz: Avg + /cpac_templates/PNAS_Smith09_rsn10.nii.gz: SpatialReg + /cpac_templates/ho_mask_pad.nii.gz: Avg + /cpac_templates/rois_3mm.nii.gz: Avg + /ndmg_atlases/label/Human/AAL_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/CAPRSC_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/DKT_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/DesikanKlein_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/HarvardOxfordcort-maxprob-thr25_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/HarvardOxfordsub-maxprob-thr25_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Juelich_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/MICCAI_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Schaefer1000_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Schaefer200_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Schaefer300_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Schaefer400_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Talairach_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Brodmann_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Desikan_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Glasser_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Slab907_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Yeo-17-liberal_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Yeo-17_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Yeo-7-liberal_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + /ndmg_atlases/label/Human/Yeo-7_space-MNI152NLin6_res-1x1x1.nii.gz: Avg + + # Functional time-series and ROI realignment method: ['ROI_to_func'] or ['func_to_ROI'] + # 'ROI_to_func' will realign the atlas/ROI to functional space (fast) + # 'func_to_ROI' will realign the functional time series to the atlas/ROI space + # + # NOTE: in rare cases, realigning the ROI to the functional space may + # result in small misalignments for very small ROIs - please double + # check your data if you see issues + realignment: 'ROI_to_func' + + +seed_based_correlation_analysis: + + # SCA - Seed-Based Correlation Analysis + # For each extracted ROI Average time series, CPAC will generate a whole-brain correlation map. + # It should be noted that for a given seed/ROI, SCA maps for ROI Average time series will be the same. + run: On + + # Enter paths to region-of-interest (ROI) NIFTI files (.nii or .nii.gz) to be used for seed-based correlation analysis, and then select which types of analyses to run. + # Denote which analyses to run for each ROI path by listing the names below. For example, if you wish to run Avg and MultReg, you would enter: '/path/to/ROI.nii.gz': Avg, MultReg + # available analyses: + # /path/to/atlas.nii.gz: Avg, DualReg, MultReg + sca_roi_paths: + /cpac_templates/PNAS_Smith09_rsn10.nii.gz: DualReg + /cpac_templates/CC400.nii.gz: Avg, MultReg + /cpac_templates/ez_mask_pad.nii.gz: Avg, MultReg + /cpac_templates/aal_mask_pad.nii.gz: Avg, MultReg + /cpac_templates/CC200.nii.gz: Avg, MultReg + /cpac_templates/tt_mask_pad.nii.gz: Avg, MultReg + /cpac_templates/ho_mask_pad.nii.gz: Avg, MultReg + /cpac_templates/rois_3mm.nii.gz: Avg, MultReg + + # Normalize each time series before running Dual Regression SCA. + norm_timeseries_for_DR: True + + +amplitude_low_frequency_fluctuation: + + # ALFF & f/ALFF + # Calculate Amplitude of Low Frequency Fluctuations (ALFF) and and fractional ALFF (f/ALFF) for all voxels. + run: On + + # Frequency cutoff (in Hz) for the high-pass filter used when calculating f/ALFF. + highpass_cutoff: [0.01] + + # Frequency cutoff (in Hz) for the low-pass filter used when calculating f/ALFF + lowpass_cutoff: [0.1] + + +regional_homogeneity: + + # ReHo + # Calculate Regional Homogeneity (ReHo) for all voxels. + run: On + + # Number of neighboring voxels used when calculating ReHo + # 7 (Faces) + # 19 (Faces + Edges) + # 27 (Faces + Edges + Corners) + cluster_size: 27 + + +voxel_mirrored_homotopic_connectivity: + + # VMHC + # Calculate Voxel-mirrored Homotopic Connectivity (VMHC) for all voxels. + run: On + + symmetric_registration: + + # Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. + # It is not necessary to change this path unless you intend to use a non-standard symmetric template. + T1w_brain_template_symmetric: $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain_symmetric.nii.gz + + # A reference symmetric brain template for resampling + T1w_brain_template_symmetric_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain_symmetric.nii.gz + + # Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. + # It is not necessary to change this path unless you intend to use a non-standard symmetric template. + T1w_template_symmetric: $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_symmetric.nii.gz + + # A reference symmetric skull template for resampling + T1w_template_symmetric_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_symmetric.nii.gz + + # Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. + # It is not necessary to change this path unless you intend to use a non-standard symmetric template. + dilated_symmetric_brain_mask: $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask_symmetric_dil.nii.gz + + # A reference symmetric brain mask template for resampling + dilated_symmetric_brain_mask_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain_mask_symmetric_dil.nii.gz + + +network_centrality: + + # Calculate Degree, Eigenvector Centrality, or Functional Connectivity Density. + run: On + + # Maximum amount of RAM (in GB) to be used when calculating Degree Centrality. + # Calculating Eigenvector Centrality will require additional memory based on the size of the mask or number of ROI nodes. + memory_allocation: 1.0 + + # Full path to a NIFTI file describing the mask. Centrality will be calculated for all voxels within the mask. + template_specification_file: /cpac_templates/Mask_ABIDE_85Percent_GM.nii.gz + + degree_centrality: + + # Enable/Disable degree centrality by selecting the connectivity weights + # weight_options: ['Binarized', 'Weighted'] + # disable this type of centrality with: + # weight_options: [] + weight_options: ['Binarized', 'Weighted'] + + # Select the type of threshold used when creating the degree centrality adjacency matrix. + # options: + # 'Significance threshold', 'Sparsity threshold', 'Correlation threshold' + correlation_threshold_option: 'Sparsity threshold' + + # Based on the Threshold Type selected above, enter a Threshold Value. + # P-value for Significance Threshold + # Sparsity value for Sparsity Threshold + # Pearson's r value for Correlation Threshold + correlation_threshold: 0.001 + + eigenvector_centrality: + + # Enable/Disable eigenvector centrality by selecting the connectivity weights + # weight_options: ['Binarized', 'Weighted'] + # disable this type of centrality with: + # weight_options: [] + weight_options: ['Weighted'] + + # Select the type of threshold used when creating the eigenvector centrality adjacency matrix. + # options: + # 'Significance threshold', 'Sparsity threshold', 'Correlation threshold' + correlation_threshold_option: 'Sparsity threshold' + + # Based on the Threshold Type selected above, enter a Threshold Value. + # P-value for Significance Threshold + # Sparsity value for Sparsity Threshold + # Pearson's r value for Correlation Threshold + correlation_threshold: 0.001 + + local_functional_connectivity_density: + + # Enable/Disable lFCD by selecting the connectivity weights + # weight_options: ['Binarized', 'Weighted'] + # disable this type of centrality with: + # weight_options: [] + weight_options: ['Binarized', 'Weighted'] + + # Select the type of threshold used when creating the lFCD adjacency matrix. + # options: + # 'Significance threshold', 'Correlation threshold' + correlation_threshold_option: 'Correlation threshold' + + # Based on the Threshold Type selected above, enter a Threshold Value. + # P-value for Significance Threshold + # Sparsity value for Sparsity Threshold + # Pearson's r value for Correlation Threshold + correlation_threshold: 0.6 + + +# PACKAGE INTEGRATIONS +# -------------------- +PyPEER: + + # Training of eye-estimation models. Commonly used for movies data/naturalistic viewing. + run: Off + + # PEER scan names to use for training + # Example: ['peer_run-1', 'peer_run-2'] + eye_scan_names: [] + + # Naturalistic viewing data scan names to use for eye estimation + # Example: ['movieDM'] + data_scan_names: [] + + # Template-space eye mask + eye_mask_path: $FSLDIR/data/standard/MNI152_T1_${func_resolution}_eye_mask.nii.gz + + # PyPEER Stimulus File Path + # This is a file describing the stimulus locations from the calibration sequence. + stimulus_path: None + + minimal_nuisance_correction: + + # PyPEER Minimal nuisance regression + # Note: PyPEER employs minimal preprocessing - these choices do not reflect what runs in the main pipeline. + # PyPEER uses non-nuisance-regressed data from the main pipeline. + + # Global signal regression (PyPEER only) + peer_gsr: True + + # Motion scrubbing (PyPEER only) + peer_scrub: False + + # Motion scrubbing threshold (PyPEER only) + scrub_thresh: 0.2 From c910665a5e56fc1ded710deea82377b85562284d Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Apr 2021 17:35:45 -0400 Subject: [PATCH 11/66] :construction: WIP Make default be 1.8 default --- .../pipeline/parts/PipelinePart.jsx | 309 +++++++++++++----- app/sagas/config.js | 33 +- c-pac/pipeline.js | 160 --------- 3 files changed, 252 insertions(+), 250 deletions(-) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 639df0a5..3ce701ca 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -18,18 +18,42 @@ import FormHelperText from '@material-ui/core/FormHelperText'; import FormControlLabel from '@material-ui/core/FormControlLabel'; import InputLabel from '@material-ui/core/InputLabel'; +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import TableFooter from '@material-ui/core/TableFooter'; + import Help from 'components/Help' import FormControlLabelled from 'components/FormControlLabelled' import Immutable from 'immutable'; +class PipelineListPart extends Component { + render() { + const { classes, configuration, onChange, parents } = this.props; + return ( + <> + ) + } +} + + function formatLabel(label) { const specialCasings = { + afni: "AFNI", ants: "ANTs", freesurfer: "FreeSurfer", - dir: "Directory" + fsl: "FSL", + aroma: "AROMA", + bet: "BET", + dir: "Directory", + epi: "EPI", + roi: "Region of Interest", + tse: "Timeseries Extraction", }; // words with special casing or adjusted spelling - const keepLower = ['at', 'per'] // words to not capitalize + const keepLower = ["at", "of", "per", "to"] // words to not capitalize let labelParts = label.split("_"); return labelParts.map(part => { if (part == part.toUpperCase() || keepLower.includes(part)) { @@ -49,92 +73,212 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= return ( <> { obj.entrySeq().map((entry) => { - switch (Immutable.Map.isMap(entry[1])) { - case true: + switch (entry[0].endsWith('roi_paths')) { + case true: // handle objects with custom keys return ( - - - - { formatLabel(entry[0]) } - - - - - { returnComponent(entry[1], classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } + + + + + {/* + + + + + ROI Image + Average + Voxel + Spatial Regression + Pearson correlation + Partial correlation + + + + { + config.get('masks').size == 0 ? ( + + + Add new rows with the "+" below. + + + ) : ( + config.get('masks').map((mask, i) => ( + + + this.removeMask(i)}> + + + + + + + + + + + + + + + + + + + + + + + )))} + + + + + + + + + + */} +
+
-
-
+ ) - case false: - const regex = new RegExp(`^\s*{entry[0]}`); - const label = formatLabel(entry[0]); - const name = [...parents, entry[0]].join('.'); - switch (typeof(entry[1])) { - case 'boolean': - return ( - - - - - - - - - - ) - case 'string': + default: // all others + switch (Immutable.Map.isMap(entry[1])) { + case true: return ( - - - - - - - + + + + { formatLabel(entry[0]) } + + + + + { returnComponent(entry[1], classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } + + + ) - case 'number': + case false: + const regex = new RegExp(`^\s*{entry[0]}`); + const label = formatLabel(entry[0]); + const name = [...parents, entry[0]].join('.'); + switch (typeof(entry[1])) { + case 'boolean': + return ( + + + + + + + + + + ) + case 'string': + return ( + + + + + + + + ) + case 'number': + return ( + + + + + + + + ) + default: + console.log(typeof(entry[1])) + return entry[1] + // case 'array': + // return ( + // + // + // + // + // + // + // + // ) + } + default: return ( - - - - - - - + <>{ entry[1] } ) } - default: - return ( - <>{ entry[1] } - ) } } ) } @@ -150,6 +294,9 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= class PipelinePart extends Component { static styles = theme => ({ + fullWidth: { + width: "100%", + }, sectionTitle: { paddingTop: 6, paddingLeft: 6, @@ -157,7 +304,7 @@ class PipelinePart extends Component { }); render() { - const { classes, configuration, onChange, parents } = this.props + const { classes, configuration, onChange, parents } = this.props; return ( diff --git a/app/sagas/config.js b/app/sagas/config.js index bbb804a0..71ecc21d 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -177,13 +177,13 @@ function* loadConfig (action) { let initialState = null try { - initialState = JSON.parse(localStorage.getItem('state')) + initialState = JSON.parse(localStorage.getItem("state")) } catch (e) { } if (!initialState) { initialState = config - localStorage.setItem('state', JSON.stringify(config)) + localStorage.setItem("state", JSON.stringify(config)) console.log("Using initial state") } else { console.log("Using local state") @@ -191,18 +191,33 @@ function* loadConfig (action) { if (!initialState.executions) { initialState.executions = [] - localStorage.setItem('state', JSON.stringify(initialState)) + localStorage.setItem("state", JSON.stringify(initialState)) } if (initialState.pipelines) { - initialState.pipelines = initialState.pipelines.map(cpac.pipeline.normalize) - initialState.pipelines.push({'id': 'manual', 'name': '1.8 manual', 'versions': {1: {'version': '1.8.0', 'configuration': {...Object.values(initialState.pipelines[0].versions)[0].configuration, ...cpac.pipeline.newTemplate}}}}); // temporary - localStorage.setItem('state', JSON.stringify(initialState)) + initialState.pipelines = initialState.pipelines.map(cpac.pipeline.normalize); + if (!initialState.pipelines.map(i => i.id).includes("default 1.8")) { + initialState.pipelines.push({ + "id": "default", + "name": "Default", + "versions": { + 1_8: { + "version": "1.8.0", + "configuration": { + ...Object.values(initialState.pipelines[0].versions)[0].configuration, + ...(cpac.pipeline.newTemplate) + } + } + } + }); + }; + initialState.pipelines = initialState.pipelines.slice(1,); + localStorage.setItem("state", JSON.stringify(initialState)); } if (!initialState.version) { initialState.version = VERSION - localStorage.setItem('state', JSON.stringify(initialState)) + localStorage.setItem("state", JSON.stringify(initialState)) } yield put(configLoaded(initialState)) @@ -210,12 +225,12 @@ function* loadConfig (action) { function* saveConfig() { const config = yield select((state) => state.main.getIn(['config'])); - localStorage.setItem('state', JSON.stringify(config.toJS())) + localStorage.setItem("state", JSON.stringify(config.toJS())) yield put(configSaved()) } function* clearConfig(config) { - localStorage.removeItem('state') + localStorage.removeItem("state") yield put(configCleared(config)) } diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index a806987f..fd9bc9f2 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -9,166 +9,6 @@ import { default as newTemplateRaw } from './resources/pipeline/default_pipeline const template = parse(raw) template.name = 'Default' -// const newTemplateRaw = `%YAML 1.1 -// --- -// # CPAC Pipeline Configuration YAML file -// # Version 1.8.0 -// # -// # http://fcp-indi.github.io for more info. -// # -// # Tip: This file can be edited manually with a text editor for quick modifications. - -// pipeline_setup: - -// # Name for this pipeline configuration - useful for identification. -// pipeline_name: cpac-default-pipeline - -// output_directory: - -// # Directory where C-PAC should write out processed data, logs, and crash reports. -// # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary -// # name like '/output', and then map (-B/-v) your desired output directory to that label. -// # - If running outside a container, this should be a full path to a directory. -// path: /output - -// # (Optional) Path to a BIDS-Derivatives directory that already has outputs. -// # - This option is intended to ingress already-existing resources from an output -// # directory without writing new outputs back into the same directory. -// # - If provided, C-PAC will ingress the already-computed outputs from this directory and -// # continue the pipeline from where they leave off. -// # - If left as 'None', C-PAC will ingress any already-computed outputs from the -// # output directory you provide above in 'path' instead, the default behavior. -// source_outputs_dir: None - -// # Set to True to make C-PAC ingress the outputs from the primary output directory if they -// # exist, even if a source_outputs_dir is provided -// # - Setting to False will pull from source_outputs_dir every time, over-writing any -// # calculated outputs in the main output directory -// # - C-PAC will still pull from source_outputs_dir if the main output directory is -// # empty, however -// pull_source_once: True - -// # Include extra versions and intermediate steps of functional preprocessing in the output directory. -// write_func_outputs: False - -// # Include extra outputs in the output directory that may be of interest when more information is needed. -// write_debugging_outputs: False - -// # Output directory format and structure. -// # Options: default, ndmg -// output_tree: "default" - -// # Generate quality control pages containing preprocessing and derivative outputs. -// generate_quality_control_images: True - -// working_directory: - -// # Directory where C-PAC should store temporary and intermediate files. -// # - This directory must be saved if you wish to re-run your pipeline from where you left off (if not completed). -// # - NOTE: As it stores all intermediate files, this directory can grow to become very -// # large, especially for data with a large amount of TRs. -// # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary -// # name like '/work', and then map (-B/-v) your desired output directory to that label. -// # - If running outside a container, this should be a full path to a directory. -// # - This can be written to '/tmp' if you do not intend to save your working directory. -// path: /tmp - -// # Deletes the contents of the Working Directory after running. -// # This saves disk space, but any additional preprocessing or analysis will have to be completely re-run. -// remove_working_dir: True - -// log_directory: - -// # Whether to write log details of the pipeline run to the logging files. -// run_logging: True - -// path: /logs - -// crash_log_directory: - -// # Directory where CPAC should write crash logs. -// path: /crash - -// system_config: - -// # Select Off if you intend to run CPAC on a single machine. -// # If set to On, CPAC will attempt to submit jobs through the job scheduler / resource manager selected below. -// on_grid: - -// run: Off - -// # Sun Grid Engine (SGE), Portable Batch System (PBS), or Simple Linux Utility for Resource Management (SLURM). -// # Only applies if you are running on a grid or compute cluster. -// resource_manager: SGE - -// SGE: -// # SGE Parallel Environment to use when running CPAC. -// # Only applies when you are running on a grid or compute cluster using SGE. -// parallel_environment: mpi_smp - -// # SGE Queue to use when running CPAC. -// # Only applies when you are running on a grid or compute cluster using SGE. -// queue: all.q - -// # The maximum amount of memory each participant's workflow can allocate. -// # Use this to place an upper bound of memory usage. -// # - Warning: 'Memory Per Participant' multiplied by 'Number of Participants to Run Simultaneously' -// # must not be more than the total amount of RAM. -// # - Conversely, using too little RAM can impede the speed of a pipeline run. -// # - It is recommended that you set this to a value that when multiplied by -// # 'Number of Participants to Run Simultaneously' is as much RAM you can safely allocate. -// maximum_memory_per_participant: 1 - -// # The maximum amount of cores (on a single machine) or slots on a node (on a cluster/grid) -// # to allocate per participant. -// # - Setting this above 1 will parallelize each participant's workflow where possible. -// # If you wish to dedicate multiple cores to ANTS-based anatomical registration (below), -// # this value must be equal or higher than the amount of cores provided to ANTS. -// # - The maximum number of cores your run can possibly employ will be this setting multiplied -// # by the number of participants set to run in parallel (the 'Number of Participants to Run -// # Simultaneously' setting). -// max_cores_per_participant: 1 - -// # The number of cores to allocate to ANTS-based anatomical registration per participant. -// # - Multiple cores can greatly speed up this preprocessing step. -// # - This number cannot be greater than the number of cores per participant. -// num_ants_threads: 1 - -// # The number of cores to allocate to processes that use OpenMP. -// num_OMP_threads: 1 - -// # The number of participant workflows to run at the same time. -// # - The maximum number of cores your run can possibly employ will be this setting -// # multiplied by the number of cores dedicated to each participant (the 'Maximum Number of Cores Per Participant' setting). -// num_participants_at_once: 1 - -// # Full path to the FSL version to be used by CPAC. -// # If you have specified an FSL path in your .bashrc file, this path will be set automatically. -// FSLDIR: /usr/share/fsl/5.0 - -// Amazon-AWS: - -// # If setting the 'Output Directory' to an S3 bucket, insert the path to your AWS credentials file here. -// aws_output_bucket_credentials: - -// # Enable server-side 256-AES encryption on data to the S3 bucket -// s3_encryption: False - -// Debugging: - -// # Verbose developer messages. -// verbose: Off - - -// # PREPROCESSING -// # ------------- -// surface_analysis: - -// # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives. -// # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline, -// # select those 'Freesurfer-' labeled options further below in anatomical_preproc. -// run_freesurfer: false` - const newTemplate = yaml.safeLoad(newTemplateRaw) export { yamlTemplate, template, raw as rawTemplate, newTemplate } From 6a5011c640e917fff0617f36b173e75907a5f43b Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Mon, 19 Apr 2021 12:47:44 -0400 Subject: [PATCH 12/66] :adhesive_bandage: Replace all underscores in tabs (not just first) --- app/containers/pipeline/PipelineEditor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 96e7d2ab..33ab7610 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -90,14 +90,14 @@ class PipelineEditor extends Component { > { configuration.keySeq().toJS().map((k) => ( - + )) } { - configuration.entrySeq().map((entry) => ( - + configuration.entrySeq().map((entry, i) => ( + )) From 7b9dce01f770a17cac80f51ddf43f9932a43d9cb Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 20 Apr 2021 12:39:14 -0400 Subject: [PATCH 13/66] :recycle: Auto-generate ROI paths components --- app/containers/pipeline/PipelineEditor.js | 6 +- .../pipeline/parts/PipelinePart.jsx | 134 ++---------------- app/containers/pipeline/parts/RoiPaths.jsx | 118 +++++++++++++++ app/containers/pipeline/parts/index.js | 3 +- app/sagas/config.js | 4 +- 5 files changed, 138 insertions(+), 127 deletions(-) create mode 100644 app/containers/pipeline/parts/RoiPaths.jsx diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 33ab7610..f730a0f2 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -24,7 +24,7 @@ import { SubjectIcon, } from 'components/icons'; -import { PipelinePart } from 'containers/pipeline/parts'; +import { formatLabel, PipelinePart } from 'containers/pipeline/parts'; import Button from '@material-ui/core/Button'; import IconButton from '@material-ui/core/IconButton' @@ -90,7 +90,7 @@ class PipelineEditor extends Component { > { configuration.keySeq().toJS().map((k) => ( - + )) } @@ -101,7 +101,7 @@ class PipelineEditor extends Component { )) - } + } ); } diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 3ce701ca..cc3b0938 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -29,6 +29,7 @@ import Help from 'components/Help' import FormControlLabelled from 'components/FormControlLabelled' import Immutable from 'immutable'; +import RoiPaths from './RoiPaths'; class PipelineListPart extends Component { render() { @@ -39,8 +40,7 @@ class PipelineListPart extends Component { } } - -function formatLabel(label) { +export const formatLabel = (label) => { const specialCasings = { afni: "AFNI", ants: "ANTs", @@ -73,112 +73,20 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= return ( <> { obj.entrySeq().map((entry) => { - switch (entry[0].endsWith('roi_paths')) { - case true: // handle objects with custom keys + switch (entry[0]) { // handle objects with custom keys + case "tse_roi_paths": return ( - - - - - {/* - - - - - ROI Image - Average - Voxel - Spatial Regression - Pearson correlation - Partial correlation - - - - { - config.get('masks').size == 0 ? ( - - - Add new rows with the "+" below. - - - ) : ( - config.get('masks').map((mask, i) => ( - - - this.removeMask(i)}> - - - - - - - - - - - - - - - - - - - - - - - )))} - - - - - - - - - - */} -
-
-
-
+ + ) + case "sca_roi_paths": + return ( + ) default: // all others switch (Immutable.Map.isMap(entry[1])) { case true: return ( - + { formatLabel(entry[0]) } @@ -198,7 +106,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= switch (typeof(entry[1])) { case 'boolean': return ( - + + + ) default: - console.log(typeof(entry[1])) + // console.log(typeof(entry[1])) return entry[1] - // case 'array': - // return ( - // - // - // - // - // - // - // - // ) } default: return ( diff --git a/app/containers/pipeline/parts/RoiPaths.jsx b/app/containers/pipeline/parts/RoiPaths.jsx new file mode 100644 index 00000000..e0097ea9 --- /dev/null +++ b/app/containers/pipeline/parts/RoiPaths.jsx @@ -0,0 +1,118 @@ +import React, { Component } from 'react'; +import { withStyles, Typography } from '@material-ui/core'; +import Grid from '@material-ui/core/Grid' + +import Paper from '@material-ui/core/Paper'; +import ExpansionPanel from '@material-ui/core/ExpansionPanel'; +import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; +import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; +import MenuItem from '@material-ui/core/MenuItem'; +import TextField from '@material-ui/core/TextField'; +import Switch from '@material-ui/core/Switch'; +import Checkbox from '@material-ui/core/Checkbox'; +import InputAdornment from '@material-ui/core/InputAdornment'; + +import FormGroup from '@material-ui/core/FormGroup'; +import FormLabel from '@material-ui/core/FormLabel'; +import FormControl from '@material-ui/core/FormControl'; +import FormHelperText from '@material-ui/core/FormHelperText'; +import FormControlLabel from '@material-ui/core/FormControlLabel'; +import InputLabel from '@material-ui/core/InputLabel'; + +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import TableFooter from '@material-ui/core/TableFooter'; + +import Help from 'components/Help'; +import FormControlLabelled from 'components/FormControlLabelled'; +import Icon from '@material-ui/core/Icon'; +import IconButton from '@material-ui/core/IconButton'; +import Button from '@material-ui/core/Button'; +import Fab from '@material-ui/core/Fab'; +import Immutable from 'immutable'; + +import { AddIcon, DeleteIcon } from 'components/icons'; + +class RoiPaths extends Component { + + render() { + const { config, configKey, onChange, validOptions, classes={}, help="", regex="" } = this.props; + return ( + + + + + + + + + + + ROI Image + { validOptions.map((option) => ( + { option } + ))} + + + + { config.size ? config.entrySeq().map((entry, i) => ( + + + this.removeMask(i)}> + + + + + + + { validOptions.map((option) => ( + + item.trim()).includes(option)} + /> + + ))} + + )) : ( + + + Add new rows with the "+" below. + + + ) + } + + + + + + + + + + +
+
+
+
+ ) + } + } + + export default RoiPaths; + \ No newline at end of file diff --git a/app/containers/pipeline/parts/index.js b/app/containers/pipeline/parts/index.js index 48f6782a..a306e36f 100644 --- a/app/containers/pipeline/parts/index.js +++ b/app/containers/pipeline/parts/index.js @@ -1 +1,2 @@ -export PipelinePart from './PipelinePart' \ No newline at end of file +export PipelinePart, { formatLabel } from './PipelinePart' +export RoiPaths from './RoiPaths' \ No newline at end of file diff --git a/app/sagas/config.js b/app/sagas/config.js index 71ecc21d..660d0dd6 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -205,7 +205,7 @@ function* loadConfig (action) { "version": "1.8.0", "configuration": { ...Object.values(initialState.pipelines[0].versions)[0].configuration, - ...(cpac.pipeline.newTemplate) + ...cpac.pipeline.newTemplate } } } @@ -237,14 +237,12 @@ function* clearConfig(config) { export default function* configSaga () { yield all([ takeEvery(CONFIG_LOAD, loadConfig), - takeEvery(CONFIG_SAVE, saveConfig), takeEvery(PIPELINE_NAME_UPDATE, saveConfig), takeEvery(PIPELINE_VERSION_DIRTY_UPDATE, saveConfig), takeEvery(PIPELINE_VERSION_DIRTY_SAVE, saveConfig), takeEvery(PIPELINE_DUPLICATE, saveConfig), takeEvery(PIPELINE_DELETE, saveConfig), - takeEvery(CONFIG_CLEAR, clearConfig), ]) } From 77a0131a121307a4b50955ce766a4a2e33ce604f Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 20 Apr 2021 12:42:03 -0400 Subject: [PATCH 14/66] :alien: Parse YAML 1.1 boolean aliases --- c-pac/pipeline.js | 14 +++++----- c-pac/resources/pipeline/yaml.js | 44 ++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 9 deletions(-) diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index fd9bc9f2..e8f226dd 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -1,15 +1,15 @@ -import yaml from 'js-yaml' -import semver from 'semver' -import deepmerge from 'deepmerge' +import yaml from 'js-yaml'; +import semver from 'semver'; +import deepmerge from 'deepmerge'; -import { default as defaultTemplate } from './resources/pipeline/config' -import yamlTemplate, { raw } from './resources/pipeline/yaml' -import { default as newTemplateRaw } from './resources/pipeline/default_pipeline.yml' +import { default as defaultTemplate } from './resources/pipeline/config'; +import yamlTemplate, { raw, loadYaml } from './resources/pipeline/yaml'; +import { default as newTemplateRaw } from './resources/pipeline/default_pipeline.yml'; const template = parse(raw) template.name = 'Default' -const newTemplate = yaml.safeLoad(newTemplateRaw) +const newTemplate = loadYaml(newTemplateRaw); export { yamlTemplate, template, raw as rawTemplate, newTemplate } diff --git a/c-pac/resources/pipeline/yaml.js b/c-pac/resources/pipeline/yaml.js index 92e137bc..1e7bcce9 100644 --- a/c-pac/resources/pipeline/yaml.js +++ b/c-pac/resources/pipeline/yaml.js @@ -1,7 +1,6 @@ import yaml from 'js-yaml' import raw from './pipeline_config_template.yml' -export { raw } let rawTemplate = '' let emptyLines = '' @@ -65,4 +64,45 @@ export default (config) => { // } // return replacements(yaml, configYamled, environment) -} \ No newline at end of file +} + + +const loadYaml = (yamlString) => { + let yamlJS = yaml.load(yamlString); + return updateBooleansToJSON(yamlJS); +}; + + +const updateBooleansToJSON = (yamlObj) => { + if (yamlObj != null) { + switch (typeof(yamlObj)) { + case 'object': + return Object.assign({}, ...Object.entries(yamlObj).map(entry => { + let returnObj = {}; + returnObj[entry[0]] = updateBooleansToJSON(entry[1]) + return returnObj; + })); + case 'array': + return yamlObj.map(item => updateBooleans(item)); + case 'string': + switch (yamlObj) { + case 'On': + case 'on': + case 'true': + case 'True': + return true; + case 'Off': + case 'off': + case 'false': + case 'False': + return false; + default: + return yamlObj; + }; + }; + } + return yamlObj; +} + + +export { raw, loadYaml } From 3a55221af7c195131bf34818bf4825c59fd100bf Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 21 Apr 2021 15:27:24 -0400 Subject: [PATCH 15/66] :white_check_mark: Test loadYaml --- c-pac/package.json | 4 +- c-pac/resources/pipeline/yaml.js | 26 +- c-pac/test/pipeline.test.js | 24 +- c-pac/yarn.lock | 5127 ++++++++++++++++++++---------- yarn.lock | 1889 ++++++++++- 5 files changed, 5391 insertions(+), 1679 deletions(-) diff --git a/c-pac/package.json b/c-pac/package.json index 438309c5..9b275c1a 100644 --- a/c-pac/package.json +++ b/c-pac/package.json @@ -35,9 +35,7 @@ "babel-loader": "^8.0.4", "babel-plugin-add-module-exports": "^1.0.0", "babel-plugin-inline-import": "^3.0.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", - "chai": "^4.2.0", - "mocha": "^7.1.2" + "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2" }, "scripts": { "test": "mocha --require @babel/register -R spec" diff --git a/c-pac/resources/pipeline/yaml.js b/c-pac/resources/pipeline/yaml.js index 1e7bcce9..61d56589 100644 --- a/c-pac/resources/pipeline/yaml.js +++ b/c-pac/resources/pipeline/yaml.js @@ -1,6 +1,5 @@ -import yaml from 'js-yaml' - -import raw from './pipeline_config_template.yml' +import yaml from 'js-yaml'; +import raw from './pipeline_config_template.yml'; let rawTemplate = '' let emptyLines = '' @@ -67,12 +66,33 @@ export default (config) => { } +/** + * Loads YAML 1.1 into JSON, specifically handling + * [YAML 1.1 booleans]{@link https://yaml.org/type/bool.html} + * @param {string} yamlString A YAML document as a string + * @example + * loadYaml("item: On") + * //=> {"item": true} + * @returns {(Object|Array)} Returns the YAML contents as JSON. + */ const loadYaml = (yamlString) => { let yamlJS = yaml.load(yamlString); return updateBooleansToJSON(yamlJS); }; +/** + * Helper function to convert + * [YAML 1.1 boolean strings]{@link https://yaml.org/type/bool.html} + * to boolean type + * @param {(Object|Array|string|boolean|number|null)} yamlObj + * @example + * updateBooleansToJSON({item: "Off"}) + * //=> {"item": false} + * @returns {(Object|Array|string|boolean|number|null)} Returns the given type + * unless the given type is a YAML 1.1 boolean string, in which case + * returns boolean. + */ const updateBooleansToJSON = (yamlObj) => { if (yamlObj != null) { switch (typeof(yamlObj)) { diff --git a/c-pac/test/pipeline.test.js b/c-pac/test/pipeline.test.js index 16f1c9ea..7db777a0 100644 --- a/c-pac/test/pipeline.test.js +++ b/c-pac/test/pipeline.test.js @@ -1,8 +1,9 @@ -import fs from 'fs' -import assert from 'assert' +import fs from 'fs'; +import assert from 'assert'; -import { pipeline } from '..' -const { template, parse, dump, normalize } = pipeline +import { pipeline } from '..'; +import { loadYaml } from '../resources/pipeline/yaml'; +const { template, parse, dump, normalize } = pipeline; describe('load pipeline', () => { it('should parse the YAML file', () => { @@ -223,5 +224,18 @@ describe('load pipeline', () => { regi++ assert(myNewPipeline_nuisance_regression.regressors.length === regi) - }) + }); + + it('load YAML 1.1', () => { + const config = loadYaml(`topLevel: + - middleLevel: + item: On + boolean: false + null: + - middleLevel: exampleString`); + assert.equal(config.topLevel[0].middleLevel.item, true); + assert.equal(config.topLevel[0].middleLevel.boolean, false); + assert.equal(config.topLevel[0].middleLevel.null, null); + assert.equal(config.topLevel[1].middleLevel, "exampleString"); + }); }) diff --git a/c-pac/yarn.lock b/c-pac/yarn.lock index b8e531e6..68dfb4c2 100644 --- a/c-pac/yarn.lock +++ b/c-pac/yarn.lock @@ -2,946 +2,1288 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.1.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" - integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.7.2" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" + integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== + +"@babel/core@^7.1.0", "@babel/core@^7.1.2", "@babel/core@^7.7.5": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a" + integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.16" + "@babel/helper-compilation-targets" "^7.13.16" + "@babel/helper-module-transforms" "^7.13.14" + "@babel/helpers" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.16" convert-source-map "^1.7.0" debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" - integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== +"@babel/generator@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" + integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== dependencies: - "@babel/types" "^7.7.2" + "@babel/types" "^7.13.16" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" - integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== dependencies: - "@babel/types" "^7.7.0" + "@babel/types" "^7.12.13" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz#32dd9551d6ed3a5fc2edc50d6912852aa18274d9" - integrity sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-builder-react-jsx@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.0.tgz#c6b8254d305bacd62beb648e4dea7d3ed79f352d" - integrity sha512-LSln3cexwInTMYYoFeVLKnYPPMfWNJ8PubTBs3hkh7wCu9iBaqq1OOyW+xGmEdLxT1nhsl+9SJ+h2oUDYz0l2A== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" + integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== dependencies: - "@babel/types" "^7.7.0" - esutils "^2.0.0" + "@babel/compat-data" "^7.13.15" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" -"@babel/helper-call-delegate@^7.4.4": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.0.tgz#df8942452c2c1a217335ca7e393b9afc67f668dc" - integrity sha512-Su0Mdq7uSSWGZayGMMQ+z6lnL00mMCnGAbO/R0ZO9odIdB/WNU/VfQKqMQU0fdIsxQYbRjDM4BixIa93SQIpvw== +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.13.11": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" + integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" -"@babel/helper-create-class-features-plugin@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.0.tgz#bcdc223abbfdd386f94196ae2544987f8df775e8" - integrity sha512-MZiB5qvTWoyiFOgootmRSDV1udjIqJW/8lmxgzKq6oDqxdmHUjeP2ZUOmgHdYjmUVNABqRrHjYAYRvj8Eox/UA== +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" -"@babel/helper-create-regexp-features-plugin@^7.7.0": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz#6f20443778c8fce2af2ff4206284afc0ced65db6" - integrity sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ== - dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" +"@babel/helper-define-polyfill-provider@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" + integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" + integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== + dependencies: + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.16" + +"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" + integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14": + version "7.13.14" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" + integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== + dependencies: + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.13" + "@babel/types" "^7.13.14" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + +"@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" + integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.12" + +"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helper-wrap-function@^7.12.13", "@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.13.16": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6" + integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.17" + "@babel/types" "^7.13.17" + +"@babel/highlight@^7.12.13": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" + integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@babel/helper-define-map@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" - integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" +"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" + integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== -"@babel/helper-explode-assignable-expression@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz#db2a6705555ae1f9f33b4b8212a546bc7f9dc3ef" - integrity sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" + integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== dependencies: - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/helper-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" - integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== +"@babel/plugin-proposal-async-generator-functions@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b" + integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA== dependencies: - "@babel/helper-get-function-arity" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" - integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== +"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/helper-hoist-variables@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" - integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== +"@babel/plugin-proposal-decorators@^7.1.2": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.13.15.tgz#e91ccfef2dc24dd5bd5dcc9fc9e2557c684ecfb8" + integrity sha512-ibAMAqUm97yzi+LPgdr5Nqb9CMkeieGHvwPg1ywSGjZrZHQEGqE01HmOio8kxRpA/+VtOHouIVy2FMpBbtltjA== dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-create-class-features-plugin" "^7.13.11" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-decorators" "^7.12.13" -"@babel/helper-member-expression-to-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" - integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== +"@babel/plugin-proposal-do-expressions@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.12.13.tgz#d48f2f96ea352173b886d4b5257bb1ed5ac4c52e" + integrity sha512-NXmNoFKXQ+BXWU474n+cT4C5I/OI3rMiZCKJ/PtA/7AGMjGreXrt+YfoGmgm7Wimz/qumrycHNvg/fr4q2uv0w== dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-do-expressions" "^7.12.13" -"@babel/helper-module-imports@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" - integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== +"@babel/plugin-proposal-dynamic-import@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" + integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" - integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== +"@babel/plugin-proposal-export-default-from@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.13.tgz#f110284108a9b2b96f01b15b3be9e54c2610a989" + integrity sha512-idIsBT+DGXdOHL82U+8bwX4goHm/z10g8sGGrQroh+HCRcm7mDv/luaGdWJQMTuCX2FsdXS7X0Nyyzp4znAPJA== dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-simple-access" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-default-from" "^7.12.13" -"@babel/helper-optimise-call-expression@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" - integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== +"@babel/plugin-proposal-export-namespace-from@^7.0.0", "@babel/plugin-proposal-export-namespace-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-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== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" - integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-wrap-function" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" - integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-simple-access@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" - integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-split-export-declaration@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" - integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-wrap-function@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" - integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helpers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" - integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== +"@babel/plugin-proposal-function-bind@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.12.13.tgz#ec540d59af8a73743ecf4be8ea9eceef86ad6384" + integrity sha512-HdFUUOUhB5WuNug+rfhcRvjqjjtKdJlWr6kgIezpbh9xiIEza/pPWw+bJeH2GdGeUyNqhRIYeFKt0M3/xXWp1w== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-function-bind" "^7.12.13" -"@babel/parser@^7.7.0", "@babel/parser@^7.7.2": - version "7.7.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" - integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== +"@babel/plugin-proposal-function-sent@^7.1.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.12.13.tgz#553f47e4b7f7e9becb6b5013ed5c4dd72b72400e" + integrity sha512-nw5dSsy0+o+WBE372ooERkkZmFv2KJcujzTB5SdhQPKIElVA1pa7hclD23Vzl4VlcoJsC7KCCXpww2qAkbrrKA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-wrap-function" "^7.12.13" + "@babel/plugin-syntax-function-sent" "^7.12.13" + +"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" + integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.0.0", "@babel/plugin-proposal-logical-assignment-operators@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" + integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" + integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" + integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.13.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" + integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" + integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-async-generator-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" - integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== +"@babel/plugin-proposal-pipeline-operator@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.12.13.tgz#739a490d253513f4fbead016afcfbb8ed980eb9d" + integrity sha512-p6ypYNG6oKPHO73jPjyBVrZMcc2bWWn8ByusDzStzlPmWNElcErf+pZGB6Lt5f23T9LFFTB7rqOr8BQMc1nSiQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-pipeline-operator" "^7.12.13" -"@babel/plugin-proposal-class-properties@^7.1.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.0.tgz#ac54e728ecf81d90e8f4d2a9c05a890457107917" - integrity sha512-tufDcFA1Vj+eWvwHN+jvMN6QsV5o+vUlytNKrbMiCeDL0F2j92RURzUsUMWE5EJkLyWxjdUslCsMQa9FWth16A== +"@babel/plugin-proposal-private-methods@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-decorators@^7.1.2": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.7.0.tgz#d386a45730a4eb8c03e23a80b6d3dbefd761c9c9" - integrity sha512-dMCDKmbYFQQTn1+VJjl5hbqlweuHl5oDeMU9B1Q7oAWi0mHxjQQDHdJIK6iW76NE1KJT3zA6dDU3weR1WT5D4A== +"@babel/plugin-proposal-throw-expressions@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.12.13.tgz#48a6e4a5988041d16b0a2f1568a3b518f8b6c1d4" + integrity sha512-zhItTJGy2xLYneBdOk9CeyuEXWJt9J+pwTEIDl+A/VKMCq6E9ij3l1RRuTYBwtktTO9bCcIfA4/+d0HibVWSEA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-decorators" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-throw-expressions" "^7.12.13" -"@babel/plugin-proposal-do-expressions@^7.0.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.6.0.tgz#192953fed8620d13d12a61f68defd26f41059193" - integrity sha512-qJDaoBDbLySwU1tG0jbAomOwz8W1PEiiiK0iLQAnHLr4PYIMVX4ltDGkj3uAKx4HDs1WJ0tozGW1zAQjuTIiWg== +"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-do-expressions" "^7.2.0" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-dynamic-import@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" - integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== +"@babel/plugin-syntax-async-generators@^7.8.4": + 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.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-export-default-from@^7.0.0": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz#2c0ac2dcc36e3b2443fead2c3c5fc796fb1b5145" - integrity sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg== +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + 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: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-export-namespace-from@^7.0.0": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.5.2.tgz#ccd5ed05b06d700688ff1db01a9dd27155e0d2a0" - integrity sha512-TKUdOL07anjZEbR1iSxb5WFh810KyObdd29XLFLGo1IDsSuGrjH3ouWSbAxHNmrVKzr9X71UYl2dQ7oGGcRp0g== +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-export-namespace-from" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-function-bind@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.2.0.tgz#94dc2cdc505cafc4e225c0014335a01648056bf7" - integrity sha512-qOFJ/eX1Is78sywwTxDcsntLOdb5ZlHVVqUz5xznq8ldAfOVIyZzp1JE2rzHnaksZIhrqMrwIpQL/qcEprnVbw== +"@babel/plugin-syntax-decorators@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" + integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-function-bind" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-function-sent@^7.1.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.7.0.tgz#590fcf28b55832459d9a747625c563d8abba4d13" - integrity sha512-idgtU4Iw3IwC2L+OAEI1cTdVdXe/7lUXH8MaCzg/uBa1Z+4LSwl73r1bguJP3OUQtbm88mBRtefaJiSb/CcMcA== +"@babel/plugin-syntax-do-expressions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.12.13.tgz#ccc56d7badecf21a4c47a9f63ef0eeb9582f0306" + integrity sha512-xm52bNA0O8QPH4rBXXJ/VLaQ6UGocUS3/fbgZO5z+KDUU7y8iFy8cnIwuRS/NNGjs18sOquzJfH0EasQv+F1oQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-wrap-function" "^7.7.0" - "@babel/plugin-syntax-function-sent" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + 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-json-strings" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-logical-assignment-operators@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.2.0.tgz#8a5cea6c42a7c87446959e02fff5fad012c56f57" - integrity sha512-0w797xwdPXKk0m3Js74hDi0mCTZplIu93MOSfb1ZLd/XFe3abWypx1QknVk0J+ohnsjYpvjH4Gwfo2i3RicB6Q== +"@babel/plugin-syntax-export-default-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.12.13.tgz#3c807d37efaf0a806f1deb556ccb3b2f562ae9c2" + integrity sha512-gVry0zqoums0hA+EniCYK3gABhjYSLX1dVuwYpPw9DrLNA4/GovXySHVg4FGRsZht09ON/5C2NVx3keq+qqVGQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz#41c360d59481d88e0ce3a3f837df10121a769b39" - integrity sha512-Amph7Epui1Dh/xxUxS2+K22/MUi6+6JVTvy3P58tja3B6yKTSjwwx0/d83rF7551D6PVSSoplQb8GCwqec7HRw== +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.2.0.tgz#646854daf4cd22fd6733f6076013a936310443ac" - integrity sha512-DohMOGDrZiMKS7LthjUZNNcWl8TAf5BZDwZAH4wpm55FuJTHgfqPGdibg7rZDmont/8Yg0zA03IgT6XLeP+4sg== +"@babel/plugin-syntax-flow@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86" + integrity sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-numeric-separator" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-object-rest-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" - integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== +"@babel/plugin-syntax-function-bind@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.12.13.tgz#21e32e233c10258b0437ab8f9188ea9d8bddc0e5" + integrity sha512-8tkZMgbO5s/WkVnl04rBvULapZeXOHkaEW+w7oSzmEKwD6hDCtaAKouhgpoMa3uo8zC1HFpjlVh85PUVqvAxHw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== +"@babel/plugin-syntax-function-sent@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.12.13.tgz#60cb34f7395b0325ffbb5b0794cd5b88e23e1928" + integrity sha512-Uv9lAv+/vX8hmvC2rTUvywJacR517eRqTKfLZrtLAoMGUjfQSZ0nPEFJWmfJs1H54zBaIj15ATfUnkheZnSK9w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-optional-chaining@^7.0.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz#e9bf1f9b9ba10c77c033082da75f068389041af8" - integrity sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg== +"@babel/plugin-syntax-import-meta@^7.0.0", "@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-optional-chaining" "^7.2.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-pipeline-operator@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.5.0.tgz#4100ec55ef4f6a4c2490b5f5a4f2a22dfa272c06" - integrity sha512-HFYuu/yGnkn69ligXxU0ohOVvQDsMNOUJs/c4PYLUVS6ntCYOyGmRQQaSYJARJ9rvc7/ulZKIzxd4wk91hN63A== +"@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.0.0" - "@babel/plugin-syntax-pipeline-operator" "^7.5.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-throw-expressions@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.2.0.tgz#2d9e452d370f139000e51db65d0a85dc60c64739" - integrity sha512-adsydM8DQF4i5DLNO4ySAU5VtHTPewOtNBV3u7F4lNMPADFF9bWQ+iDtUUe8+033cYCUz+bFlQdXQJmJOwoLpw== +"@babel/plugin-syntax-jsx@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" + integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-throw-expressions" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-proposal-unicode-property-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" - integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@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-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== +"@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-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-decorators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" - integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== +"@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-do-expressions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.2.0.tgz#f3d4b01be05ecde2892086d7cfd5f1fa1ead5a2a" - integrity sha512-/u4rJ+XEmZkIhspVuKRS+7WLvm7Dky9j9TvGK5IgId8B3FKir9MG+nQxDZ9xLn10QMBvW58dZ6ABe2juSmARjg== +"@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-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== +"@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-export-default-from@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz#edd83b7adc2e0d059e2467ca96c650ab6d2f3820" - integrity sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw== +"@babel/plugin-syntax-optional-chaining@^7.8.3": + 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-syntax-export-namespace-from@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.2.0.tgz#8d257838c6b3b779db52c0224443459bd27fb039" - integrity sha512-1zGA3UNch6A+A11nIzBVEaE3DDJbjfB+eLIcf0GGOh/BJr/8NxL3546MGhV/r0RhH4xADFIEso39TKCfEMlsGA== +"@babel/plugin-syntax-pipeline-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.12.13.tgz#a6a01b9bd1b695945783ed8a6b66696ff179981c" + integrity sha512-IHs5FTRPJv7M7K0IurpuCTU1ILnhAXDi+YW8dIddJywIDWEYAaV90pSk1RnHRAyExn8szPER1SaraZdZLxKOGw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-flow@^7.2.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.7.0.tgz#5c9465bcd26354d5215294ea90ab1c706a571386" - integrity sha512-vQMV07p+L+jZeUnvX3pEJ9EiXGCjB5CTTvsirFD9rpEuATnoAvLBLoYbw1v5tyn3d2XxSuvEKi8cV3KqYUa0vQ== +"@babel/plugin-syntax-throw-expressions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.12.13.tgz#bb02bfbaf57d71ab69280ebf6a53aa45ad4c3f1a" + integrity sha512-vbpx/IxHR3qqWEfYeiVLq4+RFj2F4GjsMzoXEx/YU/pgmTA6o7T92DQHWIeetg7msKQFnyG1PwmPLWMlAn+Fmg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-function-bind@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.2.0.tgz#68fe85b0c0da67125f87bf239c68051b06c66309" - integrity sha512-/WzU1lLU2l0wDfB42Wkg6tahrmtBbiD8C4H6EGSX0M4GAjzN6JiOpq/Uh8G6GSoR6lPMvhjM0MNiV6znj6y/zg== +"@babel/plugin-syntax-top-level-await@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-function-sent@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.2.0.tgz#91474d4d400604e4c6cbd4d77cd6cb3b8565576c" - integrity sha512-2MOVuJ6IMAifp2cf0RFkHQaOvHpbBYyWCvgtF/WVqXhTd7Bgtov8iXVCadLXp2FN1BrI2EFl+JXuwXy0qr3KoQ== +"@babel/plugin-transform-arrow-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-syntax-import-meta@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.2.0.tgz#2333ef4b875553a3bcd1e93f8ebc09f5b9213a40" - integrity sha512-Hq6kFSZD7+PHkmBN8bCpHR6J8QEoCuEV/B38AIQscYjgMZkGlXB7cHNFzP5jR4RCh5545yP1ujHdmO7hAgKtBA== +"@babel/plugin-transform-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== +"@babel/plugin-transform-block-scoped-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== +"@babel/plugin-transform-block-scoping@^7.12.13": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz#a9c0f10794855c63b1d629914c7dcfeddd185892" + integrity sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-syntax-logical-assignment-operators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.2.0.tgz#fcab7388530e96c6f277ce494c55caa6c141fcfb" - integrity sha512-l/NKSlrnvd73/EL540t9hZhcSo4TULBrIPs9Palju8Oc/A8DXDO+xQf04whfeuZLpi8AuIvCAdpKmmubLN4EfQ== +"@babel/plugin-transform-classes@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" + integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" + globals "^11.1.0" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.2.0.tgz#f75083dfd5ade73e783db729bbd87e7b9efb7624" - integrity sha512-lRCEaKE+LTxDQtgbYajI04ddt6WW0WJq57xqkAZ+s11h4YgfRHhVA/Y2VhfPzzFD4qeLHWg32DMp9HooY4Kqlg== +"@babel/plugin-transform-computed-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-syntax-numeric-separator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.2.0.tgz#7470fe070c2944469a756752a69a6963135018be" - integrity sha512-DroeVNkO/BnGpL2R7+ZNZqW+E24aR/4YWxP3Qb15d6lPU8KDzF8HlIUIRCOJRn4X77/oyW4mJY+7FHfY82NLtQ== +"@babel/plugin-transform-destructuring@^7.13.0": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" + integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== +"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== +"@babel/plugin-transform-duplicate-keys@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-optional-chaining@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz#a59d6ae8c167e7608eaa443fda9fa8fa6bf21dff" - integrity sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA== +"@babel/plugin-transform-exponentiation-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-pipeline-operator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.5.0.tgz#8ea7c2c22847c797748bf07752722a317079dc1e" - integrity sha512-5FVxPiMTMXWk4R7Kq9pt272nDu8VImJdaIzvXFSTcXFbgKWWaOdbic12TvUvl6cK+AE5EgnhwvxuWik4ZYYdzg== +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz#58177a48c209971e8234e99906cb6bd1122addd3" + integrity sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-flow" "^7.12.13" -"@babel/plugin-syntax-throw-expressions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.2.0.tgz#79001ee2afe1b174b1733cdc2fc69c9a46a0f1f8" - integrity sha512-ngwynuqu1Rx0JUS9zxSDuPgW1K8TyVZCi2hHehrL4vyjqE7RGoNHWlZsS7KQT2vw9Yjk4YLa0+KldBXTRdPLRg== +"@babel/plugin-transform-for-of@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-syntax-top-level-await@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" - integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== +"@babel/plugin-transform-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== +"@babel/plugin-transform-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" - integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== +"@babel/plugin-transform-member-expression-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== +"@babel/plugin-transform-modules-amd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" + integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-block-scoping@^7.6.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" - integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== +"@babel/plugin-transform-modules-commonjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" + integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-classes@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" - integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== +"@babel/plugin-transform-modules-systemjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-define-map" "^7.7.0" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - globals "^11.1.0" + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== +"@babel/plugin-transform-modules-umd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" + integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" - integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" -"@babel/plugin-transform-dotall-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" - integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== +"@babel/plugin-transform-new-target@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== +"@babel/plugin-transform-object-super@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== +"@babel/plugin-transform-parameters@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" + integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.6.3.tgz#8110f153e7360cfd5996eee68706cfad92d85256" - integrity sha512-l0ETkyEofkqFJ9LS6HChNIKtVJw2ylKbhYMlJ5C6df+ldxxaLIyXY4yOdDQQspfFpV8/vDiaWoJlvflstlYNxg== +"@babel/plugin-transform-property-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-for-of@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== +"@babel/plugin-transform-react-display-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" + integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" - integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== +"@babel/plugin-transform-react-jsx-development@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" + integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.12.17" -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== +"@babel/plugin-transform-react-jsx-source@^7.5.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" + integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" - integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== +"@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" + integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.13.12" -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== +"@babel/plugin-transform-react-pure-annotations@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-commonjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" - integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== +"@babel/plugin-transform-regenerator@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" + integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.0" - babel-plugin-dynamic-import-node "^2.3.0" + regenerator-transform "^0.14.2" -"@babel/plugin-transform-modules-systemjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" - integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== +"@babel/plugin-transform-reserved-words@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-umd@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" - integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== +"@babel/plugin-transform-shorthand-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" - integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== +"@babel/plugin-transform-spread@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-new-target@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== +"@babel/plugin-transform-sticky-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== +"@babel/plugin-transform-template-literals@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-parameters@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== +"@babel/plugin-transform-typeof-symbol@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== dependencies: - "@babel/helper-call-delegate" "^7.4.4" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" - integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== +"@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" - integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== +"@babel/plugin-transform-unicode-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" - integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" +"@babel/preset-env@^7.1.0": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f" + integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA== + dependencies: + "@babel/compat-data" "^7.13.15" + "@babel/helper-compilation-targets" "^7.13.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-async-generator-functions" "^7.13.15" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-dynamic-import" "^7.13.8" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-json-strings" "^7.13.8" + "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-object-rest-spread" "^7.13.8" + "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@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/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.13.0" + "@babel/plugin-transform-async-to-generator" "^7.13.0" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-classes" "^7.13.0" + "@babel/plugin-transform-computed-properties" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.13.0" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.13.0" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-systemjs" "^7.13.8" + "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.13.15" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.13.0" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.13.0" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.13.14" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" + core-js-compat "^3.9.0" + semver "^6.3.0" -"@babel/plugin-transform-react-jsx-source@^7.0.0", "@babel/plugin-transform-react-jsx-source@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" - integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.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/plugin-transform-react-jsx@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.0.tgz#834b0723ba78cd4d24d7d629300c2270f516d0b7" - integrity sha512-mXhBtyVB1Ujfy+0L6934jeJcSXj/VCg6whZzEcgiiZHNS0PGC7vUCsZDQCxxztkpIdF+dY1fUMcjAgEOC3ZOMQ== +"@babel/preset-react@^7.0.0": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz#fa6895a96c50763fe693f9148568458d5a839761" + integrity sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA== dependencies: - "@babel/helper-builder-react-jsx" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-transform-react-display-name" "^7.12.13" + "@babel/plugin-transform-react-jsx" "^7.13.12" + "@babel/plugin-transform-react-jsx-development" "^7.12.17" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" -"@babel/plugin-transform-regenerator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" - integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== +"@babel/register@^7.0.0": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.13.16.tgz#ae3ab0b55c8ec28763877383c454f01521d9a53d" + integrity sha512-dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg== dependencies: - regenerator-transform "^0.14.0" + clone-deep "^4.0.1" + find-cache-dir "^2.0.0" + make-dir "^2.1.0" + pirates "^4.0.0" + source-map-support "^0.5.16" -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" - integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" +"@babel/runtime@^7.8.4": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec" + integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.12.13", "@babel/template@^7.3.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3" + integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.16" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.16" + "@babel/types" "^7.13.17" + debug "^4.1.0" + globals "^11.1.0" -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" + integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-validator-identifier" "^7.12.11" + to-fast-properties "^2.0.0" -"@babel/plugin-transform-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" - integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" +"@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== -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + exec-sh "^0.3.2" + minimist "^1.2.0" -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== +"@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.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@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@^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@^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@^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@^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@^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: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== +"@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: - "@babel/helper-plugin-utils" "^7.0.0" + "@jest/console" "^25.5.0" + "@jest/types" "^25.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" -"@babel/plugin-transform-unicode-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" - integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== +"@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: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@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@^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" -"@babel/preset-env@^7.1.0": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" - integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== +"@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: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.0" - "@babel/plugin-proposal-dynamic-import" "^7.7.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-syntax-top-level-await" "^7.7.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.7.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.3" - "@babel/plugin-transform-classes" "^7.7.0" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.7.0" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.7.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.7.0" - "@babel/plugin-transform-modules-systemjs" "^7.7.0" - "@babel/plugin-transform-modules-umd" "^7.7.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.7.0" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.6.2" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.7.0" - "@babel/types" "^7.7.1" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" -"@babel/preset-react@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.7.0.tgz#8ab0c4787d98cf1f5f22dabf115552bf9e4e406c" - integrity sha512-IXXgSUYBPHUGhUkH+89TR6faMcBtuMW0h5OHbMuVbL3/5wK2g6a2M2BBpkLa+Kw0sAHiZ9dNVgqJMDP/O4GRBA== +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.7.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" + type-detect "4.0.8" -"@babel/register@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.0.tgz#4e23ecf840296ef79c605baaa5c89e1a2426314b" - integrity sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg== +"@supabase/doctest-js@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@supabase/doctest-js/-/doctest-js-0.1.0.tgz#a3e9e3d025d4234e4cd0c952324e6d739d392164" + integrity sha512-7PR5UhFbqrNVidbzryi7+/U/N8NV+LahuGQApY5kJ5Tuol3EquTkJcO/dN3t/9NDmPjvXq6psfZnT1+I9LW1kQ== + dependencies: + babel-core "^6.26.3" + babel-register "^6.26.0" + chai "^4.1.2" + jest "^25.1.0" + jison "^0.4.18" + lex "^1.7.9" + +"@types/babel__core@^7.1.7": + version "7.1.14" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" + integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" + "@babel/types" "^7.0.0" -"@babel/template@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" - integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" - integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/types" "^7.7.2" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" -"@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7" - integrity sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA== +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" + integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" + "@babel/types" "^7.3.0" "@types/eslint-scope@^3.7.0": version "3.7.0" @@ -952,32 +1294,81 @@ "@types/estree" "*" "@types/eslint@*": - version "7.2.8" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.8.tgz#45cd802380fcc352e5680e1781d43c50916f12ee" - integrity sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ== + version "7.2.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917" + integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": +"@types/estree@*", "@types/estree@^0.0.47": version "0.0.47" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== -"@types/estree@^0.0.46": - version "0.0.46" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@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 "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.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.6": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@types/node@*": - version "14.14.37" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" - integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + version "14.14.41" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615" + integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g== + +"@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.19.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" "@webassemblyjs/ast@1.11.0": version "1.11.0" @@ -1110,22 +1501,55 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -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== +JSONSelect@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" + integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= + +"JSV@>= 4.0.x": + version "4.0.2" + resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" + integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= + +abab@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +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== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.0.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.4: - version "8.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" - integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== + version "8.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" + integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.12.5: +ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1135,38 +1559,57 @@ ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -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== +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1175,27 +1618,14 @@ 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== +anymatch@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1218,11 +1648,28 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -1233,16 +1680,31 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -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== +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -1252,15 +1714,76 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-core@^6.26.0, babel-core@^6.26.3: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +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-loader@^8.0.4: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - pify "^4.0.1" + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" babel-messages@^6.23.0: version "6.23.0" @@ -1270,16 +1793,14 @@ babel-messages@^6.23.0: babel-runtime "^6.22.0" babel-plugin-add-module-exports@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz#96cd610d089af664f016467fc4567c099cce2d9c" - integrity sha512-4paN7RivvU3Rzju1vGSHWPjO8Y0rI6droWvSFKI6dvEQ4mvoV0zGojnlzVRfI6N8zISo6VERXt3coIuVmzuvNg== - optionalDependencies: - chokidar "^2.0.4" + version "1.0.4" + resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz#6caa4ddbe1f578c6a5264d4d3e6c8a2720a7ca2b" + integrity sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg== -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" @@ -1290,6 +1811,50 @@ babel-plugin-inline-import@^3.0.0: dependencies: require-resolve "0.0.2" +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@^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-plugin-polyfill-corejs2@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" + integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.0" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" + integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.0" + core-js-compat "^3.9.1" + +babel-plugin-polyfill-regenerator@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" + integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.0" + babel-plugin-transform-es2015-modules-commonjs@^6.26.2: version "6.26.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" @@ -1308,6 +1873,44 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" +babel-preset-current-node-syntax@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" + integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== + 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@^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" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1316,7 +1919,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.26.0: +babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= @@ -1358,9 +1961,9 @@ babylon@^6.18.0: integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base@^0.11.1: version "0.11.2" @@ -1375,21 +1978,18 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + 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.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1398,7 +1998,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== @@ -1414,37 +2014,42 @@ 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.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-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== +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== -browserslist@^4.14.5: - version "4.16.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" + resolve "1.1.7" + +browserslist@^4.14.5, browserslist@^4.16.4: + version "4.16.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" + integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== + dependencies: + caniuse-lite "^1.0.30001208" + colorette "^1.2.2" + electron-to-chromium "^1.3.712" escalade "^3.1.1" - node-releases "^1.1.70" + node-releases "^1.1.71" -browserslist@^4.6.0, browserslist@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" - integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw== +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: - caniuse-lite "^1.0.30001004" - electron-to-chromium "^1.3.295" - node-releases "^1.1.38" + node-int64 "^0.4.0" buffer-from@^1.0.0: version "1.1.1" @@ -1466,31 +2071,51 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -camelcase@^5.0.0: +call-bind@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001004: - version "1.0.30001008" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz#b8841b1df78a9f5ed9702537ef592f1f8772c0d9" - integrity sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw== +caniuse-lite@^1.0.30001208: + version "1.0.30001214" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz#70f153c78223515c6d37a9fde6cd69250da9d872" + integrity sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" -caniuse-lite@^1.0.30001181: - version "1.0.30001207" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz#364d47d35a3007e528f69adb6fecb07c2bb2cc50" - integrity sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chai@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" - integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== +chai@^4.1.2, chai@^4.2.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" + integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" deep-eql "^3.0.1" get-func-name "^2.0.0" - pathval "^1.1.0" + pathval "^1.1.1" type-detect "^4.0.5" chalk@^1.1.3: @@ -1504,7 +2129,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.4.2: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1513,56 +2138,44 @@ chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -chokidar@3.3.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" - -chokidar@^2.0.4: - 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" +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -chownr@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== +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== -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== +cjson@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" + integrity sha1-5kObkHA9MS/24iJAl76pLOPQKhQ= dependencies: - tslib "^1.9.0" + jsonlint "1.6.0" class-utils@^0.3.5: version "0.3.6" @@ -1574,19 +2187,33 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== +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 "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +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" @@ -1603,16 +2230,40 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -colorette@^1.2.1: +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1633,12 +2284,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -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= - -convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.5.1, 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== @@ -1650,44 +2296,90 @@ 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.1.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.4.1.tgz#e12c5a3ef9fcb50fd9d9a32805bfe674f9139246" - integrity sha512-YdeJI26gLc0CQJ9asLE5obEgBz2I0+CIgnoTbS2T0d5IPQw/OCgCIFR527RmpduxjrB3gSEHoGOCTq9sigOyfw== +core-js-compat@^3.9.0, core-js-compat@^3.9.1: + version "3.10.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.2.tgz#0a675b4e1cde599616322a72c8886bcf696f3ec3" + integrity sha512-IGHnpuaM1N++gLSPI1F1wu3WXICPxSyj/Q++clcwsIOnUVp5uKUIPl/+6h0TQ112KU3fMiSxqJuM+OrCyKj5+A== dependencies: - browserslist "^4.7.2" - semver "^6.3.0" + browserslist "^4.16.4" + semver "7.0.0" -core-js@^2.4.0: - version "2.6.10" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" - integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@~1.0.0: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -debug@3.2.6, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: - ms "^2.1.1" + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" -debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: +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.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +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" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^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== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, 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@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "^2.1.1" + ms "2.1.2" decamelize@^1.2.0: version "1.2.0" @@ -1706,17 +2398,22 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@~0.1.3: + version "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@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== -define-properties@^1.1.2, define-properties@^1.1.3: +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== + +define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -1745,90 +2442,128 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -delegates@^1.0.0: +delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +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== -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-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== -electron-to-chromium@^1.3.295: - version "1.3.306" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.306.tgz#e8265301d053d5f74e36cb876486830261fbe946" - integrity sha512-frDqXvrIROoYvikSKTIKbHbzO6M3/qC6kCIt/1FOa9kALe++c4VAJnwjSFvf1tYLEUsP2n9XZ4XSCyqc3l7A/A== +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" -electron-to-chromium@^1.3.649: - version "1.3.708" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.708.tgz#127970d2fc665ab356be59e668f2914856419176" - integrity sha512-+A8ggYZ5riOLMcVAuzHx6bforaPzaiLnW1QOMD2SlMYQVi7QQTyQ/WrlZoebIH9ikmgr+tLJGpNITFFCUiQcPw== +ebnf-parser@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" + integrity sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE= -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== +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +electron-to-chromium@^1.3.712: + version "1.3.719" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.719.tgz#87166fee347a46a2557f19aadb40a1d68241e61c" + integrity sha512-heM78GKSqrIzO9Oz0/y22nTBN7bqSP1Pla2SyU9DiSnQD+Ea9SyyN5RWWlgqsqeBLNDkSlE9J9EHFmdMPzxB/g== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enhanced-resolve@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" - integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +end-of-stream@^1.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" + +enhanced-resolve@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz#d9deae58f9d3773b6a111a5a46831da5be5c9ac0" + integrity sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" -es-abstract@^1.17.0-next.1, 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== +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" + is-arrayish "^0.2.1" es-module-lexer@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@1.3.x: + version "1.3.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" + integrity sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM= + dependencies: + esprima "~1.1.1" + estraverse "~1.5.0" + esutils "~1.0.0" + optionalDependencies: + source-map "~0.1.33" + +escodegen@^1.11.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 "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -1837,7 +2572,12 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -esprima@^4.0.0: +esprima@1.1.x, esprima@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" + integrity sha1-W28VR/TRAuZw4UDFCb5ncdautUk= + +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== @@ -1849,7 +2589,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +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== @@ -1859,16 +2599,65 @@ estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== -esutils@^2.0.0, esutils@^2.0.2: +estraverse@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= + +esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +esutils@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= + events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +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" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -1882,6 +2671,18 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +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" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -1897,6 +2698,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -1911,6 +2717,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -1921,6 +2737,18 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -1947,25 +2775,49 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-up@3.0.0, find-up@^3.0.0: +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.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" -flat@^4.1.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: - is-buffer "~2.0.3" + locate-path "^5.0.0" + path-exists "^4.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" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -1973,49 +2825,25 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - -fsevents@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@^2.1.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1: version "2.0.5" @@ -2027,44 +2855,52 @@ 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-intrinsic@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +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-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: - is-glob "^4.0.1" + assert-plus "^1.0.0" glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -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.1.3: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -2086,20 +2922,28 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -graceful-fs@^4.1.11: - 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.2, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -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" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" has-ansi@^2.0.0: version "2.0.0" @@ -2108,6 +2952,11 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2118,20 +2967,10 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-value@^0.3.1: version "0.3.1" @@ -2171,24 +3010,64 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -he@1.2.0: +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-signature@~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== + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.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== -iconv-lite@^0.4.4: +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" -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== +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: - minimatch "^3.0.4" + 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" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= inflight@^1.0.4: version "1.0.6" @@ -2198,16 +3077,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@2: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -2215,6 +3089,11 @@ invariant@^2.2.2: 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= + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -2229,34 +3108,29 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -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-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 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.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" -is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.1.tgz#4d1e21a4f437509d25ce55f8184350771421c96d" - integrity sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg== +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" @@ -2272,11 +3146,6 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -2295,6 +3164,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + 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" @@ -2307,36 +3181,20 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== is-number@^3.0.0: version "3.0.0" @@ -2357,26 +3215,34 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" +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-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= 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== -isarray@1.0.0, isarray@~1.0.0: +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: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -2398,6 +3264,407 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +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@^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@^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@^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@^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: + html-escaper "^2.0.0" + istanbul-lib-report "^3.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@^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@^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@^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@^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@^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@^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@^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@^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@^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@^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-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@^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@^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@^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.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^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@^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@^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" + read-pkg-up "^7.0.1" + realpath-native "^2.0.0" + resolve "^1.17.0" + slash "^3.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@^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@^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@^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-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@^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@^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@^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-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -2407,10 +3674,36 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.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.1.0: + 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" + +jison-lex@0.3.x: + version "0.3.4" + resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" + integrity sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U= + dependencies: + lex-parser "0.1.x" + nomnom "1.5.2" + +jison@^0.4.18: + version "0.4.18" + resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502" + integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w== + dependencies: + JSONSelect "0.4.0" + cjson "0.3.0" + ebnf-parser "0.1.10" + escodegen "1.3.x" + esprima "1.1.x" + jison-lex "0.3.x" + lex-parser "~0.1.3" + nomnom "1.5.2" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -2422,14 +3715,56 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -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== +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 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" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +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@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -2445,11 +3780,31 @@ json-parse-better-errors@^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== +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -2457,12 +3812,30 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.0: - 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.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" + +jsonlint@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a" + integrity sha1-iKpGvCiaesk7tGyuLVihh6m7SUo= + dependencies: + JSV ">= 4.0.x" + nomnom ">= 1.5.x" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -2488,18 +3861,51 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lex-parser@0.1.x, lex-parser@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" + integrity sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA= + +lex@^1.7.9: + version "1.7.9" + resolved "https://registry.yarnpkg.com/lex/-/lex-1.7.9.tgz#5d5636ccef574348362938b79a47f0eed8ed0d43" + integrity sha1-XVY2zO9XQ0g2KTi3mkfw7tjtDUM= + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== +loader-utils@^1.4.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 "^2.0.0" + emojis-list "^3.0.0" json5 "^1.0.1" locate-path@^3.0.0: @@ -2510,22 +3916,34 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash@^4.17.13, lodash@^4.17.4: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@^4.17.15: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +lodash@^4.17.19, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== +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: - chalk "^2.4.2" + "@sinonjs/commons" "^1.7.0" loose-envify@^1.0.0: version "1.4.0" @@ -2542,6 +3960,20 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.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" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2559,7 +3991,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -micromatch@^3.1.10, micromatch@^3.1.4: +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== @@ -2578,45 +4010,43 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + mime-db@1.47.0: version "1.47.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== -mime-types@^2.1.27: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19: version "2.1.30" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== dependencies: mime-db "1.47.0" -minimatch@3.0.4, minimatch@^3.0.4: +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== + +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -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" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -2625,63 +4055,23 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.5, mkdirp@^0.5.0, mkdirp@^0.5.1: +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@^7.1.2: - version "7.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.2.0.tgz#01cc227b00d875ab1eed03a75106689cfed5a604" - integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - 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 "3.0.0" - minimatch "3.0.4" - mkdirp "0.5.5" - ms "2.1.1" - node-environment-flags "1.0.6" - 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" - ms@2.0.0: version "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.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -2699,68 +4089,72 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-environment-flags@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" - integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= 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" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.38: - version "1.1.39" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.39.tgz#c1011f30343aff5b633153b10ff691d278d08e8d" - integrity sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA== +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.70: +node-releases@^1.1.71: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= +nomnom@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" + integrity sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8= + dependencies: + colors "0.5.x" + underscore "1.1.x" + +"nomnom@>= 1.5.x": + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= dependencies: - abbrev "1" - osenv "^0.1.4" + chalk "~0.4.0" + underscore "~1.6.0" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" normalize-path@^2.1.1: version "2.1.1" @@ -2769,43 +4163,34 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-packlist@^1.1.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" + path-key "^2.0.0" -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" + path-key "^3.0.0" -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" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +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== -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-copy@^0.1.0: version "0.1.0" @@ -2816,12 +4201,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -2833,23 +4213,15 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.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== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== +object.assign@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + has-symbols "^1.0.1" + object-keys "^1.1.1" object.pick@^1.3.0: version "1.3.0" @@ -2858,35 +4230,61 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0: +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" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + 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-tmpdir@^1.0.0: +os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== +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@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -2904,57 +4302,94 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +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" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-extra@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/path-extra/-/path-extra-1.0.3.tgz#7c112189a6e50d595790e7ad2037e44e410c1166" integrity sha1-fBEhiablDVlXkOetIDfkTkEMEWY= -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-key@^2.0.0, path-key@^2.0.1: + version "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" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -pathval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== -picomatch@^2.0.4: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +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.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" + integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.0: +pirates@^4.0.0, pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== @@ -2968,26 +4403,74 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -private@^0.1.6: +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +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.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== -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +prompts@^2.0.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" -punycode@^2.1.0: +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +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== +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== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -2995,68 +4478,63 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" +react-is@^16.12.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -readable-stream@^2.0.2, readable-stream@^2.0.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== +read-pkg-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: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" -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== +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" -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@^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== -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== +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== + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-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-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.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" @@ -3066,27 +4544,27 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -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.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== 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.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== dependencies: jsesc "~0.5.0" @@ -3096,15 +4574,64 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3122,16 +4649,34 @@ require-resolve@0.0.2: dependencies: x-path "^0.0.2" +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@^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" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.3.2: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: + is-core-module "^2.2.0" path-parse "^1.0.6" ret@~0.1.10: @@ -3139,24 +4684,24 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@^2.6.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== +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" -safe-buffer@^5.1.0: +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2: 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.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -3168,15 +4713,41 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", 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== -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +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" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" schema-utils@^3.0.0: version "3.0.0" @@ -3187,12 +4758,17 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.3.0: +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.1, semver@^6.1.2, 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== @@ -3204,7 +4780,7 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -3219,10 +4795,61 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + 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== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== snapdragon-node@^2.0.1: version "2.1.1" @@ -3260,25 +4887,24 @@ source-list-map@^2.0.1: integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.16: - 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== +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" + source-map "^0.5.6" -source-map-support@~0.5.19: +source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.19: 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== @@ -3287,25 +4913,58 @@ source-map-support@~0.5.19: source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: 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.0, source-map@^0.6.1, 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.2: +source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@~0.1.33: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + +spdx-correct@^3.0.0: + 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.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.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" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -3318,6 +4977,28 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stack-utils@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -3326,87 +5007,68 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= -string-width@^3.0.0, string-width@^3.1.0: +string-length@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" + astral-regex "^1.0.0" + strip-ansi "^5.2.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== dependencies: - safe-buffer "~5.1.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: +strip-ansi@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" -strip-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= - -supports-color@6.0.0: +strip-ansi@^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== + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: - has-flag "^3.0.0" + ansi-regex "^5.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= + +strip-bom@^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== supports-color@^2.0.0: version "2.0.0" @@ -3420,30 +5082,38 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + tapable@^2.1.1, tapable@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== -tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== +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: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" terser-webpack-plugin@^5.1.1: version "5.1.1" @@ -3466,6 +5136,25 @@ terser@^5.5.1: source-map "~0.7.2" source-map-support "~0.5.19" +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" + +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== + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -3508,16 +5197,91 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + 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" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + 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== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typedarray-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" + +underscore@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" + integrity sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA= + +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -3531,15 +5295,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== union-value@^1.0.0: version "1.0.1" @@ -3559,11 +5323,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -3581,10 +5340,59 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@~1.0.1: +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-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: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + 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: + 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" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" watchpack@^2.0.0: version "2.1.1" @@ -3594,6 +5402,11 @@ watchpack@^2.0.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +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== + webpack-sources@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" @@ -3603,19 +5416,19 @@ webpack-sources@^2.1.1: source-map "^0.6.1" webpack@^5.30.0: - version "5.30.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.30.0.tgz#07d87c182a060e0c2491062f3dc0edc85a29d884" - integrity sha512-Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA== + version "5.35.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.35.0.tgz#4db23c2b96c4e53a90c5732d7cdb301a84a33576" + integrity sha512-au3gu55yYF/h6NXFr0KZPZAYxS6Nlc595BzYPke8n0CSff5WXcoixtjh5LC/8mXunkRKxhymhXmBY0+kEbR6jg== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.46" + "@types/estree" "^0.0.47" "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/wasm-edit" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" acorn "^8.0.4" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.7.0" + enhanced-resolve "^5.8.0" es-module-lexer "^0.4.0" eslint-scope "^5.1.1" events "^3.2.0" @@ -3631,39 +5444,80 @@ webpack@^5.30.0: watchpack "^2.0.0" webpack-sources "^2.1.1" +whatwg-encoding@^1.0.1, 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.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== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-module@^2.0.0: version "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.9, 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: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== +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: - string-width "^1.0.2 || 2" + isexe "^2.0.0" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +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 "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +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" + +ws@^7.0.0: + version "7.4.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" + integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== + x-path@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/x-path/-/x-path-0.0.2.tgz#294d076bb97a7706cc070bbb2a6fd8c54df67b12" @@ -3671,48 +5525,45 @@ x-path@^0.0.2: dependencies: path-extra "^1.0.2" -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -yallist@^3.0.0, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +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== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -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== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -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.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== +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 "^5.0.0" - find-up "^3.0.0" + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" get-caller-file "^2.0.1" require-directory "^2.1.1" require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^3.0.0" + string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.2" + yargs-parser "^18.1.2" yocto-queue@^0.1.0: version "0.1.0" diff --git a/yarn.lock b/yarn.lock index 2dbead2f..de74f749 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,6 +31,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1" integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== +"@babel/compat-data@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" + integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== + "@babel/core@>=7.9.0", "@babel/core@^7.1.2": version "7.13.14" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.14.tgz#8e46ebbaca460a63497c797e574038ab04ae6d06" @@ -52,6 +57,27 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a" + integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.16" + "@babel/helper-compilation-targets" "^7.13.16" + "@babel/helper-module-transforms" "^7.13.14" + "@babel/helpers" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.16" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + "@babel/eslint-parser@^7.13.14": version "7.13.14" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.13.14.tgz#f80fd23bdd839537221914cb5d17720a5ea6ba3a" @@ -68,6 +94,15 @@ dependencies: eslint-rule-composer "^0.3.0" +"@babel/generator@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" + integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== + dependencies: + "@babel/types" "^7.13.16" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/generator@^7.13.9": version "7.13.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" @@ -102,6 +137,16 @@ browserslist "^4.14.5" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" + integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== + dependencies: + "@babel/compat-data" "^7.13.15" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.13.0": version "7.13.11" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" @@ -275,6 +320,15 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" +"@babel/helpers@^7.13.16": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6" + integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.17" + "@babel/types" "^7.13.17" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.13.10" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" @@ -284,6 +338,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" + integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== + "@babel/parser@^7.12.13", "@babel/parser@^7.13.13": version "7.13.13" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df" @@ -472,7 +531,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13": +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + 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: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -535,7 +601,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-import-meta@^7.0.0": +"@babel/plugin-syntax-import-meta@^7.0.0", "@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== @@ -556,7 +622,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@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== @@ -570,7 +636,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4": +"@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== @@ -1039,7 +1105,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13": +"@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== @@ -1048,6 +1114,20 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3" + integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.16" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.16" + "@babel/types" "^7.13.17" + debug "^4.1.0" + globals "^11.1.0" + "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13": version "7.13.13" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.13.tgz#39aa9c21aab69f74d948a486dd28a2dbdbf5114d" @@ -1062,6 +1142,14 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/types@^7.0.0", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" + integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + to-fast-properties "^2.0.0" + "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.13.14", "@babel/types@^7.4.4": version "7.13.14" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" @@ -1071,6 +1159,11 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@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== + "@bugsnag/browser@*": version "7.9.0" resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-7.9.0.tgz#274aca640c1b9ba86b80af21503aef71b0a33e75" @@ -1129,6 +1222,14 @@ resolved "https://registry.yarnpkg.com/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz#22abdcd83e008c369902976730c34c150148a758" integrity sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA== +"@cnakazawa/watch@^1.0.3": + 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" + "@develar/schema-utils@~2.6.5": version "2.6.5" resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" @@ -1189,6 +1290,190 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@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.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@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@^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@^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@^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@^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@^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@^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@^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@^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@^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" + "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" @@ -1360,6 +1645,13 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + "@stylelint/postcss-css-in-js@^0.37.2": version "0.37.2" resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" @@ -1375,6 +1667,18 @@ remark "^13.0.0" unist-util-find-all-after "^3.0.2" +"@supabase/doctest-js@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@supabase/doctest-js/-/doctest-js-0.1.0.tgz#a3e9e3d025d4234e4cd0c952324e6d739d392164" + integrity sha512-7PR5UhFbqrNVidbzryi7+/U/N8NV+LahuGQApY5kJ5Tuol3EquTkJcO/dN3t/9NDmPjvXq6psfZnT1+I9LW1kQ== + dependencies: + babel-core "^6.26.3" + babel-register "^6.26.0" + chai "^4.1.2" + jest "^25.1.0" + jison "^0.4.18" + lex "^1.7.9" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -1382,6 +1686,39 @@ dependencies: defer-to-connect "^1.0.1" +"@types/babel__core@^7.1.7": + version "7.1.14" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" + integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" + integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== + dependencies: + "@babel/types" "^7.3.0" + "@types/debug@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" @@ -1428,6 +1765,13 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + "@types/hast@^2.0.0": version "2.3.1" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" @@ -1448,6 +1792,26 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== +"@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 "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.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" @@ -1503,6 +1867,11 @@ "@types/node" "*" xmlbuilder ">=11.0.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" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" @@ -1539,6 +1908,11 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" @@ -1554,7 +1928,7 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== -"@types/yargs@^15.0.13": +"@types/yargs@^15.0.0", "@types/yargs@^15.0.13": version "15.0.13" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== @@ -1709,6 +2083,21 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +JSONSelect@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" + integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= + +"JSV@>= 4.0.x": + version "4.0.2" + resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" + integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= + +abab@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1727,17 +2116,35 @@ accessibility-developer-tools@^2.11.0: resolved "https://registry.yarnpkg.com/accessibility-developer-tools/-/accessibility-developer-tools-2.12.0.tgz#3da0cce9d6ec6373964b84f35db7cfc3df7ab514" integrity sha1-PaDM6dbsY3OWS4TzXbfPw996tRQ= +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== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + acorn-walk@^8.0.0: version "8.0.2" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz#d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3" integrity sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A== -acorn@^7.4.0: +acorn@^6.0.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0, acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== @@ -1777,6 +2184,11 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -1799,6 +2211,13 @@ ansi-escapes@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" integrity sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs= +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -1843,6 +2262,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1851,6 +2275,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + app-builder-bin@3.5.12: version "3.5.12" resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.12.tgz#bbe174972cc1f481f73d6d92ad47a8b4c7eb4530" @@ -1933,6 +2365,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + array-find@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" @@ -2047,6 +2484,11 @@ assert@^1.1.1: 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" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2062,6 +2504,11 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -2171,6 +2618,67 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-core@^6.26.0, babel-core@^6.26.3: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +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-loader@^8.0.4: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -2207,6 +2715,26 @@ babel-plugin-inline-import@^3.0.0: dependencies: require-resolve "0.0.2" +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@^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-plugin-polyfill-corejs2@^0.1.4: version "0.1.10" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1" @@ -2249,6 +2777,44 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" +babel-preset-current-node-syntax@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" + integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== + 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@^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" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -2257,7 +2823,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.26.0: +babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= @@ -2470,6 +3036,18 @@ brorand@^1.0.1, brorand@^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" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + 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" @@ -2542,6 +3120,13 @@ browserslist@^4.12.0, browserslist@^4.12.2, browserslist@^4.14.5, browserslist@^ escalade "^3.1.1" node-releases "^1.1.70" +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -2718,11 +3303,30 @@ caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001166, caniuse-lite@^1.0.300011 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz#364d47d35a3007e528f69adb6fecb07c2bb2cc50" integrity sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw== +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +chai@^4.1.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" + integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.1" + type-detect "^4.0.5" + chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -2743,6 +3347,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -2751,6 +3363,15 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.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" @@ -2766,6 +3387,11 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +check-error@^1.0.2: + version "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" @@ -2815,6 +3441,13 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjson@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" + integrity sha1-5kObkHA9MS/24iJAl76pLOPQKhQ= + dependencies: + jsonlint "1.6.0" + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2875,6 +3508,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" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2917,11 +3559,21 @@ clsx@^1.0.4: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +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" @@ -2959,6 +3611,11 @@ colorette@^1.2.1, colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q= + colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -3147,7 +3804,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.5.1, 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== @@ -3182,7 +3839,7 @@ core-js-pure@^3.0.0: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.10.0.tgz#dab9d6b141779b622b40567e7a536d2276646c15" integrity sha512-CC582enhrFZStO4F8lGI7QL3SYx7/AIRc+IdSi3btrQGrVsTawo5K/crmKbRrQ+MOMhNX4v+PATn0k2NN6wI7A== -core-js@^2.4.0: +core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== @@ -3264,7 +3921,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3358,6 +4015,23 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +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== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +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.5.2: version "2.6.16" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.16.tgz#544d69f547013b85a40d15bff75db38f34fe9c39" @@ -3380,6 +4054,15 @@ dashdash@^1.12.0: dependencies: assert-plus "^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== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + debounce-fn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" @@ -3445,6 +4128,13 @@ deep-diff@^0.3.5: resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84" integrity sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ= +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -3462,11 +4152,16 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@^0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "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== + default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -3562,11 +4257,23 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +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== + detect-node@^2.0.4: version "2.0.5" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" @@ -3580,6 +4287,11 @@ devtron@shnizzedy/devtron#security_updates: highlight.js "^10.7.2" humanize-plus "^1.8.1" +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== + diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -3720,6 +4432,13 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -3770,6 +4489,11 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +ebnf-parser@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" + integrity sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE= + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -4121,11 +4845,39 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@1.3.x: + version "1.3.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" + integrity sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM= + dependencies: + esprima "~1.1.1" + estraverse "~1.5.0" + esutils "~1.0.0" + optionalDependencies: + source-map "~0.1.33" + +escodegen@^1.11.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 "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-config-airbnb-base@^14.2.1: version "14.2.1" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" @@ -4358,7 +5110,12 @@ espree@^7.3.0, espree@^7.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" -esprima@^4.0.0: +esprima@1.1.x, esprima@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" + integrity sha1-W28VR/TRAuZw4UDFCb5ncdautUk= + +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== @@ -4377,7 +5134,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +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== @@ -4387,11 +5144,21 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estraverse@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +esutils@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= + etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" @@ -4427,6 +5194,11 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -4440,6 +5212,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" + execa@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" @@ -4462,6 +5250,11 @@ execall@^2.0.0: dependencies: clone-regexp "^2.1.0" +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -4475,6 +5268,18 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +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" + express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -4587,7 +5392,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -4618,6 +5423,13 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + 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" @@ -4830,6 +5642,11 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" +fsevents@^2.1.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + ftp@^0.3.10: version "0.3.10" resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" @@ -4872,6 +5689,11 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -4881,6 +5703,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +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-stdin@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" @@ -4893,7 +5720,7 @@ get-stream@^4.0.0, get-stream@^4.1.0: dependencies: pump "^3.0.0" -get-stream@^5.1.0: +get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -4942,7 +5769,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.3, 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== @@ -5100,6 +5927,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -5142,6 +5974,11 @@ has-bigints@^1.0.1: resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -5276,6 +6113,14 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react- dependencies: react-is "^16.7.0" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + hosted-git-info@^2.1.4: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" @@ -5305,11 +6150,23 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +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-minifier-terser@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" @@ -5436,6 +6293,11 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +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== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -5785,6 +6647,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + 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" @@ -5802,6 +6669,11 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -5819,6 +6691,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -5979,6 +6856,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" + is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -6021,6 +6905,47 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +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@^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@^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@^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@^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: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + istextorbinary@^5.12.0: version "5.12.0" resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-5.12.0.tgz#2f84777838668fdf524c305a2363d6057aaeec84" @@ -6040,6 +6965,361 @@ jake@^10.6.1: filelist "^1.0.1" minimatch "^3.0.4" +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@^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@^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@^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@^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@^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@^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@^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@^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@^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@^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-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@^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@^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@^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.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^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@^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@^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" + read-pkg-up "^7.0.1" + realpath-native "^2.0.0" + resolve "^1.17.0" + slash "^3.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@^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@^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@^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-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@^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@^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@^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-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -6049,6 +7329,37 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" +jest@^25.1.0: + 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" + +jison-lex@0.3.x: + version "0.3.4" + resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" + integrity sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U= + dependencies: + lex-parser "0.1.x" + nomnom "1.5.2" + +jison@^0.4.18: + version "0.4.18" + resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502" + integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w== + dependencies: + JSONSelect "0.4.0" + cjson "0.3.0" + ebnf-parser "0.1.10" + escodegen "1.3.x" + esprima "1.1.x" + jison-lex "0.3.x" + lex-parser "~0.1.3" + nomnom "1.5.2" + jmespath@0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" @@ -6084,6 +7395,43 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +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@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -6144,6 +7492,11 @@ json3@^3.3.3: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -6174,6 +7527,14 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonlint@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a" + integrity sha1-iKpGvCiaesk7tGyuLVihh6m7SUo= + dependencies: + JSV ">= 4.0.x" + nomnom ">= 1.5.x" + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -6309,6 +7670,11 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + known-css-properties@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.21.0.tgz#15fbd0bbb83447f3ce09d8af247ed47c68ede80d" @@ -6338,6 +7704,11 @@ lazy-val@^1.0.4: resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -6346,6 +7717,24 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lex-parser@0.1.x, lex-parser@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" + integrity sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA= + +lex@^1.7.9: + version "1.7.9" + resolved "https://registry.yarnpkg.com/lex/-/lex-1.7.9.tgz#5d5636ccef574348362938b79a47f0eed8ed0d43" + integrity sha1-XVY2zO9XQ0g2KTi3mkfw7tjtDUM= + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -6452,6 +7841,11 @@ lodash.memoize@4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -6482,6 +7876,13 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== +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" + longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" @@ -6549,6 +7950,13 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -6814,7 +8222,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -6971,6 +8379,11 @@ node-gyp@^6.0.1: tar "^4.4.12" which "^1.3.1" +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + "node-libs-browser@^1.0.0 || ^2.0.0": version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" @@ -7005,6 +8418,17 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= +node-notifier@^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.70: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" @@ -7020,6 +8444,22 @@ node-ssh@^4.2.0: shell-escape "^0.2.0" ssh2 "^0.5.0" +nomnom@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" + integrity sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8= + dependencies: + colors "0.5.x" + underscore "1.1.x" + +"nomnom@>= 1.5.x": + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" + nopt@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -7105,7 +8545,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.1: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -7139,6 +8579,11 @@ 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.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" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -7285,6 +8730,18 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -7326,7 +8783,7 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-tmpdir@^1.0.0: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -7344,11 +8801,21 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + 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" @@ -7491,6 +8958,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -7534,7 +9006,7 @@ path-extra@^1.0.2: resolved "https://registry.yarnpkg.com/path-extra/-/path-extra-1.0.3.tgz#7c112189a6e50d595790e7ad2037e44e410c1166" integrity sha1-fBEhiablDVlXkOetIDfkTkEMEWY= -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -7590,6 +9062,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + pbkdf2@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" @@ -7611,6 +9088,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: + version "2.2.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" + integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== + picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" @@ -7648,7 +9130,7 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pirates@^4.0.0: +pirates@^4.0.0, pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== @@ -7699,6 +9181,11 @@ plur@^2.1.2: dependencies: irregular-plurals "^1.0.0" +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + popper.js@1.16.1-lts: version "1.16.1-lts" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" @@ -7857,6 +9344,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -7870,6 +9362,16 @@ pretty-error@^2.1.1: lodash "^4.17.20" renderkid "^2.0.4" +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" + prismjs@^1.22.0, prismjs@~1.23.0: version "1.23.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" @@ -7877,6 +9379,11 @@ prismjs@^1.22.0, prismjs@~1.23.0: optionalDependencies: clipboard "^2.0.0" +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== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -7892,6 +9399,14 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +prompts@^2.0.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -8076,7 +9591,7 @@ react-ga@^3.3.0: resolved "https://registry.yarnpkg.com/react-ga/-/react-ga-3.3.0.tgz#c91f407198adcb3b49e2bc5c12b3fe460039b3ca" integrity sha512-o8RScHj6Lb8cwy3GMrVH6NJvL+y0zpJvKtc0+wmH7Bt23rszJmnqEQxRbyrqUzk9DTJIHoP42bfO5rswC9SWBQ== -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -8266,6 +9781,11 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +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== + rechoir@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" @@ -8462,6 +9982,29 @@ repeat-string@^1.0.0, repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + request@^2.87.0, request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" @@ -8554,6 +10097,11 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.4.0, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -8607,7 +10155,7 @@ rimraf@^2.5.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" -rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -8634,6 +10182,11 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" +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-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -8670,6 +10223,21 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + sanitize-filename@^1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" @@ -8687,6 +10255,13 @@ sax@>=0.6.0, 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" + sb-promisify@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/sb-promisify/-/sb-promisify-1.3.0.tgz#3af6f1fa9ffc833f14de86916eefc1f559b1b051" @@ -8935,6 +10510,11 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -8970,6 +10550,16 @@ sirv@^1.0.7: mime "^2.3.1" totalist "^1.0.0" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -9063,7 +10653,14 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.3, source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.3, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: 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== @@ -9076,7 +10673,7 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -9086,11 +10683,18 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, 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.2: +source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@~0.1.33: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + space-separated-tokens@^1.0.0: version "1.1.5" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" @@ -9221,6 +10825,13 @@ stack-generator@^2.0.3: dependencies: stackframe "^1.1.1" +stack-utils@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" + stackframe@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" @@ -9249,6 +10860,11 @@ stdin@^0.0.1: resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e" integrity sha1-0wQZgarsPf28d6GzjWNy449ftx4= +stealthy-require@^1.1.1: + version "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" @@ -9273,6 +10889,14 @@ streamsearch@~0.1.2: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= +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-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -9393,11 +11017,21 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= + strip-bom@^3.0.0: version "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" @@ -9576,6 +11210,14 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -9586,6 +11228,11 @@ symbol-observable@1.2.0, symbol-observable@^1.2.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + table@^6.0.4, table@^6.0.7: version "6.0.9" resolved "https://registry.yarnpkg.com/table/-/table-6.0.9.tgz#790a12bf1e09b87b30e60419bafd6a1fd85536fb" @@ -9632,6 +11279,14 @@ temp-file@^3.3.7: async-exit-hook "^2.0.1" fs-extra "^8.1.0" +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" + terser-webpack-plugin@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" @@ -9662,6 +11317,15 @@ terser@^5.5.1: source-map "~0.7.2" source-map-support "~0.5.19" +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-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -9672,6 +11336,11 @@ textextensions@^5.11.0: resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-5.12.0.tgz#b908120b5c1bd4bb9eba41423d75b176011ab68a" integrity sha512-IYogUDaP65IXboCiPPC0jTLLBzYlhhw2Y4b0a2trPgbHNGGGEfuHE6tds+yDcCf4mpNDaGISFzwSSezcXt+d6w== +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== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -9699,6 +11368,11 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -9761,7 +11435,7 @@ totalist@^1.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -tough-cookie@~2.5.0: +tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -9769,11 +11443,32 @@ 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" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + 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-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + trough@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" @@ -9835,6 +11530,18 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +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== + type-fest@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" @@ -9855,6 +11562,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -9914,6 +11626,16 @@ unbox-primitive@^1.0.0: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +underscore@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" + integrity sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA= + +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -10144,6 +11866,15 @@ v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +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: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -10206,6 +11937,29 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +w3c-hr-time@^1.0.1: + version "1.0.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: + 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" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + watchpack@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" @@ -10228,6 +11982,11 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +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== + webpack-bundle-analyzer@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.0.tgz#74013106e7e2b07cbd64f3a5ae847f7e814802c7" @@ -10388,11 +12147,32 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-encoding@^1.0.1, 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-fetch@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== +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== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -10416,7 +12196,7 @@ which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" -which@^2.0.1: +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== @@ -10442,7 +12222,7 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -word-wrap@^1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -10456,6 +12236,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" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -10487,6 +12276,11 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" +ws@^7.0.0: + version "7.4.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" + integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== + ws@^7.3.1: version "7.4.4" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" @@ -10504,6 +12298,11 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + xml2js@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" @@ -10522,6 +12321,11 @@ xmlbuilder@^9.0.7, xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= +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== + xmldom@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" @@ -10583,6 +12387,14 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.7" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" @@ -10621,6 +12433,23 @@ yargs@^14.2.0: y18n "^4.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" + yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From 339760378c55ae55eec0b78c356c62dae013459a Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Mon, 24 May 2021 17:24:29 -0400 Subject: [PATCH 16/66] :arrow_up: Upgrade dependencies :lock: Ref https://github.com/advisories/GHSA-hwj9-h5mp-3pm3 --- c-pac/yarn.lock | 3923 +++++------------------------------------------ package.json | 2 +- yarn.lock | 3294 +++++++++------------------------------ 3 files changed, 1081 insertions(+), 6138 deletions(-) diff --git a/c-pac/yarn.lock b/c-pac/yarn.lock index 68dfb4c2..257a8024 100644 --- a/c-pac/yarn.lock +++ b/c-pac/yarn.lock @@ -2,32 +2,32 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": +"@babel/code-frame@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" - integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" + integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== -"@babel/core@^7.1.0", "@babel/core@^7.1.2", "@babel/core@^7.7.5": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a" - integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q== +"@babel/core@^7.1.2": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" + integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.16" + "@babel/generator" "^7.14.3" "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.13.14" - "@babel/helpers" "^7.13.16" - "@babel/parser" "^7.13.16" + "@babel/helper-module-transforms" "^7.14.2" + "@babel/helpers" "^7.14.0" + "@babel/parser" "^7.14.3" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -35,12 +35,12 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" - integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== +"@babel/generator@^7.14.2", "@babel/generator@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== dependencies: - "@babel/types" "^7.13.16" + "@babel/types" "^7.14.2" jsesc "^2.5.1" source-map "^0.5.0" @@ -59,7 +59,7 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== @@ -69,29 +69,30 @@ browserslist "^4.14.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.13.11": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" - integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.2", "@babel/helper-create-class-features-plugin@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.3.tgz#832111bcf4f57ca57a4c5b1a000fc125abc6554a" + integrity sha512-BnEfi5+6J2Lte9LeiL6TxLWdIlEv9Woacc1qXzXBgbikcOzMRM2Oya5XGg/f/ngotv1ej2A/b+3iJH8wbS1+lQ== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-replace-supers" "^7.14.3" "@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz#149aa6d78c016e318c43e2409a0ae9c136a86688" + integrity sha512-JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" - integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== +"@babel/helper-define-polyfill-provider@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.1.tgz#e6f5f4a6edc3722152c21359190de67fc6cf664d" + integrity sha512-x3AUTVZNPunaw1opRTa5OwVA5N0YxGlIad9xQ5QflK1uIS7PnAGGU5O2Dj/G183fR//N8AzTq+Q8+oiu9m0VFg== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -109,14 +110,14 @@ dependencies: "@babel/types" "^7.13.0" -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== +"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== dependencies: "@babel/helper-get-function-arity" "^7.12.13" "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/types" "^7.14.2" "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" @@ -133,7 +134,7 @@ "@babel/traverse" "^7.13.15" "@babel/types" "^7.13.16" -"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": +"@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== @@ -147,19 +148,19 @@ dependencies: "@babel/types" "^7.13.12" -"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" - integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== +"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" + integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== dependencies: "@babel/helper-module-imports" "^7.13.12" "@babel/helper-replace-supers" "^7.13.12" "@babel/helper-simple-access" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.13" - "@babel/types" "^7.13.14" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" @@ -182,17 +183,17 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" + integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== dependencies: "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" -"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": +"@babel/helper-simple-access@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== @@ -213,10 +214,10 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== "@babel/helper-validator-option@^7.12.17": version "7.12.17" @@ -233,28 +234,28 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helpers@^7.13.16": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6" - integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg== +"@babel/helpers@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== dependencies: "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.17" - "@babel/types" "^7.13.17" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" "@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" - integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== +"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" + integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" @@ -265,10 +266,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/plugin-proposal-async-generator-functions@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b" - integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA== +"@babel/plugin-proposal-async-generator-functions@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" + integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-remap-async-to-generator" "^7.13.0" @@ -282,27 +283,36 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-class-static-block@^7.13.11": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" + integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.3" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-class-static-block" "^7.12.13" + "@babel/plugin-proposal-decorators@^7.1.2": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.13.15.tgz#e91ccfef2dc24dd5bd5dcc9fc9e2557c684ecfb8" - integrity sha512-ibAMAqUm97yzi+LPgdr5Nqb9CMkeieGHvwPg1ywSGjZrZHQEGqE01HmOio8kxRpA/+VtOHouIVy2FMpBbtltjA== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.2.tgz#e68c3c5e4a6a08834456568256fc3e71b93590cf" + integrity sha512-LauAqDd/VjQDtae58QgBcEOE42NNP+jB2OE+XeC3KBI/E+BhhRjtr5viCIrj1hmu1YvrguLipIPRJZmS5yUcFw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.11" + "@babel/helper-create-class-features-plugin" "^7.14.2" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-decorators" "^7.12.13" "@babel/plugin-proposal-do-expressions@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.12.13.tgz#d48f2f96ea352173b886d4b5257bb1ed5ac4c52e" - integrity sha512-NXmNoFKXQ+BXWU474n+cT4C5I/OI3rMiZCKJ/PtA/7AGMjGreXrt+YfoGmgm7Wimz/qumrycHNvg/fr4q2uv0w== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.14.0.tgz#8df85ab8d16437cd97ad1f6905d71f27b5f59721" + integrity sha512-a/H0V6MvPbj4iki1XQstRQhHGuUF27tyqrmLmzDTYhYdasz6rdcyf8dhGBZbMnuxKsYV5pPqUkc+xdzDUweRQw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-do-expressions" "^7.12.13" -"@babel/plugin-proposal-dynamic-import@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" - integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== +"@babel/plugin-proposal-dynamic-import@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" + integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" @@ -315,12 +325,12 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-export-default-from" "^7.12.13" -"@babel/plugin-proposal-export-namespace-from@^7.0.0", "@babel/plugin-proposal-export-namespace-from@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== +"@babel/plugin-proposal-export-namespace-from@^7.0.0", "@babel/plugin-proposal-export-namespace-from@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" + integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-function-bind@^7.0.0": @@ -340,61 +350,61 @@ "@babel/helper-wrap-function" "^7.12.13" "@babel/plugin-syntax-function-sent" "^7.12.13" -"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" - integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== +"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" + integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.0.0", "@babel/plugin-proposal-logical-assignment-operators@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" - integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== +"@babel/plugin-proposal-logical-assignment-operators@^7.0.0", "@babel/plugin-proposal-logical-assignment-operators@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" + integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" - integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" + integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== +"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" + integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" - integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== +"@babel/plugin-proposal-object-rest-spread@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc" + integrity sha512-hBIQFxwZi8GIp934+nj5uV31mqclC1aYDhctDu5khTi9PCCUOczyy0b34W0oE9U/eJXiqQaKyVsmjeagOaSlbw== dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" + "@babel/compat-data" "^7.14.0" + "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-parameters" "^7.14.2" -"@babel/plugin-proposal-optional-catch-binding@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" - integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== +"@babel/plugin-proposal-optional-catch-binding@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" + integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" - integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" + integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" @@ -416,6 +426,16 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" + integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.0" + "@babel/plugin-proposal-throw-expressions@^7.0.0": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.12.13.tgz#48a6e4a5988041d16b0a2f1568a3b518f8b6c1d4" @@ -439,20 +459,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - 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: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-class-static-block@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" + integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-decorators@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" @@ -509,7 +529,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-import-meta@^7.0.0", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.0.0": 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== @@ -530,7 +550,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -544,7 +564,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -579,6 +599,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" + integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-throw-expressions@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.12.13.tgz#bb02bfbaf57d71ab69280ebf6a53aa45ad4c3f1a" @@ -616,23 +643,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.12.13": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz#a9c0f10794855c63b1d629914c7dcfeddd185892" - integrity sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg== +"@babel/plugin-transform-block-scoping@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.2.tgz#761cb12ab5a88d640ad4af4aa81f820e6b5fdf5c" + integrity sha512-neZZcP19NugZZqNwMTH+KoBjx5WyvESPSIOQb4JHpfd+zPfqcH65RMu5xJju5+6q/Y2VzYrleQTr+b6METyyxg== dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-classes@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" - integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== +"@babel/plugin-transform-classes@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.2.tgz#3f1196c5709f064c252ad056207d87b7aeb2d03d" + integrity sha512-7oafAVcucHquA/VZCsXv/gmuiHeYd64UJyyTYU+MPfNu0KeNlxw06IeENBO8bJjXVbolu+j1MM5aKQtH1OMCNg== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" + "@babel/helper-function-name" "^7.14.2" "@babel/helper-optimise-call-expression" "^7.12.13" "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" @@ -643,7 +670,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.13.0": +"@babel/plugin-transform-destructuring@^7.13.17": version "7.13.17" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== @@ -710,23 +737,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-amd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" - integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== +"@babel/plugin-transform-modules-amd@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" + integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.2" "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" - integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== +"@babel/plugin-transform-modules-commonjs@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" + integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-simple-access" "^7.13.12" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.13.8": @@ -740,12 +767,12 @@ "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" - integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== +"@babel/plugin-transform-modules-umd@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" + integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": @@ -770,10 +797,10 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-parameters@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" - integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== +"@babel/plugin-transform-parameters@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" + integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A== dependencies: "@babel/helper-plugin-utils" "^7.13.0" @@ -785,11 +812,11 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-display-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" - integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz#2e854544d42ab3bb9c21f84e153d62e800fbd593" + integrity sha512-zCubvP+jjahpnFJvPaHPiGVfuVUjXHhFvJKQdNnsmSsiU9kR/rCZ41jHc++tERD2zV+p7Hr6is+t5b6iWTCqSw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-react-jsx-development@^7.12.17": version "7.12.17" @@ -799,22 +826,22 @@ "@babel/plugin-transform-react-jsx" "^7.12.17" "@babel/plugin-transform-react-jsx-source@^7.5.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" - integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.2.tgz#2620b57e7de775c0687f65d464026d15812941da" + integrity sha512-OMorspVyjxghAjzgeAWc6O7W7vHbJhV69NeTGdl9Mxgz6PaweAuo7ffB9T5A1OQ9dGcw0As4SYMUhyNC4u7mVg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" - integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz#0e26597805cf0862da735f264550933c38babb66" + integrity sha512-uuxuoUNVhdgYzERiHHFkE4dWoJx+UFVyuAl0aqN8P2/AKFHwqgUC5w2+4/PjpKXJsFgBlYAFXlUmDQ3k3DUkXw== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" "@babel/helper-module-imports" "^7.13.12" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.13.12" + "@babel/types" "^7.14.2" "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" @@ -890,30 +917,33 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@^7.1.0": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f" - integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.2.tgz#e80612965da73579c84ad2f963c2359c71524ed5" + integrity sha512-7dD7lVT8GMrE73v4lvDEb85cgcQhdES91BSD7jS/xjC6QY8PnRhux35ac+GCpbiRhp8crexBvZZqnaL6VrY8TQ== dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-compilation-targets" "^7.13.13" + "@babel/compat-data" "^7.14.0" + "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-validator-option" "^7.12.17" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.13.15" + "@babel/plugin-proposal-async-generator-functions" "^7.14.2" "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-dynamic-import" "^7.13.8" - "@babel/plugin-proposal-export-namespace-from" "^7.12.13" - "@babel/plugin-proposal-json-strings" "^7.13.8" - "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-numeric-separator" "^7.12.13" - "@babel/plugin-proposal-object-rest-spread" "^7.13.8" - "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-class-static-block" "^7.13.11" + "@babel/plugin-proposal-dynamic-import" "^7.14.2" + "@babel/plugin-proposal-export-namespace-from" "^7.14.2" + "@babel/plugin-proposal-json-strings" "^7.14.2" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" + "@babel/plugin-proposal-numeric-separator" "^7.14.2" + "@babel/plugin-proposal-object-rest-spread" "^7.14.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" + "@babel/plugin-proposal-optional-chaining" "^7.14.2" "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-private-property-in-object" "^7.14.0" "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.12.13" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -923,14 +953,15 @@ "@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/plugin-syntax-private-property-in-object" "^7.14.0" "@babel/plugin-syntax-top-level-await" "^7.12.13" "@babel/plugin-transform-arrow-functions" "^7.13.0" "@babel/plugin-transform-async-to-generator" "^7.13.0" "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.12.13" - "@babel/plugin-transform-classes" "^7.13.0" + "@babel/plugin-transform-block-scoping" "^7.14.2" + "@babel/plugin-transform-classes" "^7.14.2" "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.17" "@babel/plugin-transform-dotall-regex" "^7.12.13" "@babel/plugin-transform-duplicate-keys" "^7.12.13" "@babel/plugin-transform-exponentiation-operator" "^7.12.13" @@ -938,14 +969,14 @@ "@babel/plugin-transform-function-name" "^7.12.13" "@babel/plugin-transform-literals" "^7.12.13" "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-amd" "^7.14.2" + "@babel/plugin-transform-modules-commonjs" "^7.14.0" "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-modules-umd" "^7.14.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" "@babel/plugin-transform-new-target" "^7.12.13" "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-parameters" "^7.14.2" "@babel/plugin-transform-property-literals" "^7.12.13" "@babel/plugin-transform-regenerator" "^7.13.15" "@babel/plugin-transform-reserved-words" "^7.12.13" @@ -957,7 +988,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.13" "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.14" + "@babel/types" "^7.14.2" babel-plugin-polyfill-corejs2 "^0.2.0" babel-plugin-polyfill-corejs3 "^0.2.0" babel-plugin-polyfill-regenerator "^0.2.0" @@ -999,13 +1030,13 @@ source-map-support "^0.5.16" "@babel/runtime@^7.8.4": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec" - integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13", "@babel/template@^7.3.3": +"@babel/template@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== @@ -1014,277 +1045,28 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3" - integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.16" - "@babel/helper-function-name" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.16" - "@babel/types" "^7.13.17" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" - integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.4.4": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" + integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" -"@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== - -"@cnakazawa/watch@^1.0.3": - 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" - -"@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.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@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@^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@^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@^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@^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@^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@^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@^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@^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@^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" - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@supabase/doctest-js@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@supabase/doctest-js/-/doctest-js-0.1.0.tgz#a3e9e3d025d4234e4cd0c952324e6d739d392164" - integrity sha512-7PR5UhFbqrNVidbzryi7+/U/N8NV+LahuGQApY5kJ5Tuol3EquTkJcO/dN3t/9NDmPjvXq6psfZnT1+I9LW1kQ== - dependencies: - babel-core "^6.26.3" - babel-register "^6.26.0" - chai "^4.1.2" - jest "^25.1.0" - jison "^0.4.18" - lex "^1.7.9" - -"@types/babel__core@^7.1.7": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== - dependencies: - "@babel/types" "^7.3.0" - "@types/eslint-scope@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" @@ -1294,9 +1076,9 @@ "@types/estree" "*" "@types/eslint@*": - version "7.2.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917" - integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ== + version "7.2.11" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.11.tgz#180b58f5bb7d7376e39d22496e2b08901aa52fd2" + integrity sha512-WYhv//5K8kQtsSc9F1Kn2vHzhYor6KpwPbARH7hwYe3C3ETD0EVx/3P5qQybUoaBEuUa9f/02JjBiXFWalYUmw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1306,69 +1088,15 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@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 "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.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@types/node@*": - version "14.14.41" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615" - integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g== - -"@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.19.0": - version "1.19.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" - integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== - -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - -"@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== - -"@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== - dependencies: - "@types/yargs-parser" "*" + version "15.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.0.tgz#f0ddca5a61e52627c9dcb771a6039d44694597bc" + integrity sha512-gCYSfQpy+LYhOFTKAeE8BkyGqaxmlFxe+n4DKM6DR0wzw/HISUE/hAmkC/KT8Sw5PCJblqg062b3z9gucv3k0A== "@webassemblyjs/ast@1.11.0": version "1.11.0" @@ -1501,55 +1229,17 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -JSONSelect@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" - integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= - -"JSV@>= 4.0.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= - -abab@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -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== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn@^6.0.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.0.4: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" - integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== +acorn@^8.2.1: + version "8.2.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" + integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1559,33 +1249,11 @@ ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1598,34 +1266,6 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1633,78 +1273,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -1714,67 +1282,6 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -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-loader@^8.0.4: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -1811,49 +1318,29 @@ babel-plugin-inline-import@^3.0.0: dependencies: require-resolve "0.0.2" -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@^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-plugin-polyfill-corejs2@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" - integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.1.tgz#ae2cf6d6f1aa7c0edcf04a25180e8856a6d1184f" + integrity sha512-hXGSPbr6IbjeMyGew+3uGIAkRjBFSOJ9FLDZNOfHuyJZCcoia4nd/72J0bSgvfytcVfUcP/dxEVcUhVJuQRtSw== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.1" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" - integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.1.tgz#786f40218040030f0edecfd48e6e59f1ee9bef53" + integrity sha512-WZCqF3DLUhdTD/P381MDJfuP18hdCZ+iqJ+wHtzhWENpsiof284JJ1tMQg1CE+hfCWyG48F7e5gDMk2c3Laz7w== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.1" core-js-compat "^3.9.1" babel-plugin-polyfill-regenerator@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" - integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.1.tgz#ca9595d7d5f3afefec2d83126148b90db751a091" + integrity sha512-T3bYyL3Sll2EtC94v3f+fA8M28q7YPTOZdB++SRHjvYZTvtd+WorMUq3tDTD4Q7Kjk1LG0gGromslKjcO5p2TA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.1" babel-plugin-transform-es2015-modules-commonjs@^6.26.2: version "6.26.2" @@ -1873,44 +1360,6 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-preset-current-node-syntax@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" - integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== - 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@^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" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1919,7 +1368,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.24.1, babel-template@^6.26.0: +babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= @@ -1960,117 +1409,27 @@ babylon@^6.18.0: resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - 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== -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -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== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -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" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserslist@^4.14.5, browserslist@^4.16.4: - version "4.16.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" - integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== +browserslist@^4.14.5, browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30001208" + caniuse-lite "^1.0.30001219" colorette "^1.2.2" - electron-to-chromium "^1.3.712" + electron-to-chromium "^1.3.723" escalade "^3.1.1" node-releases "^1.1.71" -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - 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== -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - call-bind@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2079,44 +1438,10 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^1.0.2" -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001208: - version "1.0.30001214" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz#70f153c78223515c6d37a9fde6cd69250da9d872" - integrity sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chai@^4.1.2, chai@^4.2.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.1" - type-detect "^4.0.5" +caniuse-lite@^1.0.30001219: + version "1.0.30001228" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" + integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== chalk@^1.1.3: version "1.1.3" @@ -2138,64 +1463,11 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= - dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.1.0" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -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== - -cjson@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" - integrity sha1-5kObkHA9MS/24iJAl76pLOPQKhQ= - dependencies: - jsonlint "1.6.0" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -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" @@ -2205,24 +1477,6 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -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" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2230,40 +1484,16 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -colors@0.5.x: - version "0.5.1" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" - integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2274,100 +1504,27 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -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== - -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= - -convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.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== dependencies: safe-buffer "~5.1.1" -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.10.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.2.tgz#0a675b4e1cde599616322a72c8886bcf696f3ec3" - integrity sha512-IGHnpuaM1N++gLSPI1F1wu3WXICPxSyj/Q++clcwsIOnUVp5uKUIPl/+6h0TQ112KU3fMiSxqJuM+OrCyKj5+A== + version "3.12.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b" + integrity sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ== dependencies: - browserslist "^4.16.4" + browserslist "^4.16.6" semver "7.0.0" -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cross-spawn@^6.0.0: - 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@^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.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -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" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^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== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2381,38 +1538,11 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - -deep-is@~0.1.3: - version "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@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== -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== - define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2420,107 +1550,24 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -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== - -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== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -ebnf-parser@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" - integrity sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.3.712: - version "1.3.719" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.719.tgz#87166fee347a46a2557f19aadb40a1d68241e61c" - integrity sha512-heM78GKSqrIzO9Oz0/y22nTBN7bqSP1Pla2SyU9DiSnQD+Ea9SyyN5RWWlgqsqeBLNDkSlE9J9EHFmdMPzxB/g== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +electron-to-chromium@^1.3.723: + version "1.3.736" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052" + integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig== emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -end-of-stream@^1.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" - enhanced-resolve@^5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz#d9deae58f9d3773b6a111a5a46831da5be5c9ac0" - integrity sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ== + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== dependencies: graceful-fs "^4.2.4" tapable "^2.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" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - es-module-lexer@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" @@ -2536,34 +1583,6 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escodegen@1.3.x: - version "1.3.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" - integrity sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM= - dependencies: - esprima "~1.1.1" - estraverse "~1.5.0" - esutils "~1.0.0" - optionalDependencies: - source-map "~0.1.33" - -escodegen@^1.11.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 "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -2572,12 +1591,7 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -esprima@1.1.x, esprima@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" - integrity sha1-W28VR/TRAuZw4UDFCb5ncdautUk= - -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -2589,7 +1603,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -2599,134 +1613,16 @@ estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== -estraverse@~1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" - integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= - esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -esutils@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" - integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= - events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -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" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -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" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2737,35 +1633,6 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - find-cache-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" @@ -2791,7 +1658,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -2799,42 +1666,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.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" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.1.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -2845,16 +1676,6 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - get-intrinsic@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -2864,54 +1685,11 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.1" -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-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -2927,24 +1705,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.2.4: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -2952,11 +1712,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2972,37 +1727,6 @@ has-symbols@^1.0.1: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3010,78 +1734,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.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== - -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" - -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" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -3089,582 +1741,25 @@ invariant@^2.2.2: 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= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -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-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -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" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - 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-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-stream@^1.1.0: - version "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-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= - -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== - -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: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -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@^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@^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@^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@^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: - html-escaper "^2.0.0" - istanbul-lib-report "^3.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@^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@^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@^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@^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@^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@^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@^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@^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@^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@^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-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@^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@^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@^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.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^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@^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@^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" - read-pkg-up "^7.0.1" - realpath-native "^2.0.0" - resolve "^1.17.0" - slash "^3.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@^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@^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@^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-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@^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@^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@^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-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -3674,37 +1769,6 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^25.1.0: - 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" - -jison-lex@0.3.x: - version "0.3.4" - resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" - integrity sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U= - dependencies: - lex-parser "0.1.x" - nomnom "1.5.2" - -jison@^0.4.18: - version "0.4.18" - resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502" - integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w== - dependencies: - JSONSelect "0.4.0" - cjson "0.3.0" - ebnf-parser "0.1.10" - escodegen "1.3.x" - esprima "1.1.x" - jison-lex "0.3.x" - lex-parser "~0.1.3" - nomnom "1.5.2" - "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" @@ -3723,48 +1787,6 @@ js-yaml@^3.13.1: 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" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -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@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -3780,31 +1802,11 @@ json-parse-better-errors@^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== -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -3819,81 +1821,11 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" -jsonlint@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a" - integrity sha1-iKpGvCiaesk7tGyuLVihh6m7SUo= - dependencies: - JSV ">= 4.0.x" - nomnom ">= 1.5.x" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.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" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.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.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lex-parser@0.1.x, lex-parser@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" - integrity sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA= - -lex@^1.7.9: - version "1.7.9" - resolved "https://registry.yarnpkg.com/lex/-/lex-1.7.9.tgz#5d5636ccef574348362938b79a47f0eed8ed0d43" - integrity sha1-XVY2zO9XQ0g2KTi3mkfw7tjtDUM= - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -3928,23 +1860,11 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash@^4.17.19, lodash@^4.17.4: +lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -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" - loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -3960,108 +1880,35 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.2, make-dir@^3.1.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" -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -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== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - mime-db@1.47.0: version "1.47.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19: +mime-types@^2.1.27: version "2.1.30" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== dependencies: mime-db "1.47.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== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -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" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4072,214 +1919,35 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - 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" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -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.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== - -nomnom@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" - integrity sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8= - dependencies: - colors "0.5.x" - underscore "1.1.x" - -"nomnom@>= 1.5.x": - version "1.8.1" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= - dependencies: - chalk "~0.4.0" - underscore "~1.6.0" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - 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== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - 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" - -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" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - object.assign@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.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" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -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-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - -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== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" @@ -4314,26 +1982,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -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" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -4349,47 +1997,17 @@ path-extra@^1.0.2: resolved "https://registry.yarnpkg.com/path-extra/-/path-extra-1.0.3.tgz#7c112189a6e50d595790e7ad2037e44e410c1166" integrity sha1-fBEhiablDVlXkOetIDfkTkEMEWY= -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "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" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -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.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== - pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.0, pirates@^4.0.1: +pirates@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== @@ -4403,74 +2021,18 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -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.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== - -prompts@^2.0.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" - integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -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== - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4478,35 +2040,6 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -react-is@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -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@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -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== - 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" @@ -4536,14 +2069,6 @@ regenerator-transform@^0.14.2: dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regexpu-core@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" @@ -4568,80 +2093,6 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - require-resolve@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/require-resolve/-/require-resolve-0.0.2.tgz#bab410ab1aee2f3f55b79317451dd3428764e6f3" @@ -4649,29 +2100,7 @@ require-resolve@0.0.2: dependencies: x-path "^0.0.2" -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@^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" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0: +resolve@^1.14.2: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -4679,24 +2108,7 @@ resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0: is-core-module "^2.2.0" path-parse "^1.0.6" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rimraf@^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== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2: +safe-buffer@^5.1.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== @@ -4706,40 +2118,6 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - 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: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -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" - schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" @@ -4758,16 +2136,16 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -4780,21 +2158,6 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.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" @@ -4802,109 +2165,12 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - 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== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - source-list-map@^2.0.1: 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-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.19: +source-map-support@^0.5.16, source-map-support@~0.5.19: 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== @@ -4912,123 +2178,26 @@ source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.1 buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +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: 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, source-map@~0.7.2: +source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -source-map@~0.1.33: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= - dependencies: - amdefine ">=0.0.4" - -spdx-correct@^3.0.0: - 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.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.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" - -spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -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-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - strip-ansi@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -5036,40 +2205,6 @@ strip-ansi@^3.0.0: dependencies: ansi-regex "^2.0.0" -strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= - -strip-bom@^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== - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -5082,79 +2217,39 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - tapable@^2.1.1, tapable@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== -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" - terser-webpack-plugin@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" - integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== + version "5.1.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.2.tgz#51d295eb7cc56785a67a372575fdc46e42d5c20c" + integrity sha512-6QhDaAiVHIQr5Ab3XUWZyDmrIPCHMiqJVljMF91YKyqwKkL5QHnYMkrMBy96v9Z7ev1hGhSEw1HQZc2p/s5Z8Q== dependencies: jest-worker "^26.6.2" p-limit "^3.1.0" schema-utils "^3.0.0" serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^5.5.1" + terser "^5.7.0" -terser@^5.5.1: - version "5.6.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== +terser@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== dependencies: commander "^2.20.0" source-map "~0.7.2" source-map-support "~0.5.19" -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" - -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== - -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= - to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -5165,123 +2260,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - 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" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - 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" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -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== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-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" - -underscore@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" - integrity sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA= - -underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -5305,24 +2283,6 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5330,83 +2290,14 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -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== - -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-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: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -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" - 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: - 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" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - watchpack@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -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== - webpack-sources@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" @@ -5416,16 +2307,16 @@ webpack-sources@^2.1.1: source-map "^0.6.1" webpack@^5.30.0: - version "5.35.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.35.0.tgz#4db23c2b96c4e53a90c5732d7cdb301a84a33576" - integrity sha512-au3gu55yYF/h6NXFr0KZPZAYxS6Nlc595BzYPke8n0CSff5WXcoixtjh5LC/8mXunkRKxhymhXmBY0+kEbR6jg== + version "5.37.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.37.1.tgz#2deb5acd350583c1ab9338471f323381b0b0c14b" + integrity sha512-btZjGy/hSjCAAVHw+cKG+L0M+rstlyxbO2C+BOTaQ5/XAnxkDrP5sVbqWhXgo4pL3X2dcOib6rqCP20Zr9PLow== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.47" "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/wasm-edit" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.0.4" + acorn "^8.2.1" browserslist "^4.14.5" chrome-trace-event "^1.0.2" enhanced-resolve "^5.8.0" @@ -5444,80 +2335,6 @@ webpack@^5.30.0: watchpack "^2.0.0" webpack-sources "^2.1.1" -whatwg-encoding@^1.0.1, 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.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== - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9, 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" - -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" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -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" - -ws@^7.0.0: - version "7.4.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== - x-path@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/x-path/-/x-path-0.0.2.tgz#294d076bb97a7706cc070bbb2a6fd8c54df67b12" @@ -5525,46 +2342,6 @@ x-path@^0.0.2: dependencies: path-extra "^1.0.2" -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -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== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -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" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" diff --git a/package.json b/package.json index 26455336..c12194ba 100644 --- a/package.json +++ b/package.json @@ -132,7 +132,7 @@ "speed-measure-webpack-plugin": "^1.5.0", "style-loader": "^0.23.1", "stylefmt": "git+https://github.com/ronilaukkarinen/stylefmt.git", - "stylelint": "^13.2.0", + "stylelint": "^13.13.1", "stylelint-config-standard": "^21.0.0", "url-loader": "^4.1.1", "webpack": "^5.30.0", diff --git a/yarn.lock b/yarn.lock index de74f749..090a18dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26,51 +26,25 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.8": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1" - integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== - -"@babel/compat-data@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" - integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" + integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== "@babel/core@>=7.9.0", "@babel/core@^7.1.2": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.14.tgz#8e46ebbaca460a63497c797e574038ab04ae6d06" - integrity sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" + integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" - "@babel/helper-compilation-targets" "^7.13.13" - "@babel/helper-module-transforms" "^7.13.14" - "@babel/helpers" "^7.13.10" - "@babel/parser" "^7.13.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.13" - "@babel/types" "^7.13.14" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/core@^7.1.0", "@babel/core@^7.7.5": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a" - integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.16" + "@babel/generator" "^7.14.3" "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.13.14" - "@babel/helpers" "^7.13.16" - "@babel/parser" "^7.13.16" + "@babel/helper-module-transforms" "^7.14.2" + "@babel/helpers" "^7.14.0" + "@babel/parser" "^7.14.3" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -79,36 +53,27 @@ source-map "^0.5.0" "@babel/eslint-parser@^7.13.14": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.13.14.tgz#f80fd23bdd839537221914cb5d17720a5ea6ba3a" - integrity sha512-I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.14.3.tgz#8f292caf83dd2d7b364f938fe7074806af6d70ea" + integrity sha512-IfJXKEVRV/Gisvgmih/+05gkBzzg4Dy0gcxkZ84iFiLK8+O+fI1HLnGJv3UrUMPpsMmmThNa69v+UnF80XP+kA== dependencies: eslint-scope "^5.1.0" - eslint-visitor-keys "^1.3.0" + eslint-visitor-keys "^2.1.0" semver "^6.3.0" "@babel/eslint-plugin@^7.13.10": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.13.10.tgz#6720c32d52a4fef817796c7bb55a87b80320bbe7" - integrity sha512-xsNxo099fKnJ2rArkuuMOTPxxTLZSXwbFXdH4GjqQRKTOr6S1odQlE+R3Leid56VFQ3KVAR295vVNG9fqNQVvQ== - dependencies: - eslint-rule-composer "^0.3.0" - -"@babel/generator@^7.13.16": version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" - integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== + resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.13.16.tgz#d6937636c567b41d6ca46d291c7b2d101e6ccaf3" + integrity sha512-RNL0dLHBvjXW857JwzToTHxtbOZfGcvdSegcgXC1c1PqfE+o/QN8MugkgKj2vXFxCcMByfxJrmpCbLzVBVlgIA== dependencies: - "@babel/types" "^7.13.16" - jsesc "^2.5.1" - source-map "^0.5.0" + eslint-rule-composer "^0.3.0" -"@babel/generator@^7.13.9": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" - integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== +"@babel/generator@^7.14.2", "@babel/generator@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.14.2" jsesc "^2.5.1" source-map "^0.5.0" @@ -127,17 +92,7 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5" - integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ== - dependencies: - "@babel/compat-data" "^7.13.12" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.13.16": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== @@ -147,29 +102,30 @@ browserslist "^4.14.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.13.0": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" - integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.2", "@babel/helper-create-class-features-plugin@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.3.tgz#832111bcf4f57ca57a4c5b1a000fc125abc6554a" + integrity sha512-BnEfi5+6J2Lte9LeiL6TxLWdIlEv9Woacc1qXzXBgbikcOzMRM2Oya5XGg/f/ngotv1ej2A/b+3iJH8wbS1+lQ== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-replace-supers" "^7.14.3" "@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz#149aa6d78c016e318c43e2409a0ae9c136a86688" + integrity sha512-JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e" - integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== +"@babel/helper-define-polyfill-provider@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.1.tgz#e6f5f4a6edc3722152c21359190de67fc6cf664d" + integrity sha512-x3AUTVZNPunaw1opRTa5OwVA5N0YxGlIad9xQ5QflK1uIS7PnAGGU5O2Dj/G183fR//N8AzTq+Q8+oiu9m0VFg== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -187,14 +143,14 @@ dependencies: "@babel/types" "^7.13.0" -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== +"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== dependencies: "@babel/helper-get-function-arity" "^7.12.13" "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/types" "^7.14.2" "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" @@ -204,14 +160,14 @@ "@babel/types" "^7.12.13" "@babel/helper-hoist-variables@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" - integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" + integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== dependencies: - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.16" -"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": +"@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== @@ -225,19 +181,19 @@ dependencies: "@babel/types" "^7.13.12" -"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" - integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== +"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" + integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== dependencies: "@babel/helper-module-imports" "^7.13.12" "@babel/helper-replace-supers" "^7.13.12" "@babel/helper-simple-access" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.13" - "@babel/types" "^7.13.14" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" @@ -260,17 +216,17 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" + integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== dependencies: "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" -"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": +"@babel/helper-simple-access@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== @@ -291,10 +247,10 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== "@babel/helper-validator-option@^7.12.17": version "7.12.17" @@ -311,42 +267,28 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helpers@^7.13.10": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" - integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helpers@^7.13.16": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6" - integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg== +"@babel/helpers@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== dependencies: "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.17" - "@babel/types" "^7.13.17" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" - integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== - -"@babel/parser@^7.12.13", "@babel/parser@^7.13.13": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df" - integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw== +"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" + integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" @@ -357,10 +299,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/plugin-proposal-async-generator-functions@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" - integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== +"@babel/plugin-proposal-async-generator-functions@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" + integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-remap-async-to-generator" "^7.13.0" @@ -374,27 +316,36 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-class-static-block@^7.13.11": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" + integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.3" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-class-static-block" "^7.12.13" + "@babel/plugin-proposal-decorators@^7.1.2": - version "7.13.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.13.5.tgz#d28071457a5ba8ee1394b23e38d5dcf32ea20ef7" - integrity sha512-i0GDfVNuoapwiheevUOuSW67mInqJ8qw7uWfpjNVeHMn143kXblEy/bmL9AdZ/0yf/4BMQeWXezK0tQIvNPqag== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.2.tgz#e68c3c5e4a6a08834456568256fc3e71b93590cf" + integrity sha512-LauAqDd/VjQDtae58QgBcEOE42NNP+jB2OE+XeC3KBI/E+BhhRjtr5viCIrj1hmu1YvrguLipIPRJZmS5yUcFw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.2" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-decorators" "^7.12.13" "@babel/plugin-proposal-do-expressions@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.12.13.tgz#d48f2f96ea352173b886d4b5257bb1ed5ac4c52e" - integrity sha512-NXmNoFKXQ+BXWU474n+cT4C5I/OI3rMiZCKJ/PtA/7AGMjGreXrt+YfoGmgm7Wimz/qumrycHNvg/fr4q2uv0w== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.14.0.tgz#8df85ab8d16437cd97ad1f6905d71f27b5f59721" + integrity sha512-a/H0V6MvPbj4iki1XQstRQhHGuUF27tyqrmLmzDTYhYdasz6rdcyf8dhGBZbMnuxKsYV5pPqUkc+xdzDUweRQw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-do-expressions" "^7.12.13" -"@babel/plugin-proposal-dynamic-import@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" - integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== +"@babel/plugin-proposal-dynamic-import@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" + integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" @@ -407,12 +358,12 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-export-default-from" "^7.12.13" -"@babel/plugin-proposal-export-namespace-from@^7.0.0", "@babel/plugin-proposal-export-namespace-from@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== +"@babel/plugin-proposal-export-namespace-from@^7.0.0", "@babel/plugin-proposal-export-namespace-from@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" + integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-function-bind@^7.0.0": @@ -432,61 +383,61 @@ "@babel/helper-wrap-function" "^7.12.13" "@babel/plugin-syntax-function-sent" "^7.12.13" -"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" - integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== +"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" + integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.0.0", "@babel/plugin-proposal-logical-assignment-operators@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" - integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== +"@babel/plugin-proposal-logical-assignment-operators@^7.0.0", "@babel/plugin-proposal-logical-assignment-operators@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" + integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" - integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" + integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== +"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" + integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" - integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== +"@babel/plugin-proposal-object-rest-spread@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc" + integrity sha512-hBIQFxwZi8GIp934+nj5uV31mqclC1aYDhctDu5khTi9PCCUOczyy0b34W0oE9U/eJXiqQaKyVsmjeagOaSlbw== dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" + "@babel/compat-data" "^7.14.0" + "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-parameters" "^7.14.2" -"@babel/plugin-proposal-optional-catch-binding@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" - integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== +"@babel/plugin-proposal-optional-catch-binding@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" + integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" - integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" + integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" @@ -508,6 +459,16 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" + integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.0" + "@babel/plugin-proposal-throw-expressions@^7.0.0": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.12.13.tgz#48a6e4a5988041d16b0a2f1568a3b518f8b6c1d4" @@ -531,20 +492,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - 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: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-class-static-block@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" + integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-decorators@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" @@ -601,7 +562,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-import-meta@^7.0.0", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.0.0": 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== @@ -622,7 +583,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -636,7 +597,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -671,6 +632,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" + integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-throw-expressions@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.12.13.tgz#bb02bfbaf57d71ab69280ebf6a53aa45ad4c3f1a" @@ -708,23 +676,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" - integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== +"@babel/plugin-transform-block-scoping@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.2.tgz#761cb12ab5a88d640ad4af4aa81f820e6b5fdf5c" + integrity sha512-neZZcP19NugZZqNwMTH+KoBjx5WyvESPSIOQb4JHpfd+zPfqcH65RMu5xJju5+6q/Y2VzYrleQTr+b6METyyxg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-classes@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" - integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== +"@babel/plugin-transform-classes@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.2.tgz#3f1196c5709f064c252ad056207d87b7aeb2d03d" + integrity sha512-7oafAVcucHquA/VZCsXv/gmuiHeYd64UJyyTYU+MPfNu0KeNlxw06IeENBO8bJjXVbolu+j1MM5aKQtH1OMCNg== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" + "@babel/helper-function-name" "^7.14.2" "@babel/helper-optimise-call-expression" "^7.12.13" "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" @@ -735,10 +703,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" - integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== +"@babel/plugin-transform-destructuring@^7.13.17": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" + integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" @@ -802,23 +770,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-amd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" - integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== +"@babel/plugin-transform-modules-amd@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" + integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.2" "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" - integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== +"@babel/plugin-transform-modules-commonjs@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" + integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-simple-access" "^7.13.12" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.13.8": @@ -832,12 +800,12 @@ "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" - integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== +"@babel/plugin-transform-modules-umd@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" + integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": @@ -862,10 +830,10 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-parameters@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" - integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== +"@babel/plugin-transform-parameters@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" + integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A== dependencies: "@babel/helper-plugin-utils" "^7.13.0" @@ -877,11 +845,11 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-react-display-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" - integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz#2e854544d42ab3bb9c21f84e153d62e800fbd593" + integrity sha512-zCubvP+jjahpnFJvPaHPiGVfuVUjXHhFvJKQdNnsmSsiU9kR/rCZ41jHc++tERD2zV+p7Hr6is+t5b6iWTCqSw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-react-jsx-development@^7.12.17": version "7.12.17" @@ -891,22 +859,22 @@ "@babel/plugin-transform-react-jsx" "^7.12.17" "@babel/plugin-transform-react-jsx-source@^7.5.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" - integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.2.tgz#2620b57e7de775c0687f65d464026d15812941da" + integrity sha512-OMorspVyjxghAjzgeAWc6O7W7vHbJhV69NeTGdl9Mxgz6PaweAuo7ffB9T5A1OQ9dGcw0As4SYMUhyNC4u7mVg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" - integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz#0e26597805cf0862da735f264550933c38babb66" + integrity sha512-uuxuoUNVhdgYzERiHHFkE4dWoJx+UFVyuAl0aqN8P2/AKFHwqgUC5w2+4/PjpKXJsFgBlYAFXlUmDQ3k3DUkXw== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" "@babel/helper-module-imports" "^7.13.12" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.13.12" + "@babel/types" "^7.14.2" "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" @@ -916,10 +884,10 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" - integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== +"@babel/plugin-transform-regenerator@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" + integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== dependencies: regenerator-transform "^0.14.2" @@ -982,30 +950,33 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@^7.1.0": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.12.tgz#6dff470478290582ac282fb77780eadf32480237" - integrity sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA== + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.2.tgz#e80612965da73579c84ad2f963c2359c71524ed5" + integrity sha512-7dD7lVT8GMrE73v4lvDEb85cgcQhdES91BSD7jS/xjC6QY8PnRhux35ac+GCpbiRhp8crexBvZZqnaL6VrY8TQ== dependencies: - "@babel/compat-data" "^7.13.12" - "@babel/helper-compilation-targets" "^7.13.10" + "@babel/compat-data" "^7.14.0" + "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-validator-option" "^7.12.17" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.13.8" + "@babel/plugin-proposal-async-generator-functions" "^7.14.2" "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-dynamic-import" "^7.13.8" - "@babel/plugin-proposal-export-namespace-from" "^7.12.13" - "@babel/plugin-proposal-json-strings" "^7.13.8" - "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-numeric-separator" "^7.12.13" - "@babel/plugin-proposal-object-rest-spread" "^7.13.8" - "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-class-static-block" "^7.13.11" + "@babel/plugin-proposal-dynamic-import" "^7.14.2" + "@babel/plugin-proposal-export-namespace-from" "^7.14.2" + "@babel/plugin-proposal-json-strings" "^7.14.2" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" + "@babel/plugin-proposal-numeric-separator" "^7.14.2" + "@babel/plugin-proposal-object-rest-spread" "^7.14.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" + "@babel/plugin-proposal-optional-chaining" "^7.14.2" "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-private-property-in-object" "^7.14.0" "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.12.13" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -1015,14 +986,15 @@ "@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/plugin-syntax-private-property-in-object" "^7.14.0" "@babel/plugin-syntax-top-level-await" "^7.12.13" "@babel/plugin-transform-arrow-functions" "^7.13.0" "@babel/plugin-transform-async-to-generator" "^7.13.0" "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.12.13" - "@babel/plugin-transform-classes" "^7.13.0" + "@babel/plugin-transform-block-scoping" "^7.14.2" + "@babel/plugin-transform-classes" "^7.14.2" "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.17" "@babel/plugin-transform-dotall-regex" "^7.12.13" "@babel/plugin-transform-duplicate-keys" "^7.12.13" "@babel/plugin-transform-exponentiation-operator" "^7.12.13" @@ -1030,16 +1002,16 @@ "@babel/plugin-transform-function-name" "^7.12.13" "@babel/plugin-transform-literals" "^7.12.13" "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-amd" "^7.14.2" + "@babel/plugin-transform-modules-commonjs" "^7.14.0" "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-modules-umd" "^7.14.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" "@babel/plugin-transform-new-target" "^7.12.13" "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-parameters" "^7.14.2" "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.13.15" "@babel/plugin-transform-reserved-words" "^7.12.13" "@babel/plugin-transform-shorthand-properties" "^7.12.13" "@babel/plugin-transform-spread" "^7.13.0" @@ -1049,10 +1021,10 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.13" "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.12" - babel-plugin-polyfill-corejs2 "^0.1.4" - babel-plugin-polyfill-corejs3 "^0.1.3" - babel-plugin-polyfill-regenerator "^0.1.2" + "@babel/types" "^7.14.2" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" core-js-compat "^3.9.0" semver "^6.3.0" @@ -1080,32 +1052,32 @@ "@babel/plugin-transform-react-pure-annotations" "^7.12.1" "@babel/register@^7.0.0": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.13.14.tgz#bbfa8f4f027c2ebc432e8e69e078b632605f2d9b" - integrity sha512-iyw0hUwjh/fzN8qklVqZodbyWjEBOG0KdDnBOpv3zzIgK3NmuRXBmIXH39ZBdspkn8LTHvSboN+oYb4MT43+9Q== + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.13.16.tgz#ae3ab0b55c8ec28763877383c454f01521d9a53d" + integrity sha512-dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg== dependencies: + clone-deep "^4.0.1" find-cache-dir "^2.0.0" - lodash "^4.17.19" make-dir "^2.1.0" pirates "^4.0.0" source-map-support "^0.5.16" "@babel/runtime-corejs3@^7.10.2": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz#14c3f4c85de22ba88e8e86685d13e8861a82fe86" - integrity sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz#6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66" + integrity sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13", "@babel/template@^7.3.3": +"@babel/template@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== @@ -1114,72 +1086,44 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3" - integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.16" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.16" - "@babel/types" "^7.13.17" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.13.tgz#39aa9c21aab69f74d948a486dd28a2dbdbf5114d" - integrity sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.9" - "@babel/helper-function-name" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.13" - "@babel/types" "^7.13.13" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" - integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - to-fast-properties "^2.0.0" - -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.13.14", "@babel/types@^7.4.4": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" - integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ== +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.4.4": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" + integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" + "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" -"@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== - "@bugsnag/browser@*": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-7.9.0.tgz#274aca640c1b9ba86b80af21503aef71b0a33e75" - integrity sha512-+W/oxEJJMgNRVrgcCGXYQKAf6Nu28JklU3v+w7zgPEaxnzxxUwsCj7s4534XQvj/jprP60281WsAlTDqFRprAQ== + version "7.10.0" + resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-7.10.0.tgz#e40c2809ba1add8850803a70e3af04d27f302dc1" + integrity sha512-ESsPxW73QIdTg0IefP3SgMBVf9j/q5se7dj155HSRMbbWJzD1FxZwiCaVrtBzrgtZIuz/0pduj6Qead/mCzu2A== dependencies: - "@bugsnag/core" "^7.9.0" + "@bugsnag/core" "^7.10.0" "@bugsnag/browser@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-5.2.0.tgz#69ff77c8d310eccbdecd545744a22ea6030703f1" integrity sha512-QImSbwVjcEbaUjCxNRVOELUahdHmRfkZ9o0UJpMDsfYNqpMpYzI7DdyH0BUnXv/yI4ymGpAQbFSEqVMTqSa9WA== -"@bugsnag/core@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.9.0.tgz#a8b6ebe70df2c8b5a8ba0449e14090b8ce0b4688" - integrity sha512-LjARVBusQ1ewNrHRPBrwY4ISsXf/aPjQHAixFe6fRMiLzAS0awxFweVlbdfm+Oj/ZE04J6O9n4re9TC6pVBpEA== +"@bugsnag/core@^7.10.0": + version "7.10.0" + resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.10.0.tgz#4b4856141a95a1feadb1afc74265dc6ad8d40cc0" + integrity sha512-sDa2nDxwsxHQx2/2/tsBWjYqH0TewCR8N/r5at6B+irwVkI0uts7Qc2JyqDTfiEiBXKVEXFK+fHTz1x9b8tsiA== dependencies: "@bugsnag/cuid" "^3.0.0" "@bugsnag/safe-json-stringify" "^6.0.0" @@ -1222,14 +1166,6 @@ resolved "https://registry.yarnpkg.com/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz#22abdcd83e008c369902976730c34c150148a758" integrity sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA== -"@cnakazawa/watch@^1.0.3": - 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" - "@develar/schema-utils@~2.6.5": version "2.6.5" resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" @@ -1239,9 +1175,9 @@ ajv-keywords "^3.4.1" "@discoveryjs/json-ext@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" - integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== + version "0.5.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" + integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== "@electron/get@^1.0.1": version "1.12.4" @@ -1275,10 +1211,10 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@eslint/eslintrc@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" - integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== +"@eslint/eslintrc@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" + integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -1290,190 +1226,6 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@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.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@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@^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@^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@^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@^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@^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@^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@^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@^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@^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" - "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" @@ -1482,14 +1234,14 @@ cross-spawn "^7.0.1" "@material-ui/core@^4.2.1": - version "4.11.3" - resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.3.tgz#f22e41775b0bd075e36a7a093d43951bf7f63850" - integrity sha512-Adt40rGW6Uds+cAyk3pVgcErpzU/qxc7KBR94jFHBYretU4AtWZltYcNsbeMn9tXL86jjVL1kuGcIHsgLgFGRw== + version "4.11.4" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.4.tgz#4fb9fe5dec5dcf780b687e3a40cff78b2b9640a4" + integrity sha512-oqb+lJ2Dl9HXI9orc6/aN8ZIAMkeThufA5iZELf2LQeBn2NtjVilF5D2w7e9RpntAzDb4jK5DsVhkfOvFY/8fg== dependencies: "@babel/runtime" "^7.4.4" - "@material-ui/styles" "^4.11.3" + "@material-ui/styles" "^4.11.4" "@material-ui/system" "^4.11.3" - "@material-ui/types" "^5.1.0" + "@material-ui/types" "5.1.0" "@material-ui/utils" "^4.11.2" "@types/react-transition-group" "^4.2.0" clsx "^1.0.4" @@ -1507,9 +1259,9 @@ "@babel/runtime" "^7.4.4" "@material-ui/lab@^4.0.0-alpha.21": - version "4.0.0-alpha.57" - resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.57.tgz#e8961bcf6449e8a8dabe84f2700daacfcafbf83a" - integrity sha512-qo/IuIQOmEKtzmRD2E4Aa6DB4A87kmY6h0uYhjUmrrgmEAgbbw9etXpWPVXuRK6AGIQCjFzV6WO2i21m1R4FCw== + version "4.0.0-alpha.58" + resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.58.tgz#c7ebb66f49863c5acbb20817163737caa299fafc" + integrity sha512-GKHlJqLxUeHH3L3dGQ48ZavYrqGOTXkFkiEiuYMAnAvXAZP4rhMIqeHOPXSUQan4Bd8QnafDcpovOSLnadDmKw== dependencies: "@babel/runtime" "^7.4.4" "@material-ui/utils" "^4.11.2" @@ -1517,14 +1269,14 @@ prop-types "^15.7.2" react-is "^16.8.0 || ^17.0.0" -"@material-ui/styles@^4.11.3": - version "4.11.3" - resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.3.tgz#1b8d97775a4a643b53478c895e3f2a464e8916f2" - integrity sha512-HzVzCG+PpgUGMUYEJ2rTEmQYeonGh41BYfILNFb/1ueqma+p1meSdu4RX6NjxYBMhf7k+jgfHFTTz+L1SXL/Zg== +"@material-ui/styles@^4.11.4": + version "4.11.4" + resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.4.tgz#eb9dfccfcc2d208243d986457dff025497afa00d" + integrity sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew== dependencies: "@babel/runtime" "^7.4.4" "@emotion/hash" "^0.8.0" - "@material-ui/types" "^5.1.0" + "@material-ui/types" "5.1.0" "@material-ui/utils" "^4.11.2" clsx "^1.0.4" csstype "^2.5.2" @@ -1549,7 +1301,7 @@ csstype "^2.5.2" prop-types "^15.7.2" -"@material-ui/types@^5.1.0": +"@material-ui/types@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== @@ -1645,13 +1397,6 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - "@stylelint/postcss-css-in-js@^0.37.2": version "0.37.2" resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" @@ -1667,18 +1412,6 @@ remark "^13.0.0" unist-util-find-all-after "^3.0.2" -"@supabase/doctest-js@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@supabase/doctest-js/-/doctest-js-0.1.0.tgz#a3e9e3d025d4234e4cd0c952324e6d739d392164" - integrity sha512-7PR5UhFbqrNVidbzryi7+/U/N8NV+LahuGQApY5kJ5Tuol3EquTkJcO/dN3t/9NDmPjvXq6psfZnT1+I9LW1kQ== - dependencies: - babel-core "^6.26.3" - babel-register "^6.26.0" - chai "^4.1.2" - jest "^25.1.0" - jison "^0.4.18" - lex "^1.7.9" - "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -1686,39 +1419,6 @@ dependencies: defer-to-connect "^1.0.1" -"@types/babel__core@^7.1.7": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== - dependencies: - "@babel/types" "^7.3.0" - "@types/debug@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" @@ -1733,27 +1433,22 @@ "@types/estree" "*" "@types/eslint@*": - version "7.2.8" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.8.tgz#45cd802380fcc352e5680e1781d43c50916f12ee" - integrity sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ== + version "7.2.11" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.11.tgz#180b58f5bb7d7376e39d22496e2b08901aa52fd2" + integrity sha512-WYhv//5K8kQtsSc9F1Kn2vHzhYor6KpwPbARH7hwYe3C3ETD0EVx/3P5qQybUoaBEuUa9f/02JjBiXFWalYUmw== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": +"@types/estree@*", "@types/estree@^0.0.47": version "0.0.47" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== -"@types/estree@^0.0.46": - version "0.0.46" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== - "@types/fs-extra@^9.0.7": - version "9.0.10" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.10.tgz#8023a72e3d06cf54929ea47ec7634e47f33f4046" - integrity sha512-O9T2LLkRDiTlalOBdjEkcnT0MRdT2+wglCl7pJUJ3mkWkR8hX4K+5bg2raQNJcLv4V8zGuTXe7Ud3wSqkTyuyQ== + version "9.0.11" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" + integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== dependencies: "@types/node" "*" @@ -1765,13 +1460,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - "@types/hast@^2.0.0": version "2.3.1" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" @@ -1792,26 +1480,6 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== -"@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 "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.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" @@ -1840,14 +1508,14 @@ integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/node@*": - version "14.14.37" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" - integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + version "15.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.0.tgz#f0ddca5a61e52627c9dcb771a6039d44694597bc" + integrity sha512-gCYSfQpy+LYhOFTKAeE8BkyGqaxmlFxe+n4DKM6DR0wzw/HISUE/hAmkC/KT8Sw5PCJblqg062b3z9gucv3k0A== "@types/node@^12.0.12": - version "12.20.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.7.tgz#1cb61fd0c85cb87e728c43107b5fd82b69bc9ef8" - integrity sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA== + version "12.20.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.13.tgz#e743bae112bd779ac9650f907197dd2caa7f0364" + integrity sha512-1x8W5OpxPq+T85OUsHRP6BqXeosKmeXRtjoF39STcdf/UWLqUsoehstZKOi0CunhVqHG17AyZgpj20eRVooK6A== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1867,11 +1535,6 @@ "@types/node" "*" xmlbuilder ">=11.0.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" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" @@ -1895,9 +1558,9 @@ "@types/react" "*" "@types/react@*": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.3.tgz#ba6e215368501ac3826951eef2904574c262cc79" - integrity sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg== + version "17.0.6" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.6.tgz#0ec564566302c562bf497d73219797a5e0297013" + integrity sha512-u/TtPoF/hrvb63LdukET6ncaplYsvCvmkceasx8oG84/ZCsoLxz9Z/raPBP4lTAiWW1Jb889Y9svHmv8R26dWw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1908,11 +1571,6 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" @@ -1928,7 +1586,7 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== -"@types/yargs@^15.0.0", "@types/yargs@^15.0.13": +"@types/yargs@^15.0.13": version "15.0.13" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== @@ -2056,22 +1714,22 @@ "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.2.tgz#2a20812bfb3a2ebb0b27ee26a52eeb3e3f000836" - integrity sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA== +"@webpack-cli/configtest@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz#204bcff87cda3ea4810881f7ea96e5f5321b87b9" + integrity sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw== -"@webpack-cli/info@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.3.tgz#ef819d10ace2976b6d134c7c823a3e79ee31a92c" - integrity sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q== +"@webpack-cli/info@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz#7381fd41c9577b2d8f6c2594fad397ef49ad5573" + integrity sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.1.tgz#911d1b3ff4a843304b9c3bacf67bb34672418441" - integrity sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw== +"@webpack-cli/serve@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz#f84fd07bcacefe56ce762925798871092f0f228e" + integrity sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -2083,21 +1741,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -JSONSelect@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" - integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= - -"JSV@>= 4.0.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= - -abab@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -2116,43 +1759,25 @@ accessibility-developer-tools@^2.11.0: resolved "https://registry.yarnpkg.com/accessibility-developer-tools/-/accessibility-developer-tools-2.12.0.tgz#3da0cce9d6ec6373964b84f35db7cfc3df7ab514" integrity sha1-PaDM6dbsY3OWS4TzXbfPw996tRQ= -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== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - acorn-walk@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz#d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3" - integrity sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A== - -acorn@^6.0.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.0.tgz#d3c6a9faf00987a5e2b9bdb506c2aa76cd707f83" + integrity sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg== -acorn@^7.1.0, acorn@^7.4.0: +acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4: - version "8.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" - integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== +acorn@^8.0.4, acorn@^8.2.1: + version "8.2.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" + integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== ajv-errors@^1.0.0: version "1.0.1" @@ -2175,20 +1800,15 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv uri-js "^4.2.2" ajv@^8.0.1: - version "8.0.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.0.5.tgz#f07d6fdeffcdbb80485570ce3f1bc845fcc812b9" - integrity sha512-RkiLa/AeJx7+9OvniQ/qeWu0w74A8DiPPBclQ6ji3ZQkv5KamO+QGpqmi7O4JIw3rHGUXZ6CoP9tsAkn3gyazg== + version "8.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" + integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" uri-js "^4.2.2" -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -2211,13 +1831,6 @@ ansi-escapes@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" integrity sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs= -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -2262,11 +1875,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -2275,14 +1883,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - app-builder-bin@3.5.12: version "3.5.12" resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.12.tgz#bbe174972cc1f481f73d6d92ad47a8b4c7eb4530" @@ -2365,11 +1965,6 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - array-find@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" @@ -2418,7 +2013,7 @@ 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.flat@^1.2.3: +array.prototype.flat@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== @@ -2484,11 +2079,6 @@ assert@^1.1.1: 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" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2504,11 +2094,6 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -2575,9 +2160,9 @@ autoprefixer@^9.8.6: postcss-value-parser "^4.1.0" aws-sdk@^2.38.0: - version "2.880.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.880.0.tgz#2198818f3b42bdd387e1898c8aab5fcca2409a36" - integrity sha512-/dBk3ejw22ED2edzGfmJB83KXDA4wLIw5Hb+2YMhly+gOWecvevy0tML2+YN/cmxyTy+wT0E0sM7fm1v7kmHtw== + version "2.913.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.913.0.tgz#633623dce1cf219ee333a0c1a0040988f67e0e5c" + integrity sha512-FF6J79wONw04ZDDjH7B/1wc4uyayWl62NUlkmc/81juHtUpn3cDUu4bPaNSbcaLSgWK7pYVsTN1/kKs6d+/yJA== dependencies: buffer "4.9.2" events "1.1.1" @@ -2600,9 +2185,9 @@ aws4@^1.8.0: integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axe-core@^4.0.2: - version "4.1.4" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.4.tgz#f19cd99a84ee32a318b9c5b5bb8ed373ad94f143" - integrity sha512-Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig== + version "4.2.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.1.tgz#2e50bcf10ee5b819014f6e342e41e45096239e34" + integrity sha512-evY7DN8qSIbsW2H/TWQ1bX3sXN1d4MNb5Vb4n7BzPuCwRHdkZ1H2eNLuSh73EoQqkGKUtju2G2HCcjCfhvZIAA== axobject-query@^2.2.0: version "2.2.0" @@ -2618,67 +2203,6 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -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-loader@^8.0.4: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -2715,49 +2239,29 @@ babel-plugin-inline-import@^3.0.0: dependencies: require-resolve "0.0.2" -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@^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-plugin-polyfill-corejs2@^0.1.4: - version "0.1.10" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1" - integrity sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA== +babel-plugin-polyfill-corejs2@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.1.tgz#ae2cf6d6f1aa7c0edcf04a25180e8856a6d1184f" + integrity sha512-hXGSPbr6IbjeMyGew+3uGIAkRjBFSOJ9FLDZNOfHuyJZCcoia4nd/72J0bSgvfytcVfUcP/dxEVcUhVJuQRtSw== dependencies: - "@babel/compat-data" "^7.13.0" - "@babel/helper-define-polyfill-provider" "^0.1.5" + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.1" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.1.3: - version "0.1.7" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" - integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== +babel-plugin-polyfill-corejs3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.1.tgz#786f40218040030f0edecfd48e6e59f1ee9bef53" + integrity sha512-WZCqF3DLUhdTD/P381MDJfuP18hdCZ+iqJ+wHtzhWENpsiof284JJ1tMQg1CE+hfCWyG48F7e5gDMk2c3Laz7w== dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.5" - core-js-compat "^3.8.1" + "@babel/helper-define-polyfill-provider" "^0.2.1" + core-js-compat "^3.9.1" -babel-plugin-polyfill-regenerator@^0.1.2: - version "0.1.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz#0fe06a026fe0faa628ccc8ba3302da0a6ce02f3f" - integrity sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== +babel-plugin-polyfill-regenerator@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.1.tgz#ca9595d7d5f3afefec2d83126148b90db751a091" + integrity sha512-T3bYyL3Sll2EtC94v3f+fA8M28q7YPTOZdB++SRHjvYZTvtd+WorMUq3tDTD4Q7Kjk1LG0gGromslKjcO5p2TA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.5" + "@babel/helper-define-polyfill-provider" "^0.2.1" babel-plugin-transform-es2015-modules-commonjs@^6.26.2: version "6.26.2" @@ -2777,44 +2281,6 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-preset-current-node-syntax@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" - integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== - 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@^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" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -2823,7 +2289,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.24.1, babel-template@^6.26.0: +babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= @@ -2870,9 +2336,14 @@ bail@^1.0.0: integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +balanced-match@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" + integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" @@ -2982,14 +2453,14 @@ boolbase@^1.0.0, boolbase@~1.0.0: integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= boolean@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.3.tgz#0fee0c9813b66bef25a8a6a904bb46736d05f024" - integrity sha512-EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.4.tgz#aa1df8749af41d7211b66b4eee584722ff428c27" + integrity sha512-5pyOr+w2LNN72F2mAq6J0ckHUfJYSgRKma7e/wlcMMhgOLV9OI0ERhERYXxUqo+dPyVxcbXKy9n+wg13+LpNnA== boxen@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz#64fe9b16066af815f51057adcc800c3730120854" - integrity sha512-5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== dependencies: ansi-align "^3.0.0" camelcase "^6.2.0" @@ -3036,18 +2507,6 @@ brorand@^1.0.1, brorand@^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" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - 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" @@ -3109,23 +2568,16 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.12.0, browserslist@^4.12.2, browserslist@^4.14.5, browserslist@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== +browserslist@^4.12.0, browserslist@^4.12.2, browserslist@^4.14.5, browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" escalade "^3.1.1" - node-releases "^1.1.70" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" + node-releases "^1.1.71" buffer-crc32@~0.2.3: version "0.2.13" @@ -3298,35 +2750,16 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001166, caniuse-lite@^1.0.30001181: - version "1.0.30001207" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz#364d47d35a3007e528f69adb6fecb07c2bb2cc50" - integrity sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" +caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001166, caniuse-lite@^1.0.30001219: + version "1.0.30001228" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" + integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chai@^4.1.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.1" - type-detect "^4.0.5" - chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3347,31 +2780,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= - dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.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" @@ -3387,11 +2803,6 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -check-error@^1.0.2: - version "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" @@ -3417,11 +2828,9 @@ chownr@^1.1.1: 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" + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== chromium-pickle-js@^0.2.0: version "0.2.0" @@ -3441,13 +2850,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -cjson@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" - integrity sha1-5kObkHA9MS/24iJAl76pLOPQKhQ= - dependencies: - jsonlint "1.6.0" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3505,17 +2907,8 @@ cliui@^5.0.0: integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" cliui@^7.0.2: version "7.0.4" @@ -3559,21 +2952,11 @@ clsx@^1.0.4: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -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" @@ -3611,11 +2994,6 @@ colorette@^1.2.1, colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -colors@0.5.x: - version "0.5.1" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" - integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q= - colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -3787,11 +3165,6 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -3804,7 +3177,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.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== @@ -3826,28 +3199,28 @@ 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.8.1, core-js-compat@^3.9.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.0.tgz#3600dc72869673c110215ee7a005a8609dea0fe1" - integrity sha512-9yVewub2MXNYyGvuLnMHcN1k9RkvB7/ofktpeKTIaASyB88YYqGzUnu0ywMMhJrDHOMiTjSHWGzR+i7Wb9Z1kQ== +core-js-compat@^3.9.0, core-js-compat@^3.9.1: + version "3.12.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b" + integrity sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ== dependencies: - browserslist "^4.16.3" + browserslist "^4.16.6" semver "7.0.0" core-js-pure@^3.0.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.10.0.tgz#dab9d6b141779b622b40567e7a536d2276646c15" - integrity sha512-CC582enhrFZStO4F8lGI7QL3SYx7/AIRc+IdSi3btrQGrVsTawo5K/crmKbRrQ+MOMhNX4v+PATn0k2NN6wI7A== + version "3.12.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.12.1.tgz#934da8b9b7221e2a2443dc71dfa5bd77a7ea00b8" + integrity sha512-1cch+qads4JnDSWsvc7d6nzlKAippwjUlf6vykkTLW53VSV+NkE6muGBToAjEA8pG90cSfcud3JgVmW2ds5TaQ== -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.6.5: - version "3.10.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.0.tgz#9a020547c8b6879f929306949e31496bbe2ae9b3" - integrity sha512-MQx/7TLgmmDVamSyfE+O+5BHvG1aUGj/gHhLn1wVtm2B5u1eVIPvh7vkfjwWKNCjrTJB8+He99IntSQ1qP+vYQ== + version "3.12.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.12.1.tgz#6b5af4ff55616c08a44d386f1f510917ff204112" + integrity sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -3921,7 +3294,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3970,22 +3343,20 @@ css-color-names@0.0.4: integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-loader@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.0.tgz#a9ecda190500863673ce4434033710404efbff00" - integrity sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw== + version "5.2.6" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" + integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== dependencies: - camelcase "^6.2.0" - cssesc "^3.0.0" icss-utils "^5.1.0" loader-utils "^2.0.0" - postcss "^8.2.8" + postcss "^8.2.15" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.1.0" schema-utils "^3.0.0" - semver "^7.3.4" + semver "^7.3.5" css-select@^2.0.2: version "2.1.0" @@ -4015,37 +3386,20 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -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== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -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.5.2: - version "2.6.16" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.16.tgz#544d69f547013b85a40d15bff75db38f34fe9c39" - integrity sha512-61FBWoDHp/gRtsoDkq/B1nWrCUG/ok1E3tUrcNbZjsE9Cxd9yzUirjS3+nAATB8U4cTtaQmAHbNndoFz5L6C9Q== + version "2.6.17" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" + integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== csstype@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" - integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== damerau-levenshtein@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" - integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + version "1.0.7" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" + integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== dashdash@^1.12.0: version "1.14.1" @@ -4054,15 +3408,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^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== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - debounce-fn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" @@ -4077,7 +3422,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.5.1, debug@^2.6.8, debug@^2.6. dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.6: +debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -4128,13 +3473,6 @@ deep-diff@^0.3.5: resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84" integrity sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ= -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -4152,16 +3490,11 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "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== - default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -4257,27 +3590,15 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -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== - detect-node@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" - integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== devtron@shnizzedy/devtron#security_updates: version "1.4.0" @@ -4287,11 +3608,6 @@ devtron@shnizzedy/devtron#security_updates: highlight.js "^10.7.2" humanize-plus "^1.8.1" -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== - diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -4338,16 +3654,16 @@ dmg-builder@22.10.5: dmg-license "^1.0.8" dmg-license@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.8.tgz#d52e234815f1a07a59706e5f2a2fea71991cf784" - integrity sha512-47GOb6b4yVzpovXC34heXElpH++ICg9GuWBeOTaokUNLAoAdWpE4VehudYEEtu96j2jXsgQWYf78nW7r+0Y3eg== + version "1.0.9" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz#a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f" + integrity sha512-Rq6qMDaDou2+aPN2SYy0x7LDznoJ/XaG6oDcH5wXUp+WRWQMUYE6eM+F+nex+/LSXOp1uw4HLFoed0YbfU8R/Q== dependencies: "@types/plist" "^3.0.1" "@types/verror" "^1.10.3" ajv "^6.10.0" cli-truncate "^1.1.0" crc "^3.8.0" - iconv-corefoundation "^1.1.5" + iconv-corefoundation "^1.1.6" plist "^3.0.1" smart-buffer "^4.0.2" verror "^1.10.0" @@ -4372,14 +3688,6 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -4402,9 +3710,9 @@ dom-converter@^0.2: utila "~0.4" dom-helpers@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" - integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ== + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== dependencies: "@babel/runtime" "^7.8.7" csstype "^3.0.2" @@ -4432,13 +3740,6 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -4475,9 +3776,9 @@ dotenv-expand@^5.1.0: integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== duplexer3@^0.1.4: version "0.1.4" @@ -4489,11 +3790,6 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -ebnf-parser@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" - integrity sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE= - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -4655,10 +3951,10 @@ electron-store@^6.0.0: conf "^7.1.2" type-fest "^0.16.0" -electron-to-chromium@^1.3.649: - version "1.3.707" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.707.tgz#71386d0ceca6727835c33ba31f507f6824d18c35" - integrity sha512-BqddgxNPrcWnbDdJw7SzXVzPmp+oiyjVrc7tkQVaznPGSS9SKZatw6qxoP857M+HbOyyqJQwYQtsuFIMSTNSZA== +electron-to-chromium@^1.3.723: + version "1.3.736" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052" + integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig== electron@^9.4.0: version "9.4.4" @@ -4714,10 +4010,10 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" - integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -4731,7 +4027,7 @@ enhanced-resolve@~0.9.0: memory-fs "^0.2.0" tapable "^0.1.8" -enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -4754,9 +4050,9 @@ env-paths@^2.2.0: integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== envinfo@^7.7.3: - version "7.7.4" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" - integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== errlop@^4.0.0: version "4.1.0" @@ -4770,7 +4066,7 @@ errno@^0.1.3: dependencies: prr "~1.0.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -4845,39 +4141,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@1.3.x: - version "1.3.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" - integrity sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM= - dependencies: - esprima "~1.1.1" - estraverse "~1.5.0" - esutils "~1.0.0" - optionalDependencies: - source-map "~0.1.33" - -escodegen@^1.11.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 "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - eslint-config-airbnb-base@^14.2.1: version "14.2.1" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" @@ -4942,12 +4210,12 @@ eslint-loader@^4.0.2: object-hash "^2.0.3" schema-utils "^2.6.5" -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== +eslint-module-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" + integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== dependencies: - debug "^2.6.9" + debug "^3.2.7" pkg-dir "^2.0.0" eslint-plugin-compat@^3.9.0: @@ -4965,22 +4233,24 @@ eslint-plugin-compat@^3.9.0: semver "7.3.2" eslint-plugin-import@^2.8.0: - version "2.22.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" - integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + version "2.23.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.3.tgz#8a1b073289fff03c4af0f04b6df956b7d463e191" + integrity sha512-wDxdYbSB55F7T5CC7ucDjY641VvKmlRwT0Vxh7PkY1mI4rclVRFWYfsrjDgZvwYYDZ5ee0ZtfFKXowWjqvEoRQ== dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" debug "^2.6.9" - doctrine "1.5.0" + doctrine "^2.1.0" eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.0" + eslint-module-utils "^2.6.1" + find-up "^2.0.0" has "^1.0.3" + is-core-module "^2.4.0" minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" + object.values "^1.1.3" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" tsconfig-paths "^3.9.0" eslint-plugin-jsx-a11y@6.4.1: @@ -5011,9 +4281,9 @@ eslint-plugin-react-hooks@^4.2.0: integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== eslint-plugin-react@^7.6.1: - version "7.23.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz#f1a2e844c0d1967c822388204a8bc4dee8415b11" - integrity sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ== + version "7.23.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494" + integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== dependencies: array-includes "^3.1.3" array.prototype.flatmap "^1.2.4" @@ -5053,30 +4323,32 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^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-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.23.0: - version "7.23.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.23.0.tgz#8d029d252f6e8cf45894b4bee08f5493f8e94325" - integrity sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q== + version "7.27.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7" + integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.0" + "@eslint/eslintrc" "^0.4.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" + escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" @@ -5088,7 +4360,7 @@ eslint@^7.23.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -5097,7 +4369,7 @@ eslint@^7.23.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.4" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -5110,12 +4382,7 @@ espree@^7.3.0, espree@^7.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" -esprima@1.1.x, esprima@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" - integrity sha1-W28VR/TRAuZw4UDFCb5ncdautUk= - -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -5134,7 +4401,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -5144,21 +4411,11 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== -estraverse@~1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" - integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= - esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -esutils@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" - integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= - etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" @@ -5194,11 +4451,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -5212,22 +4464,6 @@ 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" - execa@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" @@ -5250,11 +4486,6 @@ execall@^2.0.0: dependencies: clone-regexp "^2.1.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -5268,18 +4499,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -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" - express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -5370,7 +4589,7 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 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== @@ -5392,7 +4611,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -5423,13 +4642,6 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - 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" @@ -5553,9 +4765,9 @@ flatted@^3.1.0: integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== follow-redirects@^1.0.0: - version "1.13.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" - integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== font-awesome@^4.7.0: version "4.7.0" @@ -5603,6 +4815,15 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -5642,11 +4863,6 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - ftp@^0.3.10: version "0.3.10" resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" @@ -5689,11 +4905,6 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -5703,11 +4914,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -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-stdin@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" @@ -5720,7 +4926,7 @@ get-stream@^4.0.0, get-stream@^4.1.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -5728,9 +4934,9 @@ get-stream@^5.0.0, get-stream@^5.1.0: pump "^3.0.0" get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" @@ -5769,10 +4975,10 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.3, 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== +glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -5840,9 +5046,9 @@ globals@^12.1.0: type-fest "^0.8.1" globals@^13.6.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795" - integrity sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA== + version "13.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" + integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== dependencies: type-fest "^0.20.2" @@ -5858,7 +5064,7 @@ globalthis@^1.0.1: dependencies: define-properties "^1.1.3" -globby@^11.0.1, globby@^11.0.2: +globby@^11.0.1, globby@^11.0.3: version "11.0.3" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== @@ -5927,11 +5133,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -5974,11 +5175,6 @@ has-bigints@^1.0.1: resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -6113,18 +5309,10 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react- dependencies: react-is "^16.7.0" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^3.0.8: version "3.0.8" @@ -6150,23 +5338,11 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== -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-minifier-terser@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" @@ -6293,11 +5469,6 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -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== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -6313,10 +5484,10 @@ hyphenate-style-name@^1.0.3: resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== -iconv-corefoundation@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.5.tgz#90596d444a579aeb109f5ca113f6bb665a41be2b" - integrity sha512-hI4m7udfV04OcjleOmDaR4gwXnH4xumxN+ZmywHDiKf2CmAzsT9SVYe7Y4pdnQbyZfXwAQyrElykbE5PrPRfmQ== +iconv-corefoundation@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a" + integrity sha512-1NBe55C75bKGZaY9UHxvXG3G0gEp0ziht7quhuFrW3SPgZDw9HI6qvYXRSV5M/Eupyu8ljuJ6Cba+ec15PZ4Xw== dependencies: cli-truncate "^1.1.0" node-addon-api "^1.6.3" @@ -6329,9 +5500,9 @@ iconv-lite@0.4.24: 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== + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -6421,11 +5592,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== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -6558,9 +5724,9 @@ is-arrayish@^0.2.1: integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== is-binary-path@^1.0.0: version "1.0.1" @@ -6570,11 +5736,11 @@ is-binary-path@^1.0.0: binary-extensions "^1.0.0" is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" is-buffer@^1.1.5: version "1.1.6" @@ -6598,10 +5764,10 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== +is-core-module@^2.2.0, is-core-module@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== dependencies: has "^1.0.3" @@ -6620,9 +5786,9 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== is-decimal@^1.0.0: version "1.0.4" @@ -6647,11 +5813,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - 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" @@ -6669,11 +5830,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -6691,11 +5847,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -6739,9 +5890,9 @@ is-npm@^5.0.0: integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== is-number@^3.0.0: version "3.0.0" @@ -6802,12 +5953,12 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: isobject "^3.0.1" is-regex@^1.0.4, is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.1" + has-symbols "^1.0.2" is-regexp@^2.0.0: version "2.1.0" @@ -6825,16 +5976,16 @@ is-stream@^2.0.0: 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" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" + has-symbols "^1.0.2" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -6856,13 +6007,6 @@ 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" - is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -6905,47 +6049,6 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -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@^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@^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@^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@^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: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - istextorbinary@^5.12.0: version "5.12.0" resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-5.12.0.tgz#2f84777838668fdf524c305a2363d6057aaeec84" @@ -6965,361 +6068,6 @@ jake@^10.6.1: filelist "^1.0.1" minimatch "^3.0.4" -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@^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@^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@^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@^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@^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@^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@^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@^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@^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@^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-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@^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@^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@^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.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^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@^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@^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" - read-pkg-up "^7.0.1" - realpath-native "^2.0.0" - resolve "^1.17.0" - slash "^3.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@^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@^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@^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-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@^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@^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@^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-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -7329,37 +6077,6 @@ jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^25.1.0: - 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" - -jison-lex@0.3.x: - version "0.3.4" - resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" - integrity sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U= - dependencies: - lex-parser "0.1.x" - nomnom "1.5.2" - -jison@^0.4.18: - version "0.4.18" - resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502" - integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w== - dependencies: - JSONSelect "0.4.0" - cjson "0.3.0" - ebnf-parser "0.1.10" - escodegen "1.3.x" - esprima "1.1.x" - jison-lex "0.3.x" - lex-parser "~0.1.3" - nomnom "1.5.2" - jmespath@0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" @@ -7384,9 +6101,9 @@ js-yaml@^3.13.1: esprima "^4.0.0" js-yaml@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" @@ -7395,43 +6112,6 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -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@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -7492,11 +6172,6 @@ json3@^3.3.3: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -7527,14 +6202,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonlint@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a" - integrity sha1-iKpGvCiaesk7tGyuLVihh6m7SUo= - dependencies: - JSV ">= 4.0.x" - nomnom ">= 1.5.x" - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -7670,11 +6337,6 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - known-css-properties@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.21.0.tgz#15fbd0bbb83447f3ce09d8af247ed47c68ede80d" @@ -7699,15 +6361,10 @@ latest-version@^5.1.0: dependencies: package-json "^6.3.0" -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +lazy-val@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== levn@^0.4.1: version "0.4.1" @@ -7717,39 +6374,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lex-parser@0.1.x, lex-parser@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" - integrity sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA= - -lex@^1.7.9: - version "1.7.9" - resolved "https://registry.yarnpkg.com/lex/-/lex-1.7.9.tgz#5d5636ccef574348362938b79a47f0eed8ed0d43" - integrity sha1-XVY2zO9XQ0g2KTi3mkfw7tjtDUM= - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -7826,11 +6455,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - lodash.isequalwith@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isequalwith/-/lodash.isequalwith-4.4.0.tgz#266726ddd528f854f21f4ea98a065606e0fbc6b0" @@ -7841,17 +6465,17 @@ lodash.memoize@4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7863,7 +6487,7 @@ log-symbols@^2.0.0, log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-symbols@^4.0.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -7876,13 +6500,6 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -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" - longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" @@ -7950,13 +6567,6 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -7968,9 +6578,9 @@ map-obj@^1.0.0: integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-obj@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.0.tgz#0e8bc823e2aaca8a0942567d12ed14f389eec153" - integrity sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ== + version "4.2.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" + integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== map-visit@^1.0.0: version "1.0.0" @@ -8116,13 +6726,13 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== dependencies: braces "^3.0.1" - picomatch "^2.0.5" + picomatch "^2.2.3" miller-rabin@^4.0.0: version "4.0.1" @@ -8188,9 +6798,9 @@ mini-create-react-context@^0.4.0: tiny-warning "^1.0.3" mini-css-extract-plugin@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.4.0.tgz#c8e571c4b6d63afa56c47260343adf623349c473" - integrity sha512-DyQr5DhXXARKZoc4kwvCvD95kh69dUupfuKOmBUqZ4kBTmRaRZcU32lYu3cLd6nEGXhQ1l7LzZ3F/CjItaY6VQ== + version "1.6.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz#b4db2525af2624899ed64a23b0016e0036411893" + integrity sha512-nPFKI7NSy6uONUo9yn2hIfb9vyYvkFu95qki0e21DQ9uaqNKDP15DGpK0KnV6wDroWxPHtExrdEwx/yDQ8nVRw== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -8222,7 +6832,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -8295,10 +6905,10 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.22: - version "3.1.22" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" - integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== nanomatch@^1.2.9: version "1.2.13" @@ -8346,9 +6956,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^2.11.0: - version "2.21.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.21.0.tgz#c2dc9ebad6f4f53d6ea9b531e7b8faad81041d48" - integrity sha512-smhrivuPqEM3H5LmnY3KU6HfYv0u4QklgAxfFyRNujKUzbUcYZ+Jc2EhukB9SRcD2VpqhxM7n/MIcp1Ua1/JMg== + version "2.26.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.26.0.tgz#355d5d4bc603e856f74197adbf3f5117a396ba40" + integrity sha512-ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ== dependencies: semver "^5.4.1" @@ -8379,11 +6989,6 @@ node-gyp@^6.0.1: tar "^4.4.12" which "^1.3.1" -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - "node-libs-browser@^1.0.0 || ^2.0.0": version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" @@ -8418,21 +7023,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^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.70: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +node-releases@^1.1.71: + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== node-ssh@^4.2.0: version "4.2.3" @@ -8444,22 +7038,6 @@ node-ssh@^4.2.0: shell-escape "^0.2.0" ssh2 "^0.5.0" -nomnom@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" - integrity sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8= - dependencies: - colors "0.5.x" - underscore "1.1.x" - -"nomnom@>= 1.5.x": - version "1.8.1" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= - dependencies: - chalk "~0.4.0" - underscore "~1.6.0" - nopt@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -8511,9 +7089,9 @@ normalize-selector@^0.2.0: integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== npm-conf@^1.1.3: version "1.1.3" @@ -8545,7 +7123,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -8579,11 +7157,6 @@ 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.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" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -8609,9 +7182,9 @@ object-hash@^2.0.3: integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== object-is@^1.0.1: version "1.1.5" @@ -8670,7 +7243,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.1, object.values@^1.1.3: +object.values@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== @@ -8730,18 +7303,6 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -8783,7 +7344,7 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: +os-tmpdir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -8801,21 +7362,11 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - 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" @@ -8933,13 +7484,6 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -8958,11 +7502,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -9006,7 +7545,7 @@ path-extra@^1.0.2: resolved "https://registry.yarnpkg.com/path-extra/-/path-extra-1.0.3.tgz#7c112189a6e50d595790e7ad2037e44e410c1166" integrity sha1-fBEhiablDVlXkOetIDfkTkEMEWY= -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -9043,13 +7582,6 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -9062,15 +7594,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - 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== + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -9088,15 +7615,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.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== - -picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pidtree@^0.3.0: version "0.3.1" @@ -9130,7 +7652,7 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pirates@^4.0.0, pirates@^4.0.1: +pirates@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== @@ -9158,6 +7680,13 @@ pkg-dir@^4.1.0, 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" + pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -9181,11 +7710,6 @@ plur@^2.1.2: dependencies: irregular-plurals "^1.0.0" -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - popper.js@1.16.1-lts: version "1.16.1-lts" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" @@ -9286,14 +7810,12 @@ postcss-scss@^3.0.2: dependencies: postcss "^8.2.7" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" util-deprecate "^1.0.2" postcss-sorting@^5.0.1: @@ -9330,25 +7852,20 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0. source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.1.2, postcss@^8.2.7, postcss@^8.2.8: - version "8.2.9" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.9.tgz#fd95ff37b5cee55c409b3fdd237296ab4096fba3" - integrity sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q== +postcss@^8.1.2, postcss@^8.2.15, postcss@^8.2.7: + version "8.3.0" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f" + integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ== dependencies: colorette "^1.2.2" - nanoid "^3.1.22" - source-map "^0.6.1" + nanoid "^3.1.23" + source-map-js "^0.6.2" prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -9362,16 +7879,6 @@ pretty-error@^2.1.1: lodash "^4.17.20" renderkid "^2.0.4" -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" - prismjs@^1.22.0, prismjs@~1.23.0: version "1.23.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" @@ -9379,11 +7886,6 @@ prismjs@^1.22.0, prismjs@~1.23.0: optionalDependencies: clipboard "^2.0.0" -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== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -9399,14 +7901,6 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prompts@^2.0.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" - integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -9591,7 +8085,7 @@ react-ga@^3.3.0: resolved "https://registry.yarnpkg.com/react-ga/-/react-ga-3.3.0.tgz#c91f407198adcb3b49e2bc5c12b3fe460039b3ca" integrity sha512-o8RScHj6Lb8cwy3GMrVH6NJvL+y0zpJvKtc0+wmH7Bt23rszJmnqEQxRbyrqUzk9DTJIHoP42bfO5rswC9SWBQ== -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -9609,9 +8103,9 @@ react-mathjax@^1.0.1: load-script "^1.0.0" react-redux@^7.1.0: - version "7.2.3" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.3.tgz#4c084618600bb199012687da9e42123cca3f0be9" - integrity sha512-ZhAmQ1lrK+Pyi0ZXNMUZuYxYAZd59wFuVDGUt536kSGdD0ya9Q7BfsE95E3TsFLE3kOSFp5m6G5qbatE+Ic1+w== + version "7.2.4" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.4.tgz#1ebb474032b72d806de2e0519cd07761e222e225" + integrity sha512-hOQ5eOSkEJEXdpIKbnRyl04LhaWabkDPV+Ix97wqQX3T3d2NQ8DUblNXXtNMavc7DpswyQM6xfaN4HQDKNY2JA== dependencies: "@babel/runtime" "^7.12.1" "@types/react-redux" "^7.1.16" @@ -9695,13 +8189,13 @@ read-config-file@6.0.0: json5 "^2.1.2" lazy-val "^1.0.4" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" - read-pkg "^2.0.0" + read-pkg "^3.0.0" read-pkg-up@^7.0.1: version "7.0.1" @@ -9712,15 +8206,6 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -9781,11 +8266,6 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -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== - rechoir@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" @@ -9824,12 +8304,11 @@ redux-saga@^1.0.5: "@redux-saga/core" "^1.1.3" redux@^4.0.0, redux@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + version "4.1.0" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.0.tgz#eb049679f2f523c379f1aff345c8612f294c88d4" + integrity sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g== dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" + "@babel/runtime" "^7.9.2" refractor@^3.2.0: version "3.3.1" @@ -9973,38 +8452,15 @@ renderkid@^2.0.4: strip-ansi "^3.0.0" repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.0.0, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - request@^2.87.0, request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" @@ -10097,12 +8553,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.4.0, resolve@^1.9.0: +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.4.0, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -10155,7 +8606,7 @@ rimraf@^2.5.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -10182,11 +8633,6 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" -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-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -10223,21 +8669,6 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - sanitize-filename@^1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" @@ -10255,13 +8686,6 @@ sax@>=0.6.0, 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" - sb-promisify@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/sb-promisify/-/sb-promisify-1.3.0.tgz#3af6f1fa9ffc833f14de86916eefc1f559b1b051" @@ -10330,9 +8754,9 @@ select@^1.1.2: integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= selfsigned@^1.10.8: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== dependencies: node-forge "^0.10.0" @@ -10368,7 +8792,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -10510,11 +8934,6 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -10550,16 +8969,6 @@ sirv@^1.0.7: mime "^2.3.1" totalist "^1.0.0" -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -10642,6 +9051,11 @@ source-list-map@^2.0.0, source-list-map@^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-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + 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" @@ -10653,14 +9067,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.3, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.3, source-map-support@~0.5.12, source-map-support@~0.5.19: 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== @@ -10673,7 +9080,7 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -10683,18 +9090,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, 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, source-map@~0.7.2: +source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -source-map@~0.1.33: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= - dependencies: - amdefine ">=0.0.4" - space-separated-tokens@^1.0.0: version "1.1.5" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" @@ -10731,9 +9131,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== spdy-transport@^3.0.0: version "3.0.0" @@ -10825,13 +9225,6 @@ stack-generator@^2.0.3: dependencies: stackframe "^1.1.1" -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - stackframe@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" @@ -10860,11 +9253,6 @@ stdin@^0.0.1: resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e" integrity sha1-0wQZgarsPf28d6GzjWNy449ftx4= -stealthy-require@^1.1.1: - version "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" @@ -10889,14 +9277,6 @@ streamsearch@~0.1.2: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= -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-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -11017,21 +9397,11 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= - strip-bom@^3.0.0: version "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" @@ -11078,8 +9448,8 @@ style-search@^0.1.0: integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= "stylefmt@git+https://github.com/ronilaukkarinen/stylefmt.git": - version "6.1.6" - resolved "git+https://github.com/ronilaukkarinen/stylefmt.git#192d4b2f920beda27db6bf00263a9b0d74a10ffd" + version "6.1.7" + resolved "git+https://github.com/ronilaukkarinen/stylefmt.git#44dc8a239b5991458f8e01f551ceb1c1d7db4bb1" dependencies: colorette "^1.2.1" css-color-list "^0.0.2" @@ -11116,16 +9486,16 @@ stylelint-order@^4.1.0: postcss "^7.0.31" postcss-sorting "^5.0.1" -stylelint@^13.2.0, stylelint@^13.7.2: - version "13.12.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.12.0.tgz#cceb922be0d0c7b7b6926271eea2b90cb924733e" - integrity sha512-P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw== +stylelint@^13.13.1, stylelint@^13.7.2: + version "13.13.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.13.1.tgz#fca9c9f5de7990ab26a00f167b8978f083a18f3c" + integrity sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ== dependencies: "@stylelint/postcss-css-in-js" "^0.37.2" "@stylelint/postcss-markdown" "^0.36.2" autoprefixer "^9.8.6" - balanced-match "^1.0.0" - chalk "^4.1.0" + balanced-match "^2.0.0" + chalk "^4.1.1" cosmiconfig "^7.0.0" debug "^4.3.1" execall "^2.0.0" @@ -11134,7 +9504,7 @@ stylelint@^13.2.0, stylelint@^13.7.2: file-entry-cache "^6.0.1" get-stdin "^8.0.0" global-modules "^2.0.0" - globby "^11.0.2" + globby "^11.0.3" globjoin "^0.1.4" html-tags "^3.1.0" ignore "^5.1.8" @@ -11142,10 +9512,10 @@ stylelint@^13.2.0, stylelint@^13.7.2: imurmurhash "^0.1.4" known-css-properties "^0.21.0" lodash "^4.17.21" - log-symbols "^4.0.0" + log-symbols "^4.1.0" mathml-tag-names "^2.1.3" meow "^9.0.0" - micromatch "^4.0.2" + micromatch "^4.0.4" normalize-selector "^0.2.0" postcss "^7.0.35" postcss-html "^0.36.0" @@ -11155,7 +9525,7 @@ stylelint@^13.2.0, stylelint@^13.7.2: postcss-safe-parser "^4.0.2" postcss-sass "^0.4.4" postcss-scss "^2.1.1" - postcss-selector-parser "^6.0.4" + postcss-selector-parser "^6.0.5" postcss-syntax "^0.36.2" postcss-value-parser "^4.1.0" resolve-from "^5.0.0" @@ -11166,8 +9536,8 @@ stylelint@^13.2.0, stylelint@^13.7.2: style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" - table "^6.0.7" - v8-compile-cache "^2.2.0" + table "^6.6.0" + v8-compile-cache "^2.3.0" write-file-atomic "^3.0.3" sugarss@^2.0.0: @@ -11210,43 +9580,27 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= -symbol-observable@1.2.0, symbol-observable@^1.2.0: +symbol-observable@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -table@^6.0.4, table@^6.0.7: - version "6.0.9" - resolved "https://registry.yarnpkg.com/table/-/table-6.0.9.tgz#790a12bf1e09b87b30e60419bafd6a1fd85536fb" - integrity sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ== +table@^6.0.9, table@^6.6.0: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: ajv "^8.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" lodash.clonedeep "^4.5.0" - lodash.flatten "^4.4.0" lodash.truncate "^4.4.2" slice-ansi "^4.0.0" string-width "^4.2.0" + strip-ansi "^6.0.0" tapable@^0.1.8: version "0.1.10" @@ -11272,32 +9626,24 @@ tar@^4.4.12: yallist "^3.0.3" temp-file@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" - integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g== + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== dependencies: async-exit-hook "^2.0.1" - fs-extra "^8.1.0" - -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" + fs-extra "^10.0.0" terser-webpack-plugin@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" - integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== + version "5.1.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.2.tgz#51d295eb7cc56785a67a372575fdc46e42d5c20c" + integrity sha512-6QhDaAiVHIQr5Ab3XUWZyDmrIPCHMiqJVljMF91YKyqwKkL5QHnYMkrMBy96v9Z7ev1hGhSEw1HQZc2p/s5Z8Q== dependencies: jest-worker "^26.6.2" p-limit "^3.1.0" schema-utils "^3.0.0" serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^5.5.1" + terser "^5.7.0" terser@^4.6.3: version "4.8.0" @@ -11308,24 +9654,15 @@ terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.5.1: - version "5.6.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== +terser@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== dependencies: commander "^2.20.0" source-map "~0.7.2" source-map-support "~0.5.19" -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-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -11336,11 +9673,6 @@ textextensions@^5.11.0: resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-5.12.0.tgz#b908120b5c1bd4bb9eba41423d75b176011ab68a" integrity sha512-IYogUDaP65IXboCiPPC0jTLLBzYlhhw2Y4b0a2trPgbHNGGGEfuHE6tds+yDcCf4mpNDaGISFzwSSezcXt+d6w== -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== - thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -11368,11 +9700,6 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= - to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -11435,7 +9762,7 @@ totalist@^1.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -tough-cookie@^2.3.3, tough-cookie@~2.5.0: +tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -11443,32 +9770,11 @@ tough-cookie@^2.3.3, 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" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - 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-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - trough@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" @@ -11530,18 +9836,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -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== - type-fest@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" @@ -11562,11 +9856,6 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -11626,16 +9915,6 @@ unbox-primitive@^1.0.0: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -underscore@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" - integrity sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA= - -underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -11681,11 +9960,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -11861,20 +10135,11 @@ uuid@^3.3.2, uuid@^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, v8-compile-cache@^2.2.0: +v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0, v8-compile-cache@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -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: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -11937,33 +10202,10 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -w3c-hr-time@^1.0.1: - version "1.0.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: - 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" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - watchpack@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -11982,15 +10224,10 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -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== - webpack-bundle-analyzer@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.0.tgz#74013106e7e2b07cbd64f3a5ae847f7e814802c7" - integrity sha512-9DhNa+aXpqdHk8LkLPTBU/dMfl84Y+WE2+KnfI6rSpNRNVKa0VGLjPd2pjFubDeqnWmulFggxmWBxhfJXZnR0g== + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" @@ -12003,17 +10240,16 @@ webpack-bundle-analyzer@^4.4.0: ws "^7.3.1" webpack-cli@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.6.0.tgz#27ae86bfaec0cf393fcfd58abdc5a229ad32fd16" - integrity sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA== + version "4.7.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz#3195a777f1f802ecda732f6c95d24c0004bc5a35" + integrity sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.2" - "@webpack-cli/info" "^1.2.3" - "@webpack-cli/serve" "^1.3.1" + "@webpack-cli/configtest" "^1.0.3" + "@webpack-cli/info" "^1.2.4" + "@webpack-cli/serve" "^1.4.0" colorette "^1.2.1" commander "^7.0.0" - enquirer "^2.3.6" execa "^5.0.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" @@ -12105,19 +10341,19 @@ webpack-sources@^2.1.1: source-map "^0.6.1" webpack@^5.30.0: - version "5.30.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.30.0.tgz#07d87c182a060e0c2491062f3dc0edc85a29d884" - integrity sha512-Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA== + version "5.37.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.37.1.tgz#2deb5acd350583c1ab9338471f323381b0b0c14b" + integrity sha512-btZjGy/hSjCAAVHw+cKG+L0M+rstlyxbO2C+BOTaQ5/XAnxkDrP5sVbqWhXgo4pL3X2dcOib6rqCP20Zr9PLow== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.46" + "@types/estree" "^0.0.47" "@webassemblyjs/ast" "1.11.0" "@webassemblyjs/wasm-edit" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.0.4" + acorn "^8.2.1" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.7.0" + enhanced-resolve "^5.8.0" es-module-lexer "^0.4.0" eslint-scope "^5.1.1" events "^3.2.0" @@ -12147,32 +10383,11 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-encoding@^1.0.1, 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-fetch@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== -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== - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -12196,7 +10411,7 @@ which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -12222,7 +10437,7 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -12236,15 +10451,6 @@ 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" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -12276,16 +10482,11 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.0.0: +ws@^7.3.1: version "7.4.5" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== -ws@^7.3.1: - version "7.4.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" - integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== - x-path@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/x-path/-/x-path-0.0.2.tgz#294d076bb97a7706cc070bbb2a6fd8c54df67b12" @@ -12298,11 +10499,6 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - xml2js@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" @@ -12321,11 +10517,6 @@ xmlbuilder@^9.0.7, xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= -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== - xmldom@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" @@ -12342,14 +10533,14 @@ xtend@^4.0.0: integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: - version "5.0.6" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.6.tgz#8236b05cfc5af6a409f41326a4847c68989bb04f" - integrity sha512-PlVX4Y0lDTN6E2V4ES2tEdyvXkeKzxa8c/vo0pxPr/TqbztddTP0yn7zZylIyiAuxerqj0Q5GhpJ1YJCP8LaZQ== + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" @@ -12387,14 +10578,6 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.7" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" @@ -12433,23 +10616,6 @@ yargs@^14.2.0: y18n "^4.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" - yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From c9afdf1ced0882451e3934abb0c14c7a682d3c1d Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 28 May 2021 11:25:53 -0400 Subject: [PATCH 17/66] :arrow_up: Upgrade material-ui @^4.11.0 --- app/containers/pipeline/parts/PipelinePart.jsx | 18 +++++++++--------- app/containers/pipeline/parts/RoiPaths.jsx | 3 --- c-pac/resources/pipeline/config.js | 2 +- package.json | 4 ++-- yarn.lock | 4 ++-- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index cc3b0938..45eca5dd 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -3,9 +3,9 @@ import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid' import Paper from '@material-ui/core/Paper'; -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; +import Accordion from '@material-ui/core/Accordion'; +import AccordionDetails from '@material-ui/core/AccordionDetails'; +import AccordionSummary from '@material-ui/core/AccordionSummary'; import MenuItem from '@material-ui/core/MenuItem'; import TextField from '@material-ui/core/TextField'; import Switch from '@material-ui/core/Switch'; @@ -86,18 +86,18 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= switch (Immutable.Map.isMap(entry[1])) { case true: return ( - - + + { formatLabel(entry[0]) } - - + + { returnComponent(entry[1], classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } - - + + ) case false: const regex = new RegExp(`^\s*{entry[0]}`); diff --git a/app/containers/pipeline/parts/RoiPaths.jsx b/app/containers/pipeline/parts/RoiPaths.jsx index e0097ea9..fcea4ed7 100644 --- a/app/containers/pipeline/parts/RoiPaths.jsx +++ b/app/containers/pipeline/parts/RoiPaths.jsx @@ -3,9 +3,6 @@ import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid' import Paper from '@material-ui/core/Paper'; -import ExpansionPanel from '@material-ui/core/ExpansionPanel'; -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'; -import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'; import MenuItem from '@material-ui/core/MenuItem'; import TextField from '@material-ui/core/TextField'; import Switch from '@material-ui/core/Switch'; diff --git a/c-pac/resources/pipeline/config.js b/c-pac/resources/pipeline/config.js index 225d18ec..c544f7d6 100644 --- a/c-pac/resources/pipeline/config.js +++ b/c-pac/resources/pipeline/config.js @@ -1,5 +1,5 @@ export default { - id: 'default', + id: 'default-1.6.0', name: 'Default', versions: { 'default': { diff --git a/package.json b/package.json index c12194ba..ab70a095 100644 --- a/package.json +++ b/package.json @@ -145,8 +145,8 @@ "@bugsnag/browser": "*", "@bugsnag/js": "^5.1.0", "@bugsnag/plugin-react": "^5.1.0", - "@material-ui/core": "^4.2.1", - "@material-ui/icons": "^4.2.1", + "@material-ui/core": "^4.11.0", + "@material-ui/icons": "^4.11.0", "@material-ui/lab": "^4.0.0-alpha.21", "clsx": "^1.0.4", "connected-react-router": "^6.5.2", diff --git a/yarn.lock b/yarn.lock index 090a18dc..dff7eb0c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1233,7 +1233,7 @@ dependencies: cross-spawn "^7.0.1" -"@material-ui/core@^4.2.1": +"@material-ui/core@^4.11.0": version "4.11.4" resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.4.tgz#4fb9fe5dec5dcf780b687e3a40cff78b2b9640a4" integrity sha512-oqb+lJ2Dl9HXI9orc6/aN8ZIAMkeThufA5iZELf2LQeBn2NtjVilF5D2w7e9RpntAzDb4jK5DsVhkfOvFY/8fg== @@ -1251,7 +1251,7 @@ react-is "^16.8.0 || ^17.0.0" react-transition-group "^4.4.0" -"@material-ui/icons@^4.2.1": +"@material-ui/icons@^4.11.0": version "4.11.2" resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.11.2.tgz#b3a7353266519cd743b6461ae9fdfcb1b25eb4c5" integrity sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ== From bb029a914c20c6834e75e81fdc216cec4103334f Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 23 Jun 2021 16:35:37 -0400 Subject: [PATCH 18/66] :alien: Replace deprecated lifecycle Ref https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops --- app/containers/PipelinePage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index eec9b187..f31b1772 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -84,7 +84,7 @@ class PipelinePage extends Component { } } - componentWillReceiveProps(nextProps) { + UNSAFE_componentWillReceiveProps(nextProps) { if (!nextProps.pipeline.get('versions').keySeq().equals(this.props.pipeline.get('versions').keySeq())) { const pipeline = nextProps.pipeline const versions = pipeline.get('versions') From 5d2d416cdfb6eebbb05e5dcfc33a57d808013cb9 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 23 Jun 2021 16:54:00 -0400 Subject: [PATCH 19/66] :lock: Replace UNSAFE_componentWillReceiveProps with componentDidUpdate Ref https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops --- app/containers/PipelinePage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index f31b1772..0b2b955f 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -84,7 +84,7 @@ class PipelinePage extends Component { } } - UNSAFE_componentWillReceiveProps(nextProps) { + componentDidUpdate(nextProps) { if (!nextProps.pipeline.get('versions').keySeq().equals(this.props.pipeline.get('versions').keySeq())) { const pipeline = nextProps.pipeline const versions = pipeline.get('versions') From aaf4f6f92ce74b97165650f55c4af61256e0cc61 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 24 Jun 2021 16:46:22 -0400 Subject: [PATCH 20/66] :bug: Fix handling Arrays in YAML Boolean function --- c-pac/resources/pipeline/yaml.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/c-pac/resources/pipeline/yaml.js b/c-pac/resources/pipeline/yaml.js index 61d56589..386dda4f 100644 --- a/c-pac/resources/pipeline/yaml.js +++ b/c-pac/resources/pipeline/yaml.js @@ -76,7 +76,7 @@ export default (config) => { * @returns {(Object|Array)} Returns the YAML contents as JSON. */ const loadYaml = (yamlString) => { - let yamlJS = yaml.load(yamlString); + let yamlJS = yaml.safeLoad(yamlString); return updateBooleansToJSON(yamlJS); }; @@ -97,13 +97,14 @@ const updateBooleansToJSON = (yamlObj) => { if (yamlObj != null) { switch (typeof(yamlObj)) { case 'object': + if (Array.isArray(yamlObj)) { + return yamlObj.map(item => updateBooleansToJSON(item)); + }; return Object.assign({}, ...Object.entries(yamlObj).map(entry => { let returnObj = {}; returnObj[entry[0]] = updateBooleansToJSON(entry[1]) return returnObj; })); - case 'array': - return yamlObj.map(item => updateBooleans(item)); case 'string': switch (yamlObj) { case 'On': From 1247a834fe0f515f3956cc4f8386b5ed3fa55e15 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 25 Jun 2021 11:59:44 -0400 Subject: [PATCH 21/66] :recycle: Style dynamic lists --- .../pipeline/parts/PipelinePart.jsx | 230 +++++++++++------- 1 file changed, 144 insertions(+), 86 deletions(-) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 45eca5dd..547dad88 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -11,6 +11,13 @@ import TextField from '@material-ui/core/TextField'; import Switch from '@material-ui/core/Switch'; import InputAdornment from '@material-ui/core/InputAdornment'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import Divider from '@material-ui/core/Divider'; +import IconButton from '@material-ui/core/IconButton'; + import FormGroup from '@material-ui/core/FormGroup'; import FormLabel from '@material-ui/core/FormLabel'; import FormControl from '@material-ui/core/FormControl'; @@ -29,6 +36,13 @@ import Help from 'components/Help' import FormControlLabelled from 'components/FormControlLabelled' import Immutable from 'immutable'; +import { + AddIcon, + EditIcon, + DeleteIcon, + DuplicateIcon +} from 'components/icons'; + import RoiPaths from './RoiPaths'; class PipelineListPart extends Component { @@ -83,95 +97,139 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= ) default: // all others - switch (Immutable.Map.isMap(entry[1])) { - case true: - return ( - - - - { formatLabel(entry[0]) } - - - - - { returnComponent(entry[1], classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } - - - - ) - case false: - const regex = new RegExp(`^\s*{entry[0]}`); - const label = formatLabel(entry[0]); - const name = [...parents, entry[0]].join('.'); - switch (typeof(entry[1])) { - case 'boolean': - return ( - - - - - + + + {label} + + + {entry[1].map((item, i) => { + return + + + () => this.handleEdit(regi))(i)}> + + + () => this.handleDuplicate(regi))(i)}> + + + () => this.handleDelete(regi))(i)}> + + + + + })} + + + + this.handleNew()}> + + + + + + + + ) + } else { + switch (Immutable.Map.isMap(entry[1])) { + case true: + return ( + + + + { formatLabel(entry[0]) } + + + + + { returnComponent(entry[1], classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } + + + + ) + case false: + const regex = new RegExp(`^\s*{entry[0]}`); + const label = formatLabel(entry[0]); + const name = [...parents, entry[0]].join('.'); + switch (typeof(entry[1])) { + case 'boolean': + return ( + + + + + + + + + + ) + case 'string': + return ( + + + + -
- - - - ) - case 'string': - return ( - - - - - - - - ) - case 'number': - return ( - - - - - - - - ) - default: - // console.log(typeof(entry[1])) - return entry[1] - } - default: - return ( - <>{ entry[1] } - ) + + + + ) + case 'number': + return ( + + + + + + + + ) + default: + return entry[1] + } + default: + return ( + <>{ entry[1] } + ) + } } } } ) } From bb9105b5f143290b1c04eda871cd756b7f4cbfbc Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 30 Jun 2021 09:50:57 -0400 Subject: [PATCH 22/66] :lipstick: Set ACPC and NLMF to stay in all caps --- app/containers/pipeline/parts/PipelinePart.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 547dad88..c1e4bc69 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -60,10 +60,12 @@ export const formatLabel = (label) => { ants: "ANTs", freesurfer: "FreeSurfer", fsl: "FSL", + acpc: "ACPC", aroma: "AROMA", bet: "BET", dir: "Directory", epi: "EPI", + nlmf: "NLMF", roi: "Region of Interest", tse: "Timeseries Extraction", }; // words with special casing or adjusted spelling From 47e13e6811be211c5a38a6aaa77efd019ee03088 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 30 Jun 2021 10:48:41 -0400 Subject: [PATCH 23/66] :art: Make lists of On/Off series of switches --- app/components/OnOffSwitch.jsx | 54 +++++++++++ .../pipeline/parts/PipelinePart.jsx | 94 +++++++++++-------- 2 files changed, 110 insertions(+), 38 deletions(-) create mode 100644 app/components/OnOffSwitch.jsx diff --git a/app/components/OnOffSwitch.jsx b/app/components/OnOffSwitch.jsx new file mode 100644 index 00000000..a3eca977 --- /dev/null +++ b/app/components/OnOffSwitch.jsx @@ -0,0 +1,54 @@ +import React, { Component } from 'react'; +import FormControl from '@material-ui/core/FormControl'; +import FormControlLabelled from 'components/FormControlLabelled'; +import FormGroup from '@material-ui/core/FormGroup'; +import Grid from '@material-ui/core/Grid'; +import Help from 'components/Help'; +import Switch from '@material-ui/core/Switch'; +import { withRouter } from 'react-router-dom'; + +class OnOffSwitch extends Component { + render() { + const { checked, key, label, name, onChange, regex } = this.props; + switch (regex) { + case null: + return ( + + + + + + + + ) + default: + return ( + + + + + + + + + + ) + } + } + } + +export default withRouter(OnOffSwitch); diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index c1e4bc69..82b4eee7 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import { withStyles, Typography } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' +import Grid from '@material-ui/core/Grid'; import Paper from '@material-ui/core/Paper'; import Accordion from '@material-ui/core/Accordion'; @@ -32,9 +32,10 @@ import TableHead from '@material-ui/core/TableHead'; import TableRow from '@material-ui/core/TableRow'; import TableFooter from '@material-ui/core/TableFooter'; -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' +import FormControlLabelled from 'components/FormControlLabelled'; +import Help from 'components/Help'; import Immutable from 'immutable'; +import OnOffSwitch from 'components/OnOffSwitch'; import { AddIcon, @@ -48,9 +49,9 @@ import RoiPaths from './RoiPaths'; class PipelineListPart extends Component { render() { const { classes, configuration, onChange, parents } = this.props; - return ( - <> - ) + return ( + <> + ) } } @@ -115,20 +116,47 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= {entry[1].map((item, i) => { - return - - - () => this.handleEdit(regi))(i)}> - - - () => this.handleDuplicate(regi))(i)}> - - - () => this.handleDelete(regi))(i)}> - - - - + if (!Immutable.Map.isMap(item)){ + switch (typeof(item)){ + case "boolean": // list of On/Off switches + console.log(`boolean: ${parents} ${entry[0]}`); + return ( + + + + ) + case "number": // handled same as string + case "string": + return ( + + {/* */} + + () => this.handleEdit(regi))(i)}> + + + () => this.handleDuplicate(regi))(i)}> + + + () => this.handleDelete(regi))(i)}> + + + + ) + default: + console.log(`other type: ${typeof(item)}`) + return('OTHER') + } + } else { + + { returnComponent(item, classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } + + } })} @@ -166,24 +194,14 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= switch (typeof(entry[1])) { case 'boolean': return ( - - - - - - - - - + ) case 'string': return ( From fbf3ab0da9ea1b278b5245ddfb2437bff58096c2 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 30 Jun 2021 11:01:34 -0400 Subject: [PATCH 24/66] :art: Spread same-name props in OnOffSwitches --- app/containers/pipeline/parts/PipelinePart.jsx | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 82b4eee7..ce4f87b5 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -119,15 +119,13 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= if (!Immutable.Map.isMap(item)){ switch (typeof(item)){ case "boolean": // list of On/Off switches - console.log(`boolean: ${parents} ${entry[0]}`); return ( ) @@ -149,8 +147,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= ) default: - console.log(`other type: ${typeof(item)}`) - return('OTHER') + return('!!!UNHANDLED TYPE!!!') } } else { @@ -195,12 +192,9 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= case 'boolean': return ( ) case 'string': From 4b1addeb62dc672b977ab6326860111e54726c0d Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 30 Jun 2021 11:26:49 -0400 Subject: [PATCH 25/66] :bug: Fix field name nesting --- app/containers/pipeline/parts/PipelinePart.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index ce4f87b5..5d4a543e 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -147,6 +147,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level=
) default: + console.warn(`UNHANDLED TYPE: ${typeof(item)}: ${parents}: ${$entry[0]}: ${item}`) return('!!!UNHANDLED TYPE!!!') } } else { @@ -187,7 +188,7 @@ function returnComponent(obj, classes={}, onChange=undefined, parents=[], level= case false: const regex = new RegExp(`^\s*{entry[0]}`); const label = formatLabel(entry[0]); - const name = [...parents, entry[0]].join('.'); + const name = [...parents.slice(0, level), entry[0]].join('.'); switch (typeof(entry[1])) { case 'boolean': return ( From 2c27d9477993e7cf792e4d9e38f399a6a0ef95a3 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 30 Jun 2021 12:24:40 -0400 Subject: [PATCH 26/66] :lipstick: Add 404 component --- app/app.global.css | 5 +++++ app/components/404.jsx | 27 +++++++++++++++++++++++++++ app/containers/DatasetPage.js | 4 ++-- app/containers/PipelinePage.js | 25 +++++++++++++++++-------- app/resources/treachery.jpg | Bin 0 -> 37707 bytes 5 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 app/components/404.jsx create mode 100644 app/resources/treachery.jpg diff --git a/app/app.global.css b/app/app.global.css index 9d560034..87132ff8 100644 --- a/app/app.global.css +++ b/app/app.global.css @@ -69,3 +69,8 @@ a:hover { text-decoration: none; cursor: pointer; } + +div#image_credit { + bottom: 2ex; + position: fixed; +} \ No newline at end of file diff --git a/app/components/404.jsx b/app/components/404.jsx new file mode 100644 index 00000000..3793a921 --- /dev/null +++ b/app/components/404.jsx @@ -0,0 +1,27 @@ +import React, { Component } from 'react'; +import Treachery from 'resources/treachery.jpg'; +import { withRouter } from 'react-router-dom'; + +class NotFound extends Component { + render() { + return( +
+

The requested pipeline or page could not be found.

+
+ The Treachery of Images: This is not a pipe nor a territory. +
+
+
+ Image credit: "The Treachery of Images" by Bill Smith (CC BY 2.0) alluding to The Treachery of Images by René Magritte. +
+
+
+ ) + } +} + +export default NotFound; \ No newline at end of file diff --git a/app/containers/DatasetPage.js b/app/containers/DatasetPage.js index 46b891e1..4e295690 100644 --- a/app/containers/DatasetPage.js +++ b/app/containers/DatasetPage.js @@ -13,6 +13,7 @@ import DatasetSettingsEditor from '../components/dataset/DatasetSettingsEditor'; import Header, { HeaderText, HeaderAvatar, HeaderTools } from '../components/Header'; import Content from '../components/Content'; import Box from '../components/Box'; +import NotFound from 'components/404'; import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; @@ -127,8 +128,7 @@ class DatasetPage extends Component { const { classes, dataset } = this.props if (!dataset) { - // @TODO ASH create a 404 page/component - return "404" + return } const tools = ( diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index 0b2b955f..ac96aa53 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -16,6 +16,7 @@ import PipelineEditor from 'containers/pipeline/PipelineEditor'; import Header, { HeaderText, HeaderAvatar, HeaderTools } from 'components/Header'; import Content from 'components/Content'; import Box from 'components/Box'; +import NotFound from 'components/404'; import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; @@ -112,22 +113,31 @@ class PipelinePage extends Component { return } - let configuration = this.state.configuration + let configuration = this.state.configuration; + + // console.log(values.target.name) + // console.log(values.target.value) + // console.log(values.target.name.split('.')); + // console.log(this.state.configuration.getIn(values.target.name.split('.'))); if (values.target) { - const name = values.target.name + const name = values.target.name; const value = values.target.type && values.target.type == "checkbox" ? values.target.checked : - values.target.value - - return this.handleChange([[name, fromJS(value)]]) + values.target.value; + console.log(name); + console.log(value); + return this.handleChange([[name, fromJS(value)]]); } for (let [key, value] of values) { if (typeof key == "string") { key = key.split('.') } - configuration = configuration.setIn(key, isImmutable(value) ? value : fromJS(value)) + console.log(key); + console.log(configuration.getIn(key)); + configuration = configuration.setIn(key, isImmutable(value) ? value : fromJS(value)); + console.log(configuration.getIn(key)); } this.props.pipelineVersionDirtyUpdate( @@ -233,8 +243,7 @@ class PipelinePage extends Component { const { classes, pipeline } = this.props if (!pipeline) { - // @TODO ASH create a 404 page/component - return "404" + return } const tools = ( diff --git a/app/resources/treachery.jpg b/app/resources/treachery.jpg new file mode 100644 index 0000000000000000000000000000000000000000..74bcf3e9c2025c3f796facf376975baf55bd3fee GIT binary patch literal 37707 zcmb4qWl&r})9%9J?!k2l?oM!BTo(_4u()fG1Pvq*SYVL^f(75j-3bc5D;hR;vL}a@8a#lDkdllkXF&s!@>gm zM_d^(tN=g;PEAG(000w!#fbUe=@&rLB_P1ZUsg!S$-~vb-A~ZL+f&FtRpb7wDV*Y153fAMm#>2+O!onuN#l^uRA|N6nBp@UtCZQlBCLt#w zBqXCDBd4UIrluw$eL_n^MN2_NP4yoo7{JFpSlIa3*!Wb$gv3<;-}0{qK#m7MVWa>7 zdwc=DPagHtV*nnp{~z@K1;BY+6D5DN4CB#fm^lB(!bh8dkHA>U zMwC?S_P(M~sbA_QRQ_=EVv8C3o%~w_5CI?EPL4?qPy{qs1dT2Kjdy|9_qrpp-3(eY zOGC{vwt_PC(Jw%2Ir*~Ja#r|tE7niD-bn|ljC3x2Gjm^`Xm*66+ zBDtEaL%rV!J>naxr{426Hzh0yJx!VnH5>5y+P5W%p}2i}RmJS_!OvJdyTx&Sm)D^< z#(mzY!fPPHYp5>jL2QIW;eZIb_75NrZAaAo1}FcW`%)4!jkt~Q&?46qYL15*iml?M zP(~V9T>sUm3KTsR;J*B5KYtvUE+KMw_lAP(`}EY(qJq6O8vBNE%YlX7_SYL!Axh}{ zr&s@8W}O8)qfWDHF)k3zF@4~2WkT~-J?7=&$0>M)hvj-{YEJ_AOGXw3D{JZ-16LU) z1S=E>JMWr~(H2W~I#@f%uRD!o0H{-&J?iXcD+=2$)?uJ$7zWc(AZVK8*J^SG~ z!qitPcb++DIz-1-%&&5BKOQ`o9GDuHE?Ri|$}uw=zhvpoNBg8g*jhyxD{+lt0TpVy zXIGH8b?f{xlZWGPynUiHADVvx3U%OE+0j{nGN%hQyy2)d?t6Y{X4N42MbY0eD*8rY z;^g}4yoBxE%SlJAIsx|EbD`#-c7C7GLlbH^>8qz3NUEHeDassJoLr8Ozhrg4cHMG> zzK148WhN%ZKfoy??tPQOuW-#0f}(|>MJMo)wY9f87=U-ssD>dF$R z&1w^#V|her7;5%G9>l}NI$>p};X{?*_vHLWk*oUrr-_KGMh9%NajA030B5-#!U=qf zfFb(<85>G6qKx**ltV1Ut5tz?LOQQg1v0+qHD^u*RF#yybMuU)gn#X9?5Uya<*k&L z^YaM6;J9Fxs4U6GZ@y-iVSD-!K7%{;=Bog|C!{54QH=XnDN5H=^4T%d{^u3wfp-ak z_uUJR1*D6yKwC4fo}RYSe8Uuu(pW`~^Vfmb&Zs1-JwFjwaK?+KW(cCh>a)g*0eC}S zQrbGIhn1{rD-J90X3rdw@rPKQ59-EL*K#EF4^aQX?Qnj>V)mumK}vCsd{0W-m1A_& zEi|8Y_G~nbQSkMrL2bWsANTe*&sq+LA(`*o7i;QArHV%+@NAI?oW6oPP}`f7mR(%}Ul5 zoc)`tY(SB1#T&}?55UxJ`TO(zW*W;cl9CIdcILDkZ{iJsE42N?`3tqwp2TV2E+*ZH z2O&Achy0$OA3BLHpH0C6g-&=8^aodaADZwH$^I|c7+XK>VPk?xTe?|1bHd&QqeA`0 ziXJ$$zh`c~5i^jx%ii)V#Li?S0OdvZwK2K)_f(Po{^a5A*5*f#FFd$WeG z4qEye{5Q<>O}7>cSI>>?4B9rmMRXR?JusKI_uj(RyAm))UG?4IW-7_OBv|aCFvK9F zI^>P`*Of{8pC#fn4{FXVZwJb5ljs$qFABXwM|%DNj#q~M0eE>y|I%B9$KIBon?3Jy zzTE!47IB^Q_*vftxZV=Zs@%agyQZ{s3=G05B`C#+On(@0Z>v|nd{CgQ^%_gEBvKsDrj(ZzIZ`;UX zKT!u-CJ5^o>pzu5nmp`kBwMpYnXsCAS;xww1x~%JT=tiFtXw^(NBD5I2V(D1^n(=? z6$EaW%qs}iVM&^SX2mB;OQj!XKWR*SyHog_6RlswtFT|Y6$Ty`O8kAndR5Bsx#})+ zJ>V7Wo$sX0Q{|x&iF$nP@*XrkBp>wZHhEk%=ZXE4SZV9AmisT536?4HJ4ZQ9o_fz9 zzLCj<{67G{%Y{fxgWd8+rR@l>#cZWzg09+_5yf|yH8SHCXJ7Ogj|9G(gqTO=FVWyD zh)%-`#>8Mq(q7yf@-ifgp;Yx@dq;*7=@M0UU$i{Nvk+d8 z%&NL(Xl!ZOmpj_-OC(HmYM^9mLuCy{H!hSqE4G>mEfMedRF%qprtCpOSJp5p@yqcg zS2XP9sc0tu0$~nW!~p3Q-fwr>mOz0x|IaI4zsuU{r;YhXu(d-eP19IvD3b%cS((b^ z?W4GWJ^RmV6L}BN%>e=pL1q-j^uNlt86c)6T3N;x3fFy*IR-ZU1N5>+ z=&^#HVZ|@4oBjiI7}ynJ@10ObuP~4?dvJqmE#LnRC-aM7#f2+9=<&VuN;0D-NN_JP zO&hk=Duk&dQB(|Cz>N~phN4@U&H+G$0Ky{!n3!L-QwYe)Vxd86PcNm6@6mZoY1hkF#fzTd3X$S@rB@6q{2)PnhujY6G2nS||=7>QD~bRA!6 zG}z`L6fl^7NWQBVSe=}s+e>|Jk883 zHW~1x%IgO~N%G(G{2(%yMqlqef9g>;LtU4TpxVuRp7B*O^Q2CG+)cjyN{Le)u4AvI zQpaXW4gBQw4?xJf20h0K98F`^^{Y(ypfBO#*|xt?9Pd=-c11NwyW-;Hvc6BGno>!s zlYDnT@oYv#a_@JRtht%TyO7GOY%9fuGZfVy6kBTDu;>~&TEpiPl(FIZGwtv7+gG@J z6!{~1G--Sq1K-30j(>yI>M!5-!|3WYRd>G9%@U^BH&zHV!;*OSDvkn8RQ4QV$Oi@h z-$w^9KftM2rZK|L8RDloMf7L2jNd0+LG6UNIQiO*ZQBvzA03=Me*Aa2if<^OntsRbQ(YT ziyn|BanJ$_t8S=A<|XN$a|LlD@bFn^MS^q7B#IvLX`JVc?)#`7vul|vVA_v;nX!_x zdAE*~H1}m_S#fSn)2Lqpd*@%%;7=KB@4%!X_o`i#3E7i}QfZ`@l~>G=bL@Wp50n?bO{fHe?QXKPf z$Z?lT6DOFzLizlI-5@vgEx^Sg$t6oLF?@ytAtCa4+qZU3Ftn6H~W_=*e9W23m;lYH;*z{sE-+b>hgRrp@CT7cXjE5=ulwWyICjr9Rrg zA+FYF-wG4AirNDHcb)pRQy*44~x3iNSO93nIT51-= zLqmzbrbUJ;qv@&ca>I9g9|G8nL0beVN+>tLt_H`CYXJnygRPz_?WHxSP4V>daZwWw zCC5MG)ferFDiQomSiM-0-E8&Sk|Ixic!q-7O>G`h#R(c@2TqaD^*{1OtP~g^qR5C5Eg{y? z%mhTm;q(RN6unHT(xE;|fH~sr771!BuBCu=RZ6{jh2QKFVd=j22E0)cNe2p2-`bB_ zTVs(vK^l2le5RatEopx*crno_WMrl;9Jpa5-6m=W%Sjz@{)3GCn)i7L3e2jic5`!( z2rL*8r&=D^)~=!Wt^uIyz2b5E0I^8BG)Nr)dF$sXvr;yt~c65y{bLmN<%H z(64_0YxrTH$2ARfs57b-{uW#c&X>S-nk?@=Wo_O;!P}0~y;o=Fampv-il64p6p|(N zX$Is{HOcbtpr%LoZak7tr>d95;02>vL>KHdFR(_)uC7qwe}KVn-ZHeE zC*JY% zoeN{9IKs@+RVBDB*tMvzlyK)SbX0~}>{=N$*e-70+o45yn)>?I@o$zC$-!;1j^k>W zEnk4UI;X#lJ8+pLf!c`dB^LK~eX+RXN0xUs3!$y540%#v6YdONSr^qKw?zCT7y0+UV;$n+Lo%-Un^gOviCX1+`cvi;k4I(atITMbp?($ssbc?0uFtQ*k~7_Xl)NH=fI{tx$sd>PgatZ& z8g(U&heU}k4ZDZb&-ku-S$L*lyV7e;vAhn7^(aR-y z)|9|QgLl6t;bW6uv-V%gV8GNUl(ut?$!dH}7bLeI;-=&?n=1)kRalkxiF>W-ju7U_ z#ZbI^7nMmXgKL&if!U$e>S6jr>-io138$R0BgQHY>#asnd~zf!!c4^=x=aSZWcx1A zerRyKvw3w{su-4VNHHTXKGitEvHf%q3IQ@YSTf}}@N&qrc!M^!l^iV%nxTu$JM6zN z?{e)*9Ls`>LtWV^L|#eDDOsT9{Dd(EGoJC@(;q(j2XIwbFZvX|bXRug7)+lj#g=Wc zfww3BZ6;de1?*E`mB=PMJ$&OME?=@=6CB-KsEyeDl{c<2RBKH4J?Y!6LrQtq4VTrg zIK-zi&8pVq!|4u`i5{_e=|qzp9((GiXnrW;-s!oh{-g~lOJ zU?kLL=W8-+V0L0|ZKLK=SiM`ey|2|2L6>flfO3g5+|nYV0@AmcaOofEqX3?TqpT^z zEM^y4<)tUwpv|iWm|A{ppPR?qpd0=_dleMNY^0X#7u**wXg*Y_rBq=~%&`6X6UV9b z`?6qjP;Or`d&~7B>4j_J`fCSi+F3`!ygN#>H&yKPd$EQGwe5FQ*IZnkYny-_Ty@!I zENF)WRSH42>-zezf|Cp`|HMCv)*yEezN)v~RLvd_2eI!TLrgc9egNXdx6};W>UuGxwu;O@z$|G+nC8pF zV%J69n=KJNDz-LFm|f&Qz=wvIw}#fzza3-`cH2F&a{namNH8VmNqPPZ^18*B!X6AI zExFTI-c4A%);1k$Lz7JjJq`K?*!<{q$G2(wz%PB`(c;Wsyp8@|Ww>GUZplQTU&sS zxWg5whB1Cml|BBxQ7Q1vdVPuQ$K!2C<=IQ~D=8S4b#C0q-|TMq8!1FfUx#0&lM_fM zXxnf(`4fNEFrc7X8J9?!|MbLx`4lNrss;D8PjShhub! zSDzZXUoXqVxSwWrW%e9zr)#jzavOeQ!ui~|lG=yfXF?8%%eh9z7UBMsHky#DW5=v$ zlubTyXQg&&E1KJR-BVbCehL>_mj1_;cJS~RW()k&CKrx>qb;yRBB@qkyVYWIMNL%i z1u6+fA*T!NklUfmHFh}tQj7uf+ljF~o1kXZ`FdNa0N=SEs>(hIhG}sXWL(t`A2EAP zaOoTdoY$CCk_8Gp4>cs;^afUR>D`G=^G>EySu7Ut)+i2EJrx!{ zf{#SBP8%x;)EeKWetjC617ocjBYC}Mua7@&8?c&QJ>XYy^fP*{vzlVL;xBMlohk)) z#~k!J1n&pWWlW?2nPs;H3#CHggRn{*>1i5`;i}78kpslDytJt<*bG0WllVIl3E#5U z!fj#nv%r+-=C6xJJbRr5Me#gKm=E(=VlL%A;@Haz*gX2UJc69jvIt8o>|+ zd*o)6(11imv-N>DUTH(6GTNY{c6QfMHxUjfWp$GF&n}K$YFk+wnWklWF!YUT;N* zRTUO`o8-9Sl_!B*ilkZVdW}gi2p7Dg#S|7@(;L)3ADVLnmAB3*`?oIIa$UG{^FmbB zS{Z{cO)<&u=x{S-2TOxXlI~M|(R6>Ln&p+EKlS=nB9l1zCuwEyDL=`HlByuB z7#>DDzEjoECED!NLVq;j(qL3Y6#y|8Q5A;-KGJ|b%Xqy6Q0L(~RMe~t@YbC%w0LlZ znlCWA@T9}OXl*(pYSb|#cEO<}1~<`mTp*8Y43{xTYfk&R_ll#n-^VLE`xnKOvYxEb z7ZLEO?>W!bQ(7&X?a#QMUdZpz(!W<}JCa-?n{0ahga=BM@r1yY^W4w`oh2g+C3}lF zq<)6m%~8P6wJUuscJ#vIqS-Bqn)5l~Q{fLfkbGMS^aib6a^mZq%5c@Z;uaw%`MVDa zt7h(26=q-YHt}-Mf(B$?LLDOKvF;<}RoY}7*4!Ox<<(x+Z;Gd(XnHUUI)v1L%bp#o2x2xVgCS)Zi02iFxJdcUmkU7BC+J} zWOC<<&owzf-_->!GXMayxR=NXn6TDMMMI_W`xFHYSdVU$o?bwjP_y)OkI20@5zx;gl@Ckrh4@d`FDlNHwH}} zH7av1U#uVgR6D__l1@NJ;0qZt|J_XHgF8QA98KGgdXpnu!`2);p63E+{JT%MZc0MQYlSxa4c3OhNN=9kj)bD5#&*%jB|rbt$3CgjLEHQe9)Eva}+j z=8O(6{sDjhj`yrLtiCFEa-SS*x(p!9xvmMzvt-k6J~l`)z1zLW^$ZJLAg)gXPM;4# zKm7wFm@DjfPv>tZy*|=S8xb%G3M~Ezj9-s#?Gm3jBbE zXkAAel+mk%?krcAJUKVKr9jHg#~ue$iaqhCeb5cCoDW%*V)Vm!tYxC~u8tPP7N0+4Y!6E+90PD! zfV5`_KW`{Xb-pq{d~gY8wJg*$%SsIlb>!E;gjX)$X)5{*DxIw{3{H7Zv%hLitAZ?X zL$!e>KvSfc+FO{HvWkzEf_$6IeN*1~?;o3U8Z4_kzY<2|yW8!t#jAAG(YmgD(2i;X z%;IGEkdtc5a4wJCWUQs8{L2K+<~->FR}2KT=-?y?SS6*uU_p!4uI2oXn&t?lq*Zkb zp^lESZS?k~n}`I4sIKYxmknvJ$Wwf-i(W3%v=uUqis~#uvY)dvhCF20854eoq%@2R zB*Lbf0BDN7fhtueVC<*W=}~Npj-CK37i+%8UU46Jmbc31XvT&zv1j=BR;Vfuufsb9?2b4+m3aJnqD55H|lKi)o4@ z6z)>$ZA61*iMcAZsd>x`&unhG-RdVHyfbTwVp{arYWB(F^%nQ!_ZK<|Ot8Hg%GEuc z3COszy7pMKMQeUr3ZpYETM>XU;)BdJ{qgP}0ojt}&5_JpwW>KUof1dg*?o70=|7*4 zu@K&LxMX52yAm#C3f?}h^zW@rt&MLu#Vc>{6L&aGg_@i0f~~%BUf$LYDN!uV#$yc0 z#e_vFPGihHPnIV`C0wY7|1v=<_Op9*C?|b0dzQX|K#(5OVv#%)Yz-q&AEKgC*FbSNQmt>+7r6CSqN>u*Ch#d>TUP(rdGwIL=tHaWJ7x ze3Y2IoMN&dU@~IlUTVVnIagGTj6&!1b1H@3S=7XDA}0UN5H>&S&u(vbDFk@T&hZ19 zv>ToiA$bv21}if~K{+FvB-Cf=XRC_B8f72}6nI^LqJE;OprpK{wA~7^inmPxO8>qrL!uVFFeF%3ZFxW;mgtVo z{kH2|MpM$x)cZo)&FNia31W8vgrP&3LZX@9rxBs2{z@FAWn!d92e+`Z=s_#gv3x|^ zICrrMXNNr1Oso>35FYwI=|BEw4I?>!{Kf^d#=vuh{JBGPT=o(Z;S7o+BZ^(0@nZp< zj$h9p_#Yscqlf|4bVCl>J@O?^(_s?Oi)0q=<&2IcC~FZ7g+}|r?yr6(xlXT^YLgw) zv`u*46*rMr4i+|*ex7m=PhnQ4rqjp3P{~V9JP(v^Yy!;}a8VIPDS($}S0H1H=K_?~niNYwYX1vc2am?>kbcj>m!Ox%DC zpQ0XK@;C3CG7-s?%%A-w0x!>!1JeS8a_qKpcK7@OW_vD~EWFO2&2G_Wmp4&^966%t z7_Q#?;H41{JdpXqqBirE=!OOPd`t%!qN7XOM@@eQg!Q_Te|yF)`o4&^^qurCP1PIHwB*F?sw?|*xvF+`Eu%Y%5j~C>(`TVm zM%c>Q$Gw9h~>i4J4FiLRj4Q%uh)WkMGBjm|dR|{+w~$)M>sBm>BKUXV*RcYy^u3H? zwr{8Z0KN@28zNRaHBBIe65YlhVneyj!E5X9F$@@?r)RV24i~`OH_+Rur<3&~m*=B& z5i3|+S2LngT8vOAi6*FajEZtAsz$YBcUBW=L#J-dfUzVz=OJz9Ek;=uvtSENlYHC%x{32o{aF$?+>Y|BCh}b4hkSb*e zx?!F=1iIlZ7rA$gcrJ}HtZCzwg;W;nl=S`F)AMn%d>L)ds=Uic!mHgtP60c~vlx;m zpP7VKRJicE@f=FtZTDpsj9TiT*S97^eQ@Fl`06-mg#@8HKt@~>`~A9NdZSk3C206GD{SWqi-Un(LVsi zW+n!$;^BnfX07p7^|IiT&ppD6v18TQ1aU#Wq;$C%%I94cXzcm|n$7u_q;Pelb?qHd zrFHg_JVdPlqGe#*WLr#?0m1NLA_u#UNZS>744#lwYl&<;4;{A$EhG zptLPwQd84XVW-M~%^j06`^<|hz83NHI48~0l1p`VW)cg>9139{X(CM0v=gNJn&1xi zZIW`t^P%Yr;yo+i-3%WZO#MMwWW^dx&O8v13{5xM7O% z_BP~%8*4pr8(a=?GRe#0Bb%=ZoV4OO@>OziV;9vK zu5X%^aR^bQq?WN^^8=siD~MIkpYMsjYF~tzXUqud3aZq{Jyva%ebTa+cAg^!BlHX~ ziTuDb9rkgy`W6j#v2;Uo5MJSq<%Xq0b7U?`4#RB8tI`aiwUEV?M$Dp%?1>gt>cx#` zO$xExrjysoi{oysn&AE5g(sOq@srPXQ%r~P5HhSLTeY?quW=Mk)9>wnDd#R z`6i)j?JJ`0o#5hKyX@M(g@RyMz7Y+El4%OYZ&l)QqI<@l{}|;06~koKwPe^|Gr)d& zB*3^*xOm{HFJpT_asb%uN7JkUfZuTqNp6 zja8-Ve)0-dtMl*&!`W-e9hx<(DJ95qj=zNg`Td>ZILnXoou3?R^jA;U6Slqc7>ZA- zWJ!K=*ROAH5&HX|Vko|ANLv-FEXWRH4KT6VZb6nKxnPMFZi{)&EIu`QOja11bVS8# z7-#n=*g$EvLBy@7r(ps-LHo1Km3iBw#ssy?B3+#rK9+l*fwvoN`UU>M>DKH03iA;a zn>?LUsoF)vamuu&j(|L}dHDm#w4T7bb$BfiO=~7c8-RBVWRV>Q<%BHn^|U!&IhjpK z-14@!F$eFjYu|rI#>{fI#j5wg>p3t|7fv>98Y1YQ!)DOFtIdQ-w+ohL-JKNQbZrU1 zB_vi#T6By)vfowvJ3Ch8Om&vnPuE)(dDo@2|D!LnTCG5_#pQKxfRvS!$7 zt_(14c)P<>Q)=IWE4vei4J05YBd87l$=z=^emsVepl?n5 z64Ysvp*7z!X>-#))Ed88IWHhe`-9WmAO9;mf!%nr@}|S3SMYXKiukH6$H2Z}Fnj>K zp6SdgHhSau`O6Iv>H6H%ATPO5g0!`>$m%oL_C@|4$WW6i4aI?_t%m!-F&c$;y)pWD zp*9Ye(AUOCU-AevD@@dTehweL_2PeNNnp|g%`Q+{2!&;pKzbg8r4thYMV0Q`_1hu! zGP$X+40ZUDk7)?DM?yw2qqi*LC30Q{ut|%RBJqLWu0>Xt{7NM1F}FDwNi(KRiT2;=q&)i~ zYd7=djRc~&@rR+hxl($gQ7G9L1YE`(7_$@gNZb$YD^>@3>Fd=yP{Gw)JZU_?>Ik=g z^F)4m-&bnswB=gpKTz)U53oAZCX8lOWf^Io;ZG9WSma(!vEUH^45bGxn3-AdZk8o0 zwkymXq^3pVh96ucUOeF|HCdZ6fJpvY^rlUL^zxl*75Dl_;$4`eFs0@R%o5!6;uJT6 zDI4AL7TiM!W_t~oKof(OZWMGYTNV>KFbBeG-$PzffD*d*vkUaIK%eJV$R)y@cc~1# zSz3wkC+v>{Y226@Qb93sqy2n0X78dVCJXJ2RP}tF%WH5lt_y8^Q+}N9b|x>} zsQL}QM#>J|9^j_!YgVb1kMupoA#gvEI%iq(W}O{Z%iP7TQ+rA9e&Z!*$VUI& zkGc_2Ejr~ys1T2d4~MJhJ~^g3hJfSOUW65wVGrCP z?F1A5(8os;*68Ls-$piJz-KLRaq=!x8B@G2@t4{lm?_!kRI&VKt~Iwp&Z*qnJ)bNg zWWS)Q5;*--fmfUI(2Mn40psScegF;k%EiePA(Y41b$`@G2wz2}lu23ohF1RGL1y1X zGW~f5LzC+B-Ue4>i%3ma!xCE{R-=Dmhp<N1lX~$C;x^ z@zq{-uU|=}32p&R`pz`Ljb$;Gy$vjq87J)E<>|J+mbk9SZ?7!gv6&yoi@&q8!9{sM zQ2&v<8ve)?KR&R2(5C#JHSr>*JT1Ajb3w=KYr)`gBf>egV%Dw33ZJ>^rI?uVUJCxp z{2z8i!Su0GrXPHDtqsCmJoqHKjAhnJ2jZ?S>MsWUmfM0((8~N^Q3QnG|^`B=n{K#1IDxcD5QJ?^LQI zlX+0lVm51yEa`;U>?9ceh%IrkS1N$|(vFELlK2iWuDQ1`mjsj#Ybod=B)>0(BeS2j zjbGNHuTm$5KhUEYBVoB3U^AydzcQvs{lM_js{L@1S5yBX#SXXyX5a4$NM7$`7k3&N zXZtL3h_blQc@X*8jjRz}%MNdI`8n01ilBp^&E2hbTO2zLr~1W%76TKs+g&WlOU+)V zd%%=VZBLSEC(}QFxXtElo91DA0)F@vm;(AFqPkZfs~bUP5^Vszxn`l?wx(yi@;e-2 zM$o=3E3JU57b7TqeeORMBqv0-+Nv?8CbC3Tzei^^24`G&+q&($>PpGVP#%HGUedUE zyruAUm}27_+Ud3uuYLlozcUvb)e=*CUt@}N%v8~WJxO6NKv|+VcIePDv&2CTb)yEi zx@cV-qhuMtNe}b83u%@iCKbAZnnUX(UClIO4NUFV_|{wtx8=u~vRuIK3rH>X%3oi2 zbIYZ!?<^WDAzfeK9rdJq zOTVn{ubGp-k$L@o?W=i9)vFo#O|OM?YIk#@KE;l_3~kaT^avmVKkFT^vL zI)Of){}-C?<#CmDwS0+v(IU+cYM;n%#=qKN#EQ*XifTJ zNyj_Gs4ry1KaDWvjgN_)AZQ;W_q{2j$q~r@5PhJl1-LsA_zBb^*oXc5 zumm1X@;jv+n&p?%E8R1OPdgq_KK%pl;4ze8&9iF2mUHI|4HPXb;9%phTg8L&MdSbR z-+_RxDSpDA3-m4ccTQ&@q7T^zBUSZBcngSb1RI6OQB<#8INo$W`t|4S4`zb!*n1eAe%W zt#vP*D{88XqVwXl`JXnaY#Hirftsx5EiT6BE-ZzX0v*9I*L}e0_}^G#UfsTrY|fSjA2#$Kq<;N>LF- zP1X38lAC*a>#N;8iR#BU(N9=64MHg?ZMX%WbX=`Gj7rSrfytSs>1H%Au9`73U(OF2 zP%CD(B%Z6II>gcgb&Q^P(CxsGh1LNy*KTyW_`sM0AngVKhLq4^O`cHrMRR$kSo;T$aY`l~-9Nw+=I49GdxGFmKDb)j@ts>3^aa$VnoqlP*R@cU zi{_p$7La<~Aw7hZ8yv5&QwE;X32xOSW*R#>kEJ>xFAxzoevHR)#;7ohxH>5epix?a z{gPIS4o7=3Pvf%bLoWoDWjuY4l=U^Ukn?dt1 z50B+1hcH2TpMIpR1G6k}Xz+cN0a&WUn$Of+MBPY7qe(|c$HQVBnWxm9Gg+UbmKe5G zjQL0r(#Tz3UTdZfjnXqfe90%o&pI>-&_s6aN&~5B$vrUI@EBOYyCwTvc%F<@tWTEj zp7o3=g$Vmue`3f!-#@?!%eYOh`MPPK-M#LcJNgO7IIHq1pHnQ6bJvV5P>Sr$eW&}l zUh^x$C0|pmXK$LayA8ApG`j06@qij%LD%T}Zjy?lr|vbY5F@k%k+?h4AZy~@WJTe- zaYly`I|~2EB4!kief7G!GX{IEf?E?WJsIe|? zySL$GSPjEAxc4kfx`OBNY2=?E`sOKK?$Odpp_|9}%)j-ql7!`D zlyythO(YG)h=uJ2lcgp7ny{URm&8gV*yyABOe(wvmAuk&Z z!ku_ry8SQZQ$7KxFqmZN?*?nc9)E**7bjG1Aq$0gYXo0lj1$HmPoA?J7JR{;!M=hSS=;&>3h51nE3<~aaUjT)2X>cu$oI|`}PC0}LpeU9Ek)$!Lmduu|Xd-IzHKoc^HsH`2lhP1u{o_}X z?%es<3praCX2f1oB^4IlyJR#iy zw}E2^p0_X$Ylon=Bu;Ohp6a1<<6TX?pSdJhJofoWmb)*4PtCBRUEZ=jjO=s%{s=q`ccY#e2f(oB53gD5S%ng{H~5H&1GgZxH7@q zRQyDZY;y9kr0-N{JKnC#Zr`9!vTIN|pFaN##5ekl836y!ZCQ3r{V zpZwl(wX89h{*{yD$cpFckt_FZQhhX@nWa^sFw}1WK&`-lKJM-~OQM3;t)9Cg%4#iK zVmXH`K|m3VQ8f5(aSrf6$tP@xmf5%HRnIuzvDE9HbgDX=Z+xe4=akqKjEpRm2Vo>0 zFR5RBG9V@0+=qUtM#^<>cd{_rsYtLJ*{>|c-boTBjYYG*c|lKQ$YeapT3x7Rl~ib` zgN2M_8=~EgxpnU1a&dlg3$OR|T(UGGVva@b>o9^RMg}U^WJpY~gh1G;M5h}$k@r^U z`{tvh_2!M5=U$`O)znc{RDBX5bbS?e70*tws0b4=@vvIP#NkI$=-|*ros#B&!pi7E z7b^XDqJ$luBb!M7n8b(|va$5g1}iUuTNlo@Prs47Pjd1-!3SL2)XAcX$+!udETE`0 zVz>>3eVdTcC;%C^=en0kt^L7QJ=Ko;hJQ02^`vhdMk@uosFtokaPYL4CCvn_Tk9BO zWBKXG85lcR*BQTH%o+&sAlfXH9ioSA2R-rJlYNFW_qWKW+1MH+oNPMTFr+OhSBDV~ zx{A7Q+W$)`d-c@Dh3DJY2(_AkJeAk}ZcdxfZc5ge*3GGZj(fg*r+$)excIYJicIiq z_Htw8o6ZCfR4{@ygoRn8hK+0Mm`7@!$Eif8gp-L=LL6eB`khX+LB!noQp6h+g<@;J z2DvjU)qV5*Vxr$TAM2{CqD#GzuxF0_P7^noKbYfU^3^i-=Yg4$KD^ykaQ7Y!gnUZ; zzAPz*$I(y=z_L9T4w%!x#pcV3^VFB1^cr8Rwe}=%`~5+OEyMiSTnsPgGBF%q<|XcR z-KzNM)|}9Xd5iTD@1f4A=}Ga-bEF8wq%N91Gdb&gMT{YXtCJeAbNWc{9*E5`I7@kVhgrFj!YuS(*PSdzw3tj+pe~67i!Dn!rxp=i+Gskeu^(}G7B|u$ zK_6kc{qI_NF%%GQcWMcBH?(h@1bNkqV^z%|L_fw5QNG*74!@#EMWQt&AJtNHTvtgZ zto1SFCky@wt#~#~krfDlMS`mJ0p|^COraKT55wMbcn=J2EhBl;@RzUBds6 zc9v0X2Hn07#l29VxQ60d+)|w27Mzyi?(U_9QVIcrwMcMDaCZvDrBK`*ifeJ}&3o@T zcb)I&WAe=NtXVUAX4dSz|GzDka=dZ2$Sv?#or;~G4^z+N=;gom#z)=o8LT?#C*Pgy{~-k^5~{pi3=;$kbqT!M zylbqx!a9zM+H*iOnJh$!Gpp%gsZbT9(5Vv1hkB+Eb)U2K3Cur^lP347DeKXou*3+2f?*y*+z66 zHQa~&Cfgsqf6VdBYK+#Ja+K~_q(}LCP<|7%`91^_x3;6ilcl6rYNMT-vfd;bIr{42 zYI`41MDyuDa~8B9$|k4_QG-Qfz7G2IULgGW7Oi!Y^aCg43ZG^bf%&sI)^LSX@2ttt zyye0kksyl2wK)Z($CDjvtLi)n%_c56I<*tuTPt=YF37%eSp4Cq>_V{sGUs&I-#_*Q z8++oP$m>zPr3G6Ip+9RrMcb^j6^^%tnz|)@{0Fd?Oc@$xmCg(Dfpkb{GjAxff^h*s zpUt74dBtZA!p*Y$?j=HmTU`j7-F_&$MYSNSZJ$5(WQG9rqcX$~JEVosD;P7ww+{La z1Q8(38wr8RbIAqWCF>N7dUAXcw*ccjy?DRy>P&yl<}i|n*1z<9f6@arI+Hhr`R}@3 z-_KrZ{|LaIEB`Qi78*9JQEx$Zwb*70cG%B{Axc$zy%pt&xvj&)lX?jF7|~87XcKhe zV5(p1Ct8q!y!79p-;zX&I&-}S*D+Fnf@>n4*qIK}iAoUf)3|ZdxDJS5cpdMsHp?dn4| zp`mG10KY2uP7Aml_Uo@v{^PM(F7s3TdS4&lif)MYcOGP75Vu|S*SR@qQnlJ`pQ9H;OTzNjzW9N_Vyuf z41~IDWi$h5{{aNU77=FQQMGn+uMh}W#XP1|mx)peRle@`{u2I>;{UsLcX13gN9g+e^z8?Db>bKUdc2*v7%*=+vpH`o zh1fYYvbN{isi*q!`o)k^aIY4XG_yD00Fce?16Pk{S&TUAR$WcPGdb$^i->?0 zzffki{_$f2qU;eaXGe9Ccv3}FTXHLcABTyjH%YfDVK_Rf!OrXeq2+Tf$-!g+MYH!Q z2h7ZEZ0!S8RXOK%Dv9|}4{Su#hdaN63hRjWIh_fNSM!n_z!?i7_ z(=VhqIj#DpfdMuXZmLuY484NV1k|Oey(1aPPAq@d5mD_hPWbZTmZTaqjNry^Ike z$u(q{h;%@$h?tkt>%)_E(!-_ha?<-t=N8CZQ=uoThP<@M)fg6qq4)j zEabYW_OP1P!JTD*wRj9~0R4oql5#jm-H8=jDh9`8FD_Zq#x%sB!X;ZZNjfjJ9eItp z{g}5SakfkR3Bv;qd{tm2ofUKz(+5+2;n%!c=+85=V+3(1`Tf3`v`Jg?=^bcRZ%KIw zd?^D$gqes;QEW3W%L;2qO-{>EYN?{JT4SFn_ImY3Nzxqz7B;yzMJiw!&Mat7Sz;9*{9z|L8q6$lu~WE z23a17s)%oMJf1WP-xze8BOTsK48=(J!hDU)ezzc-lgjEoAqFteV&U(K11GfJQwc*) z=xkVjzRW?uC;fFjz>AxFR;iKwtaKdn>S95f?~~=PN*D&7dl5S_Q$+U&GKh zq`e*S_qK~_R7SQR(EH*f1C%$&dJfCmR4LqqN!j!>_3Y3AdL^jXz7V`d{+_wudZp!) z-)6uHY1kpVAcx6oPL5wSZ|@DElN_O3Aaqv1wZ=#d&nUCa#tGdw2ec$z49^Ob#MV(6 zGLq=j!~23f`uK|WiL3~Rqd{C_-Ri&Jsz09mz42PK1A*WOk>w=)lHy5|NV=M$8tUP) zuh)V+{6z^0Bskc-Xn@$LVPa`o|Cw5Nqq7b)Ql+(5nT}QJ3=B+pE?^th5^6hmQRhcDl<$g%Cka~Oks_ob#f8XGSdeuHB>YGOT6hbTdKfklH$1{)#3sP) z_}(R5Pk#b7z9iER>Z6MRyzvR_MukS^)``~4e<(|HH0p;H>8Vc_h3Oy#7~cUf-$p=N zC_5iU6AK3E3|8F6mvdE^BXZS2Kj1i76REGdIV?tUS}i=N&}qNiV3r^oScc1&8_CHx zIPvK9^biICz|XV<0Tx}x-!9>7*lY|`zf)5)UTj4DWlBf6lTw&iz5=88*N8I-;#pY4 zZ*ON2OB;v!*Q{8Z$QFIDTjlfLb&ljF`nqLk+p#@6=O?#M>4hr45}mJ+zv>%YoLCK) z8gYq>C5nr3%_5@S$ZruaU?c>GzSXpbgXyC{Kfhcp*UT>Jr@RE|I2BqQs9%(nZP6m) zVcUk$5Gn?SsqKEOpAAj&S{{!54a*gffmkT%vvKtR@=LQyh0|SL{(LcQQ;C+j3@TlS z-Y+$&hHw`GRs#?7Z<`it%~FD%#C*_JP{KqdlUG%o>=7KyqbqH1pd|ne`}{$=O!6a|v6Y#9UrN3Q3^7wAcZXl-ipt z+Tg8OVQ||h7`sXWRB~35bpGj!P*6H7-W#I(wv?r?2t}+yvKN1`Bw=EHJ(v()fZU3w zl6I_<79}xCb^4Y{0bS%47Ae`XEB62M3=#$&dH)9U!|sLGDORakYjDzq+%R-0in=9` z~Ayn>&Y(P>G2BH=uc??T?mM|JAnn! z$)5iJ$w8ECHImW?^IdAB0>QO=C%J-pdUN@aD#N8j$+`!^`xQ|`tC^ZzIqy-(*`Az@arqCe#G?`OFB2WT`$udQ@d+hx#zNBaNO z&h&Igk;!fjs#bSO)I24#X7@r?5<6mCVrJ7-^eHPK4%D016-DtKq_GGiKh>Jo!HqZ+E)Of2@ckP_`P0i4cmr!wBIsB2GI zzu8V`$IfYPRhOe9V_~y!$xT@d>82atkZ*(x@D&%67GPOgAr94SbiCmw3v*y7I~_lw zb~OKCX04X6QJ-KVR~dyCP3hW+7j!LfGZ{mrc*jwDFuItk(#J;w^{p|Te

}z%1Pt z4C{K%j(d>CFs3E~ff8v|P5G#SFY62z=JNO_zLh6iQsxv#i3)}w89VXXeYkGY6 zTbbtB=zPIGs5>XguCeaIbBZo)-WNR~h!!8jGXBi?^<r8EY#$FSWZQktOcb-$Xc*8xooI*-`P-X*$ABqYnW#Bxd-wt9LX8@ z%`)Z4kL%~S+@V;zkZXzTJ3BU?E$rv{fLjYSQtuG`cp7J(7eRN7WNCP(`!>{$4TA)%=8ojeu=AO8 zopS|)jpOnTv5g&{S&oqzT;%j}z%+;X)5?9(eHkY4@=n6x46mma}cog3L3 ze#X#eAPO`VDcOOsgixaN`Dh11{W?RVnVhm@VX8PIK2`8oYyJ%GVFG|bdiPjx%q53n zF;h>TgzOTa@ZfP@8vy`GnJxfMaTqqHMHcYHPp0t?wBP3CP|WAvn^^pw5>_C2h0ZV6 zmMzw=TuDWZl4u%_$47j1UW&JixxKfAFU)A^PYu%1>7*N3g~}iRLihIxV&gMIhk)rJ|R@WN{o$qBHeQC z63JHkjU8nF(&U@r3>N8M)rr?H5}uPgzhtTY@cWcs*RlnVIz8}Lfqfj5$(j)CfQ%2%ar|>7l+3D;nQMrQ2#x>a^$>PPE%w}XBthHEPEYeA$xJ#tvbm(8Cn&InQxR$0 ztuVF+mVyvOLH@`KydCoFLc#4s>Y@-}9m0tky+x5<8I#{!RP_tvB1-jDpsPbdtX*QK zg0Cy$)mWAXb}lU%@)u*1-tq{OLylA2di3R$re8@I4N%2-5o>e9JX-E0SsaJKswC?MQ68?j9;P{KKk97j z>8+3Cd0%jK2pk^aL@>+g?^q67v|r7-4mpXa|5i2KZvol3mU?{AKV^LHaq4@zTcfq=n*D8293$k}VLadQWkop$G(oK%uHr_5tipMn z&F$%Ni*~m+3{(3tO+B~Yu(K!y{}yRHCWua2ri~sS`||3@YyVzjEBA;e z_yE0s%j@jntXxU5$(3{HtDe$}*$gV9d3SzKHHOKhu;H=M?^)#jS9em?LT&msMt$=* z{eUgR(>Iy0)aN5;eYd9Cj4okfT#7(UG&^+6gT1I>Kb1~sKLP+$qmqN@ z8jpZ%O$W|)DxJjN6e`IiJ>)=9@<*ILrNY>c?`#^T4cn%L_zTr5@{iy0_jYz_<36zE z#>U1&@5h}9FKcFg*YsUsGLRFG3>9(_T!-b(4EUvfxu$U{n+F46{tpcAZex zw-jN-CWlyIV-IrnY2>u~! zGl5W?o~P#R9aYuTO$EY!Y9qGNrXJSh+0L^uO&-{5aB^qsUKvt*)znjb`@j)SFky^+H~C{L~5# z@9hge=j^a1eM~@O13<@2S``GAN8v>@*2#UB5IueW=$sU0sJQ72o>;=iC7KQt@KK8B zVqA*ghlQ2~8$!_mkymPFYg4Is8Eluhq4p2(4!bX_l1YK4UU6{$U~jMD46LI;tCnmp z%ZnRI>czE|I46U%g?3nP-Xov8Oz56kgKwRDNpALN%+l1N6mWK)CkSbO6rjfeNgQ_9 z<L2HlRk&+MWv-GbgIw>EoQamm2VBQzlcvX|Qu<%^(KHn7;yKs6aCUg0M!N~( zK8Y)>R^Ng3haST(Pyp9oG@%nI(`UM`)?skQYCLP0*p#nUJ#(CY|E6@frgEU}Xwpp% z6r0t}a=DH%w+_#qv%Fr^>F(zlWcHgvdq0yVmF*SuBiilr9++2!@mBItgO5CQAA*q2 zG{wG*9Ot5*Ki#;wPWS0BkQYUB`ON75xtnwA!&#i1X}-KYG;ha2-_&N5`n$vIu@$8( zUy;}o*7?XY3ruX8rH8#!90x6Jt`cU2`awemovs%@F*Gwjzv3Phhl$f#0g}f5=E!^+ z%9`djK<c*ko!VbHYc~!*I-EKP2r`KvMvzs{2Ew3*#hm!1UKT`+9ofx-rUY zwv4gC30MK>n>h<$BL*2EnD8I5oO-?G5npPsqO`&RDgOmIu2h#9^v%b!m4?yMc2|Y4 z7hI5c>bt-)C|s3mYUb=2s{|Krez7OYyKZSSzg_Q4y{&29rLR(sBTX)9nuDl^(cd&1CZ{iAN^7W1F~5LN%Hk^zJU{96 z57$4_>!$_ZQfF(hH94Mgy7X(bvhN$zjJqLXA!96R3Q(vf8I}Pc(`!4ERPtSfaG;QT zuixD5#{)ChABNZXly>1$ZRBQloaXX+%5bwl>5nK)_J=7rWvQ$&iS8K-Q+gnKjP5w+6QR0?r&t)XhsUH3TQa^q2QeDVN@uW8+ zE9JuJXU0}Q`57TpPl44*0n-xw+-vtNXz}687MF08lz#LRL6(Lvq5e}gQocWlnUt&) zz^^qb^$(CRd1yCif&4K!VWy$L&s7rt$@rQS+$DA^&G1-V_(l)u_d=)~sH@Da3$xxH zr|SQBt|UpF`-o3GnO%Gt1`+*5*v6_bb2`j3R0P~${zQsPwMzl4yad`ooBwVbS!}OX zyF-hWXRk~3br#v}cbP;~Kb1s&Hy_a-A~E*w+hGcn`7Mb}MX%K10B&^is?Tj(j9MjZ z$cuL|RCI3%j7=T@zWyi*BHCdLBRPDab`dz(I_#;fA(~pn-17OYX zmQK!bI{D3455q~_d^3Bi{G=m{xZc}Zt%2~Eudt!OTMRpsdN*4Z-?1kB<*RL}Gzk@i zW1p_0g(8b-2OC;2_qV|$FBO48ld|#zuXHa}cWX!{ zfi_X-m2mMcddX4N%D4|Ll^#Zl>qkrKuxNuEuw3DQ<(dbYpu9!Ylko!-rdj42-EcJS zmM)r?x(=pn{H89bPh~tmwN;BAdl`YHm6$!ODDdj_T>zPoX`m5P+H4HGqk{F@4?ca| z`H!9lGBeuXlLfERq@|b77L~RN>z0s=h~iXWX5Clq>L7PqnQc5uT7Ig{Q%M=`g?fvx zY^#fn*OxM%(D+)sFq&*q^??O`d%0!@M7mn@D_k(NlD3L9vv*yxxEVEp7M?B zc13rZHWkc%wok_*{pWXNDyx4aNwCLe`{q?I}kS2v_TMCNonf^ zljAjx2CVtg88X+-i|A_v+Q8{xGIZ?nFgn7Aj?FL9hX@FFKO zY%aCen^J57Ya`UNlo!$+g}AU&Pr@GpjRwTegD+MK0iS5#LF>5C)`DdoaUP z-o!p%S9){pNd?TbV5?S1akpQOQq9AHn}a{&VOXgri3vys_n{Q>avisY>S)2!yFu|d z38w5AdgZ@e=m0eMXu08%JWtVtS;rGqBRT}qtCJo-e=b+DRp9T#-WCDxJgMl5I;ip- zpvlpnm~&)O^O^rR#1v`U1l$8gX}w=(Vr!##BE<@tgr0buDi~~#ExfgzlD1x1d7jc>$)^H$9PVIonPlVL03zPV$@hdw)O`xHT0m4b64jc ziNERjr2=O8`qYxlyFFd@Fr(~UF9j6`!e5nqPhkbX^hH$9I|s0_IhCQ8I@v=TYNq5x zcjn;c3T-xobGH=WOK1csuz*p`Bw!pwVJH9rksEiY6TjR)BvC$&_T zh9{?45|R&%&buuHECi+V>B7P2W`8r1%WEbIl}Fz#m|88b$Beh_6u>wG!(FE1qFf2+ zMhG;q6)56&>d|+8*yRmVwDXPp87TEiFy@PM#-#^DudASd!4J>8Hl-i30)=d4(!2{p zfJ|D)EnE))mf%6`+!-nQixSo7*XB9+!0KT*J4jBAfkEu>KL=D%xD}xne~cKi*zyCU zT|N@v&(>ybkr~Rk%Oa3(0AOWb`_>{sR*&^QW`rLjTO_uTclB*PL;RGWN?CLh{^qkdS zR4~rP26nCewz4O+Qe|*c@4ki{L#Yd*UXgOR*DB>s1)tL^6&ZZFgRp#YY3g}VEK3!6M8 zFF5z?k#;Rw+`nIv-04&DF{4G1ip80g^hrp6xZBh`Iz$gt6NVnxGE29_Yfy9bYEI=n z>jiHhv2YlnZAATjS#`Hmc8gQCP%-PGde%x-xpr@Xv^c0Ty}f5=Y%IKsr4}CbP{q!m zvuj1ukd7?61S`-}gsDQ`X=QMipID6OKSbc|{5`7(Xy1=p?=s5Et1Cpwh#gBgU6QoF zSerUWrcl{fAVJ}!v_JS;99Dh;O&m%63-}lKUf|A7zG}!3WgUCp3_fB3r79)8H5#ZzGuBe} zEU8SFk*Rajyf_d-^aE{h#4Mg$pHcmt@y;j@A7@nz)SiLFEEfKJLz@y{0EaO_8JlhB z$<7(At$ofAcW5buf7bmP#)jqzPDN|7EEAsPuyYNvZcq|CJ;NP1M>{Zq;HbNZmPQWr z)%-43i3WF0^wWp*oZD(|$iq*G8&f^zBuZ6q?z3H8hF!LcO31ux3`C64>jbZ9ybA>> zZ9yAakJR;SvI-o&k38l-sppWciGzA7*)FcngpF}*Wv1SQ6NqnZRS0_B6>~!5||%YEJ@XWRM^S_4tI23t!}(m;!Afwoty9DdRJ}1&*`Wl;NVL$H!jmUR-tXdFVY%KUn z1ugqSVJ!t1fjtkRpTN#U;hq2bf?ddj{k;7;Ob_U@l=JBXr@MfWW>DF2GR#i&n=c3X zh?e!}(ql(eHEs?qHMi8BGzt~9z^!vbR%4G-6>OkC!_flo_4_Wzs6n?np*-@c&aTB} ziMtfE_zm3jq;1F$W zEP8}cR&i4#i(@(6#M+hr(-IK0hfC#NTa7uxh!MWIoHR$pNX%wfF|(1oWth>wcpfuM z#`A3RcOaB;-IE*z84D)3j-RDYEA*qHZ%9qOw@Gqcaq(K_5l#l^|Do;K-(iJ(7_@Mo zN9Q_X+%cpQt7mWjo!kz zr(F-9gaM@K>%^`KB88f1B}W#T_;%|ng<0r*f3BKpU^nFZ``d3bi|<+WYUZK{;5BL{&y zlynzT{u3^|#%!kZVe=n-R(?(`yV!Oq^5O=4^!Ro?Zd5xUFlN@YSzAHS?#dmc?Dupn zWK?h+#Gn@O4kaV`FfVcX*EZF`F-any zoV+?Hwh8(4Yd9z3wT zca0ua7Hygw-SjX=oEi3`T;S_9D^S=Mp`Pqwau(Z9&2NCQMvA*jK%2Rf`%w34@`WPH z75AB}YX@BH@e-x);Y8p%}PQ zc@+wB6cTD~tSWs(D%!zMc9)Mn0u~$ySZe7)}G@Ug*jqbHM>;gqJO zc1s4usyaOE=*?ejY}rx+?FSe$v(HhOtM}(BI`5R7a!N~3GIORpI}YYr5oP&jw23f@ z8}uL4?b+{{ePuqmkLzAyvyTs89|KsbMzDF!BXWG8??7*ZvtS}NX@_p+SO6beIh`xTY(o&h)BSBtNsonBNfk)|zq#oTaVSN;F?19yj2IV&NSn8)>Eq<7#OLk} zava)_OZPl63M7pmP){pXF;1Q+G@Cn6r>`1vcjjYNkSJ4!KginQXK#*5T?I}zO>Dt8 zh8|m$U9#xaehspfq;Qlv=6e>h@S2F|ef&h!8$g>`L%{}33UYsK6LM&>UDDXiExbNZ zY|QHuZH)Kv=;G(cSX4Qw1YxP;XBjRUo369EF*G3^QLDa*xln4H?UHpNhlB}h*lW_r z-2lkViF}cE-=6f4>O>k>+`C*Z7<>6tm?ufVy=6j)%oE!Wbjs1dkt0(~KdGu|NFh04 zMa7to0sC*gUl3DFskf^*YvPB`K}_qPt$jg^FAwCNRtp;!{usR~MSLiNQnTy#lIiA; zZuj9O_7YL49KAV;s^Cpso6H*)ZpmY}bIhpV@B)6EEhEV%3jQpsgeB1ze4Ra{AJK@> zG&40vz0EU`_l3YCyAFy*BV!sRPuti^bxIVx-#X4Jen5ZQVr!dy!p>7eRpgkK{;tVA zKZad#K!%u=a`%CJW+v~$v5D>&S6{g?Ylv{y=Guh3QVG=f)-!o{K2#a4Q$EreJxe~d zTikXMX<}Y!M=1Vft5!Su&-1#ki6kgI?*pm;+vW4*Vuu$m6=F>G2OJ&Z6em&}gpylT z?El1QvWWpOxe^m3XJj%|)QZ%r673OGzp9W%3cg>I-fK&kJwl2`C?VnYTBw!(9-)}8Uk zI2}Tx-1J^_4Zj#34)8NzD@reW#KI|$PAO=)g{e;lr}pru1t!lU9JRs(LsdY0 zTZ}E(N0asn)IAWP74B19o^rTIk!;SoFjMUig%9zeqphGYDal1b(_aE2n6;6BQ{q-J zI%}si{l#Wep~5*E>!te1F|aF~+9Z(OT42Dg8Ov2VH9;VrKyrhBz6(@TxOsxwFl>HS z`f4vc%yvO^q&}7D4^i%H0!7FGfWgigN79fFL$OL5=`ECWPA)ThBr^tJu7p;!2ZEOg zUAJ8m<8Q-c^Ysj?V}I#|*k7KZfHoV4NKiSgEO<8ZIfiwj0|c98A~? z99Zb2g)Y`O#529+?!j(!;mfpiZ@&wei15s$@6hs*qw9=7@!KJaGE{hfIdiQkdp=7O z4JE-ZE(V=3hDytxAyo^rRuEPktj=ehJ81lJoMJ5E{R5~AC#3L{DbsY+0HUH!T4`p7 zi0x6iLFv!JWa9Vo)fj*$CyqS5S@SgYQeK5MF9 z&wuQt9#4tJl639dW{UmAENa*ebpB?%=q&m}xW=M4d!INTFMno98L*pi*S$7xm&H8G_$XqLMF~uY14e2> zL4{cwCLskP7SklS#v{34OQ{sGJ|bC++i3{DeTaDr2M1$R%$~89mij5w!*rRL4T!15 z?e5=I(RD`faFD=Br?Kef*N6LLRq$Mo=~&ENab>H3CFJuDInDg z86|J`)ejduzs|I|nzX(wamZw%Cw?(4!C8z-e0|#zz&JYt1 zl2rLV%bW)NI(iWI93DJ&#rh#?i=ObXmx{qVES0hJ7wjDzv9r#P-{p7fye9^zh3z9D zih|5yUD{38sJe9QJ2|fli`_vBG|ut_}4thf5yS&Y~7e z^{4DPGaO`z%nV;k$&&uBcT7ej6z}nHHt9~|wt&cRNjEle@m>5|-!}uoQ8ag zQkk&#k2(%xUXqwE93v_~Rw}gX>uHwTO`yxmw-{B0pmRWrE=xu>R~B|IbK8zUJx z!=YXlNK~jvUOi4pMG1&?(2tojZxW?>d&FR)BaP%*_U2PlhlgWYvyaGYv5+gg>*=Sv zq2h_tjZMAaLx5at@i47eX7z_vIMM?%;)HZ?J`DA-U|h&vGjO|W$;v_Rnbin|3ESE8 zBB+B1flxUzunvs!%^1BMu-e(5Uhwsdw_X+ViP*7UE0vB%V{`nkeqdZohOF0%&8H*S*rY}1; z4oX#xe~nbJw~CRdG)-@!6L<&uNzcUGYpAH$F|>uavfP> zYO4Uy*gN|>cY~cA?2@f#R&yhksT40pXJ4*2xe_0Qm4p5P(sYhl*F!(%Tip4%t?4f{ zqH|z8pWW|HybUWK|Id>TO6j1&22^s)#LOyUx-I&o{-aFTaW(=~DHY@;Iv*O5_wJe~ zN&K<08SRnpGVIYd-ir_af{vc>vwHDj@X{syn?@qO`~&RXNspviQ_J6%8W4rGFUCIH7Z!p}ipGx_BJckJ-WT-W z7aPw$9q`@Wisz$FrdR*}!B@{YLjNyTWlOUypUln(*!y13_VSNrH^UBpgdGZH>|Obo zbCYya9JG~r#Ip1M&Lkdwm7%r-!oPm%2DjeVqBzMrkkx;HEo~H&V?ny7jc@gy@ReF) z1*a@c#i78h-tYLkhHTX6{-+npKbG&a{g-DGv+pB`pUMmWt8=pVSO*DV?bq=KTC)ED zrS{jv{{Sifw|!h=h5G!{}E#Dby(z zJI`7w&~LRD{{b#tK*l#uiq=NH%Rk}ktd6dwC5WUnHnJ({9cbWva2V?RoXetbMOJRf zqk;YYP&Gp4t52D7QH02R`^)V3Enih*K0MG-`pLu33F2$L-OKE7(RQEtn@x`uJ%+V( z%&{jnt=Z7$u^N!Ma8O(0c>GWiJqq|B@wTlE4UvAh;-|UJa(+MH@eeSvcX#rWs-Vl$ zO|sOJ;mP!Q{}Y=U>eXn7q_5*b(|++%2FxV7=`>-91=GKg_3UNW$=%-l7ymaJ_d%(E zr%P9L;?WKn)VEEf{npWP%YBZ)lC|D`r@a3mm5uCPu71L5s4-}an{Od|3aeuQoqYb! z*AKg|Fnx)i4jM)O3VZK7Rpz7qGu|+A1t*B6Zgw4DsmlKY7>pnMKpEK2`PM7*5zoHE zj@W;IyX<$jBH0xWDEq<}K-4Zd?rleCOa}_67Sj3a_~LY(9M$pWsntCG966d9PN`sn z5{?JpjToJqyq>@P2RIG^dGO&VOs8H+9k&iX$t8v@YoW~VlcY%CwJ!f6?4t8RHl2Xv zmR5dKxf0bd!St;p{mHvqW{K!4gkW#86*Ig zDTy&PDeuQIEaCtGIp}Y&!U+MWmH>OeZ?ymAPnu(fvpBnlhwKYz-QdmkwWS%0QY|Iw z!`MPgmyIE-mzo+$;ASV0xR#hf!aoj2ugIE~OiaGKUnhg*M{j(cz?>&*cF?v_&Q?ZM z55_LrL^PV7cA&=BdNH|fncQjl-Bea}d-=VxtsAGywy_SNqRf29QJEr8D%rTOtkB;? z$q&=&Q{U)=`BzSa#0ppO;FmwY2)QB)&!0wbjt2uLCtrqnT+fg+m4oIFd{~Fh2t&^H zQn4%Qb%md$q$Am5@&ciQ_svw|UW22768%LN+tcz24k6}Ov`1FHukQ%=`Y*1G*tY_> zy&H#nSySLj2~WRb)}_32BuR}SFJfR?^@cjLoWI=C4X?|G`ft?QYfjYs@5gErx9?RE z>_yuzimCGZg=xdLu#}rUi`TL|MoA+bkIU)~(}y6@7Ld;hBoV^sQok`Ig4$UjGcAi` zWz)$V1SurnvgEjPWBonF8stP(!IURd)Q!082pNV)yy{p!_0DWa#!HdW|`nRJ?LSd~S^J!aG+lYPwO z4>t+5{3qR=bDg9d9O3IgH5-ifSA-bR{c-3R#t=2bXMYwG_kC} zg`=j7T>bmh3J@aosH#qO&#{c$FbNX%hnlm55eFLzR0qp==9_YZ*8+ly(hfB%Q(?Uo zmSYgAkL0>tN?>#`hKg{h|FJw)-Twh%oj^ONA~Xd)MOyuQt)%PJ!r!`4i-{{^*7~;_ zHT#OHq(g@`cIucbMR_*k3e|h{^*_)ltFLJLL*Wo@3OcAtuG_qYMvx%Yx zzogpmMs0)NXwS=jO}uMG$>QFpL+E6bGbG~u4yDhkMW*{&qTth>^-JsK<*o(sN8E#o zgpzWJQ;GW{Lv*QNvq-B{yqsrtqJ`P?>ItSrjlr#I^?se1_9o|WHxK$Zy z1je+wFJ1M`JSK189?ai#D-ud&Z*m{56kBtqN%LmcU))8@Az{gtm%coHSVPz2Clv-^ z#X=${MUoN!02-~8zUe?H^rXS@Rci*~{v(Zo75=`mkWCwHpH*y4)rO(zr8I5rkGJ@$ z!Nv71WAjf1-OTa5$06+9Ur7?&JrdUrIwhdN{{VU~olp1>daj%oMGK~y^Y+bN_MeY2 z#;4lmSsHmQV>xemBHu2WpA^r=zbxv|b-S`3hKRqz*?6ZKTGe&&O0S{u@|d%^vVJmQmpz-_dTH*55ahpwttJLeYY5A5C%zQR;C$nHYdppzhL~D4 z6Ex;3X{q*zS%pf~RD=jBNX$AJW1dOW5LyYU=2J><)>(J0dq4c|{eQUk+y3_Mwf0_n zJ@0Sr=XndM2@R|A^dgp5bmU`|y%+k%<$7&=IhUNWDX(So36HKsY1u(GALi)Sy<>f4 zld+s`vc|-3K)FCFPB?1STzw>^`u=1I3k(%))!F%>DHU&d>%=c3cNL+@&Nei zW5&#m_{h#kk1__IQMr+?+)zUQ@G_TS4o*0HaoqJA;L=`~_nuGK7Ci2M=!dmz6y>-% z(PUrtsl)7|`=jJDku}yG4zWx72}!{_Zxp{n_e$t7sB2`Qe*fsRb>W!m7`V%-=Nsnw zTqsx`CfM7hg*Fg2xhPtkM9foey>UU;uY-cN_b7e5eefGFJuD;_5T9?Of%xP{UE3kS z;qcZEs3rpsl2Q~aTS+%TDvv;m?%)wmZ;)x6l8@DL_ZeMGanR7%M3bG4^)s>bEC}h# zeA~J!!4A>hL|$WAw#h zx3sAXR#}(Z)d`N)pzd*y-aMyARb~AQl1%5`W*=BzOdf*zZH$UWxXkNvrZB9 zu~)P%?B3TAec9HQDk?X4>_zHrA^ir#(*`9oTzOna504MxqSk$*sZmAM=EGz^6^Nsc z?1R{>z8~t6@*P)?mJ%3a@6t=$v{XQg+B#lc@$~!>;HXq}bMtXRBBs(Z(<)qM{OC6z zdMY^De)@Invo)+jYp5D&N|EBq3FZ6f4#zfL+W(nlzo5k6-*J26n)FJ0t!p%7vuB;y zwKNhQ+Pv0`I3$WJO*H&aKA`MA62nK`3J5@?LSUS)O(bVAc6<&}MbB%8&Rcq?r6{P4 zn9EDWT`>YS4mhS%moQv7dWBFF-wo&Gy=odH5C3p2T1j-JP-lefbGoDF6xO!($z{oKC5LamjV(p}hd zZ$`xuk4C}Err@iD{P<$MF6@O-Y~1u}Z=MkSnU~7eZvZN$lW9WAzV~G(6GPSCI34yS zJ8Yy?>kqf5k>JQ~1$H6V&$Os+fP3EayfYK_^-8x~PbiB{JRYs7t`oc4UW*!8xlvh( zh@zl+%nZ4zUTol(?`<9IUV~iUEQ=Tl(o2h9vTzVOJ4;F41>0I$)5O1dbX}tM^yU2} zznpXvPtyQzFc1PXS}1IoB}KEZ z=Zzdg>P9+Vg5=2NI+>7+#8ttodTY-CX%~pmYPY^+xC#axlWfVG&eK)}wQKohsF@Mc zx1-4-Y*zn$Jl46(#u!~nH+M89_TjQLN9FAM@}H5*bmlFZT&rIcS&ujS1#;lbwwF?q zh(U_9TX2n|Nk)s9{a*bRW=}VCd=*@zBQgHT^6pteS}U~T@W-~9$o(1BigN?WAKuH@ zrLqPXO`btyNIS{Q!TZL=9ZLA_GNwI6-}WN zPi{#%E;3aYegh`uL7l40Je4S8l6h)?lmCq)mR75yp@GbZ;YJwdUbjcuOQ}~LY{&;m zq4;bV76Qp6JDtB{gO>?J;i!R3m^%0-qZZ;Sj?2MI!1D~^h?vKG9-1B?hv1H1Z2qU?lQIaO4)g!b1Yd&#SKA?@5& zL#JJ)>B>WNDtnFJNp#0HBWsk_jExJLCGB#3+`Y{WnXn+3{%{-4a{7Tx>g#s4FO;gf zUiDX~(8CY(XXUCQkg(yl(VgD_#1uKSD}+iI8;eR=82nykjpXfiO)W!R;`f@*oxZKo z5h?I~Soy8uCc!4VBMg`XsUs@_zsb6ysC(<<9)vpQmBj`}1#Tm2vl|h{g>ir&y{&?u ze~*7ec7Zgtz0IY|(cv#fm2kT!R}GM~*D>f_M}vHQc>RMXPR7=m+(a35yM-$roF_U% zt8Ttk7Hptnq-6wqsCPKp&}*j2GvR8@@TVIHTZNfm<|71D7b>XrNIEdz3a7ZAyI-*% zIR;kOaNUTxTci=9@r8OZ@W{9zHZcTV)H5{+&B~d?Y;37bx%TT~_X9FUKgS^K@|fUM)jw!vFxlil3ZGPooL-foX$y zfOC!a7h8DZ-L2WvBh$Aog4A#8nm{o3^f(E{Cxwjf8R`LBB4yC<0!EyvX^xHS+RvRK zJp+!Zy-41aLj0oY=MkOW4l}iZKKSEI{W~3<))uTUhBx=i$lFmYX_CEUgcCcf@2TAJ zDx-^NIna=NA#`{2c+B7RcoMja9CH#M{w(^?6oXxN-UuPl!q3bV zw%Afl4o&cBYUY{GnU$j;M>OvGRnP-amp=H+^3faNdyjC4^40dH8U?EX2 zaKcS0?it7^ZMvF-b0svJ3PX?Q&;gxxl$#fR^UB1 zrRkk^pTH&^59N94PPT8bS82U@ew*FrD^C? zbb56q=dZ&SgpD3Y=(1USvCYEjg@>Tpqd|g=+r!tM5oNLRmN% z0VhRgWDUBLKls&;#EO@cI!P>LeEtT?Nsy}L?K6>jS>==i%7TAg&&og-tFo1|iEty? z{~qHkGTISij9I%paL)GOh!FA9OGs7UjdqfD+?O0b`YJK6b=b0BH5fUDU{!0+|LVo~ z^q%e?txXkH9(MF2PBCQ5{1VmO{efW>iX|pF%ZgjeCa#fSUR^)MoUP@I%;hFJV^8ib z$V70hy|memG0yKSJ@d}mfw6iHi-~vW`(=l&sEg0RKrv7mbnI=wWuZq&jo3&~$hm7N zJsek#2Y&-BdL2IAMa4GFm@I_3w5gkFd{ZmeVzrxS<})!u+RMcf!#A;+G<@ZG@>! z(rlaIfXxr;5BzblQ(uULy7QZa3aDjqDO_9I z*Bz9>p24rQ6mM0KKY0owgST+elZPV4lKvfxZ4a_nqE>Z0B+fD Date: Wed, 30 Jun 2021 15:12:32 -0400 Subject: [PATCH 27/66] :art: Make pipeline cards dynamically --- app/components/PipelineCard.js | 111 ++++++++++------------ app/components/PipelineStep.jsx | 24 +++++ app/components/icons.js | 1 + app/containers/PipelinePage.js | 7 +- app/containers/pipeline/PipelineEditor.js | 10 +- 5 files changed, 82 insertions(+), 71 deletions(-) create mode 100644 app/components/PipelineStep.jsx diff --git a/app/components/PipelineCard.js b/app/components/PipelineCard.js index 956b7055..b1c022a7 100644 --- a/app/components/PipelineCard.js +++ b/app/components/PipelineCard.js @@ -3,7 +3,7 @@ import { connect } from 'react-redux' import { withRouter, Link } from 'react-router-dom' import clsx from 'clsx' -import { withStyles } from '@material-ui/core/styles' +import { formatMs, withStyles } from '@material-ui/core/styles' import Grid from '@material-ui/core/Grid' @@ -19,11 +19,13 @@ import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; -import Typography from '@material-ui/core/Typography' -import Avatar from '@material-ui/core/Avatar' -import IconButton from '@material-ui/core/IconButton' -import Button from '@material-ui/core/Button' -import Tooltip from '@material-ui/core/Tooltip' +import Typography from '@material-ui/core/Typography'; +import Avatar from '@material-ui/core/Avatar'; +import IconButton from '@material-ui/core/IconButton'; +import Button from '@material-ui/core/Button'; +import Tooltip from '@material-ui/core/Tooltip'; + +import PipelineStep from './PipelineStep'; import { EnvironmentIcon, @@ -35,12 +37,14 @@ import { LaunchIcon, SettingsIcon, NavigateNextIcon, + PlayArrowIcon, TimerIcon, LogIcon, BrainIcon, DeleteIcon, DuplicateIcon, -} from './icons' +} from './icons'; +import { formatLabel } from '../containers/pipeline/parts/PipelinePart' class PipelineCard extends Component { @@ -81,28 +85,26 @@ class PipelineCard extends Component { } const version = versions.get(versionId) - - const anatomical = version.getIn(['configuration', 'anatomical', 'enabled']) || false - - const functional = version.getIn(['configuration', 'functional', 'enabled']) || false - - let derivatives = version.getIn(['configuration', 'derivatives', 'enabled']) - if (derivatives) { - derivatives = version.getIn(['configuration', 'derivatives']).reduce( - (total, value) => { - // Ignore root flag 'enabled' under derivatives - if (value.get) { - return total + (value.get('enabled') ? 1 : 0) - } - return total - }, - 0 - ) - - derivatives = derivatives ? derivatives : false - } else { - derivatives = 0 - } + const configuration = version.getIn(['configuration', ]); + const cardSteps = ['anatomical_preproc', 'functional_preproc', 'surface_analysis']; + let derivatives = []; + + Object.keys(configuration.toJS()).forEach(step => { + let [...stepKeys] = configuration.getIn([step]).keys(); + if (stepKeys.includes('run')) { + const runswitch = configuration.getIn([step, 'run']); + if ( + !cardSteps.includes(step) && + runswitch && + ( + typeof(runswitch) === 'boolean' || + (Array.isArray(runswitch) && runswitch.includes(true)) + ) + ) { derivatives.push(step); } + } + }) + derivatives = Array.from(derivatives); + derivatives = derivatives ? derivatives.length : 0; return ( @@ -117,36 +119,23 @@ class PipelineCard extends Component { /> - - - - - - - - - - - - - - - - - - + {cardSteps.map(step =>{ + const runKey = (step !== 'surface_analysis') ? 'run' : 'run_freesurfer'; + return ( + + ) + })} + @@ -166,9 +155,9 @@ class PipelineCard extends Component { : null } - + this.handleOpen(pipeline.get('id'))}> - + {pipeline.get('id') === 'default' ? : } diff --git a/app/components/PipelineStep.jsx b/app/components/PipelineStep.jsx new file mode 100644 index 00000000..4245f6f1 --- /dev/null +++ b/app/components/PipelineStep.jsx @@ -0,0 +1,24 @@ +import React, { Component } from 'react'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import ListItemText from '@material-ui/core/ListItemText'; +import { PipelineStepIcon } from './icons'; + +import { withRouter } from 'react-router-dom'; + +class PipelineStep extends Component { + render() { + const { stepKey, label, classes } = this.props; + const enabledStyle = {root: stepKey ? classes.featEnabled : classes.featDisabled} + return ( + + + + + + + ) + } +} + +export default withRouter(PipelineStep); \ No newline at end of file diff --git a/app/components/icons.js b/app/components/icons.js index fe893c7d..4d1c24d0 100644 --- a/app/components/icons.js +++ b/app/components/icons.js @@ -12,6 +12,7 @@ export { default as RemoveIcon } from '@material-ui/icons/RemoveCircle'; export { default as NavigateNextIcon } from '@material-ui/icons/NavigateNext'; export { default as SettingsIcon } from '@material-ui/icons/Settings'; export { default as EnvironmentIcon } from '@material-ui/icons/DeveloperBoard'; +export { default as PlayArrowIcon } from '@material-ui/icons/PlayArrow'; export { default as RunIcon } from '@material-ui/icons/PlayCircleFilled'; export { default as RunPausedIcon } from '@material-ui/icons/PauseCircleFilled'; export { default as FormatIcon } from '@material-ui/icons/Folder'; diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index ac96aa53..a2b64b9c 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -115,11 +115,6 @@ class PipelinePage extends Component { let configuration = this.state.configuration; - // console.log(values.target.name) - // console.log(values.target.value) - // console.log(values.target.name.split('.')); - // console.log(this.state.configuration.getIn(values.target.name.split('.'))); - if (values.target) { const name = values.target.name; const value = values.target.type && values.target.type == "checkbox" ? @@ -145,6 +140,8 @@ class PipelinePage extends Component { configuration ) + console.log(this.props.pipeline.get('id')); + this.setState({ configuration, dirty: true, version: "0" }) } diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index f730a0f2..7c5c43e5 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -37,7 +37,7 @@ class PipelineEditor extends Component { constructor(props) { super(props); this.state = { - tab: [...props.configuration.keySeq()][0], // first tab + tab: [...props.configuration.keySeq()][0], }; } @@ -63,10 +63,10 @@ class PipelineEditor extends Component { [name, value] ] - if (name == "functional.enabled") { - this.setState({ tab: value ? 1 : 0 }); - props.push(["derivatives.enabled", value]) - } + // if (name == "functional.enabled") { + // this.setState({ tab: value ? 1 : 0 }); + // props.push(["derivatives.enabled", value]) + // } this.props.onChange(props) } From 30a0e435eb242f98bb576a7da51773ade873c2f9 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 2 Jul 2021 16:55:43 -0400 Subject: [PATCH 28/66] :sparkles: Load default pipeline from GitHub --- c-pac/pipeline.js | 1484 ++------------------------------------------- 1 file changed, 34 insertions(+), 1450 deletions(-) diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index b19e9f24..8e9005d7 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -1,17 +1,41 @@ import yaml from 'js-yaml'; -import semver from 'semver'; -import deepmerge from 'deepmerge'; - -import { default as defaultTemplate } from './resources/pipeline/config'; import yamlTemplate, { raw, loadYaml } from './resources/pipeline/yaml'; -import { default as newTemplateRaw } from './resources/pipeline/default_pipeline.yml'; - -const template = parse(raw) -template.name = 'Default' +import { default as templateRaw } from './resources/pipeline/default_pipeline.yml'; + +const defaultPipelineUrl = 'https://raw.githubusercontent.com/FCP-INDI/C-PAC/develop/dev/docker_data/default_pipeline.yml' +const versionRe = new RegExp('(?<=\# Version:? \s*).*'); + +let template; + +function setVersion(rawTemplate) { + const version = versionRe.exec(rawTemplate); + template = { + "id": "default", + "name": "Default", + "versions": { + 0: { + "version": version.length ? version[0] : 'unspecified', + "configuration": loadYaml(rawTemplate) + } + } + } + return template; +} -const newTemplate = loadYaml(newTemplateRaw); +function getDefaultPipeline(url) { + // returns a promise + return fetch(defaultPipelineUrl, { mode: "cors" }) + .then(response => { + response.text().then(defaultRaw => { + return setVersion(defaultRaw); + }) + }, function(e) { + console.error("Default pipeline failed to load! Falling back to local copy (may be out of date)"); + return setVersion(templateRaw); + }) +} -export { yamlTemplate, template, raw as rawTemplate, newTemplate } +export { getDefaultPipeline, defaultPipelineUrl } function slugify(text) { return text.toString().toLowerCase() @@ -26,189 +50,6 @@ function clone(obj) { return JSON.parse(JSON.stringify(obj)) } -export function normalize(pipeline) { - - if (pipeline.id == 'default') { - return clone(template) - } - - const lastVersion = Math.max.apply(null, Object.keys(pipeline.versions)) - let configuration = pipeline.versions[lastVersion].configuration - - if (pipeline.versions[lastVersion].version && - semver.gte(pipeline.versions[lastVersion].version, '1.4.3')) { - - let nuisanceRegression = configuration.functional.nuisance_regression - for (let regressors_i in configuration.functional.nuisance_regression.regressors) { - let regressors = nuisanceRegression.regressors[regressors_i] - if (regressors.Censor.thresholds) { - if (regressors.Censor.thresholds.length) { - regressors.Censor.threshold = regressors.Censor.thresholds[0] - } else { - regressors.Censor.enabled = false - regressors.Censor.threshold = { - type: 'FD_J', - value: 0.0, - } - } - } - } - - return pipeline - } - - const newVersionKey = new Date().getTime().toString() - const newVersion = { - version: '1.6.0', - } - - const newConfiguration = clone(configuration) - - let nuisanceRegression = configuration.functional.nuisance_regression - - const censorings = [] - if (nuisanceRegression.spike_denoising.no_denoising) { - censorings.push({ - enabled: false, - method: 'Kill', - threshold: { - type: 'FD_J', - value: 0.0, - }, - number_of_previous_trs_to_censor: 1, - number_of_subsequent_trs_to_censor: 2, - }) - } - - if (nuisanceRegression.spike_denoising.scrubbing) { - censorings.push({ - enabled: true, - method: 'Kill', - threshold: { - type: {'jenkinson': 'FD_J', 'power': 'FD_P'}[nuisanceRegression.fd_calculation], - value: nuisanceRegression.fd_threshold, - }, - number_of_previous_trs_to_censor: nuisanceRegression.pre_volumes, - number_of_subsequent_trs_to_censor: nuisanceRegression.post_volumes, - }) - } - - if (nuisanceRegression.spike_denoising.despiking) { - censorings.push({ - enabled: true, - method: 'SpikeRegression', - threshold: { - type: {'jenkinson': 'FD_J', 'power': 'FD_P'}[nuisanceRegression.fd_calculation], - value: nuisanceRegression.fd_threshold, - }, - number_of_previous_trs_to_censor: nuisanceRegression.pre_volumes, - number_of_subsequent_trs_to_censor: nuisanceRegression.post_volumes, - }) - } - - const bandpass_filters = [] - if (configuration.functional.temporal_filtering && configuration.functional.temporal_filtering.enabled) { - for (let filters of configuration.functional.temporal_filtering.filters) { - bandpass_filters.push({ - enabled: true, - bottom_frequency: filters.high, - top_frequency: filters.low, - }) - } - } else { - bandpass_filters.push({ - enabled: false, - bottom_frequency: 0.01, - top_frequency: 0.1, - }) - } - - delete newConfiguration.functional.temporal_filtering - - const newNuisanceRegression = { - enabled: nuisanceRegression.enabled, - lateral_ventricles_mask: nuisanceRegression.lateral_ventricles_mask, - regressors: [] - } - - for (let censoring of censorings) { - for (let bandpass_filter of bandpass_filters) { - for (let regressors_i in nuisanceRegression.regressors) { - - let regressors = nuisanceRegression.regressors[regressors_i] - const templateRegressors = clone(defaultTemplate.versions.default.configuration.functional.nuisance_regression.regressors[0]) - - const newRegressors = {} - newRegressors.Motion = templateRegressors.Motion - newRegressors.Motion.enabled = regressors.motion - if (nuisanceRegression.friston_motion_regressors) { - newRegressors.Motion.include_delayed = true - newRegressors.Motion.include_squared = true - newRegressors.Motion.include_delayed_squared = true - } - - newRegressors.GrayMatter = templateRegressors.GrayMatter - newRegressors.GrayMatter.enabled = regressors.gray_matter - - newRegressors.WhiteMatter = templateRegressors.WhiteMatter - newRegressors.WhiteMatter.enabled = regressors.white_matter - - newRegressors.CerebrospinalFluid = templateRegressors.CerebrospinalFluid - newRegressors.CerebrospinalFluid.enabled = regressors.cerebrospinal_fluid - - newRegressors.aCompCor = templateRegressors.aCompCor - newRegressors.aCompCor.summary.components = nuisanceRegression.compcor_components - newRegressors.aCompCor.enabled = regressors.compcor - - newRegressors.tCompCor = templateRegressors.tCompCor - newRegressors.tCompCor.enabled = false - - newRegressors.GlobalSignal = templateRegressors.GlobalSignal - newRegressors.GlobalSignal.enabled = regressors.global - if (regressors.principal_component) { - newRegressors.GlobalSignal.enabled = true - newRegressors.GlobalSignal.summary = { - method: 'PC', - components: 1, - } - } - - newRegressors.PolyOrt = templateRegressors.PolyOrt - newRegressors.PolyOrt.enabled = false - if (regressors.linear) { - newRegressors.PolyOrt.enabled = true - newRegressors.PolyOrt.degree = 1 - } - if (regressors.quadratic) { - newRegressors.PolyOrt.enabled = true - newRegressors.PolyOrt.degree = 2 - } - - newRegressors.Bandpass = bandpass_filter - newRegressors.Censor = censoring - - newNuisanceRegression.regressors.push(newRegressors) - - } - } - } - - newConfiguration.functional.nuisance_regression = newNuisanceRegression - if (newConfiguration.anatomical.registration.methods.ants.configuration.lesion_mask === undefined) { - newConfiguration.anatomical.registration.methods.ants.configuration.lesion_mask = true - } - - if (newConfiguration.functional.slice_timing_correction.two_pass === undefined) { - newConfiguration.functional.slice_timing_correction.two_pass = false - } - - newVersion.configuration = newConfiguration - pipeline.versions[newVersionKey] = newVersion - - return pipeline -} - - function normalizeValues(config) { if (typeof config === 'object') { for (const key in config) { @@ -222,1260 +63,3 @@ function normalizeValues(config) { return config } } - - -export function parse(content) { - const config = normalizeValues(yaml.safeLoad(content)) - - const t = clone(defaultTemplate) - const newver = `${new Date().getTime()}` - t.versions[newver] = t.versions['default'] - delete t.versions['default'] - const c = t.versions[newver].configuration - - t.name = config.pipelineName.trim() - - c.general.environment.memory = config.maximumMemoryPerParticipant - c.general.environment.cores = config.maxCoresPerParticipant - c.general.environment.participants = config.numParticipantsAtOnce - c.general.environment.ants_threads = config.num_ants_threads - c.general.environment.grid = config.runOnGrid - c.general.environment.resource = config.resourceManager - c.general.environment.SGEenvironment = config.parallelEnvironment - c.general.environment.queue = config.queue - c.general.environment.paths.fsl = config.FSLDIR - c.general.environment.paths.output = config.outputDirectory - c.general.environment.paths.working = config.workingDirectory - c.general.environment.paths.crash = config.crashLogDirectory - c.general.environment.paths.log = config.logDirectory - - c.general.environment.outputs.aws = config.awsOutputBucketCredentials - c.general.environment.outputs.s3 = config.s3Encryption.includes(1) - c.general.environment.outputs.extra = config.write_func_outputs.includes(1) - c.general.environment.outputs.debug = config.write_debugging_outputs.includes(1) - c.general.environment.outputs.logging = config.run_logging - c.general.environment.outputs.regenerate = config.reGenerateOutputs - c.general.environment.outputs.quality_control = config.generateQualityControlImages.includes(1) - c.general.environment.outputs.organized = config.runSymbolicLinks.includes(1) - c.general.environment.outputs.remove_working = config.removeWorkingDir - - c.anatomical.surface.enabled = config.surface_analysis['run_freesurfer'] - - c.anatomical.preprocessing.methods.nlmf.enabled = config.non_local_means_filtering - c.anatomical.preprocessing.methods.n4.enabled = config.n4_bias_field_correction - c.anatomical.preprocessing.methods.acpc_align.enabled = config.acpc_align - c.anatomical.preprocessing.methods.acpc_align.acpc_brainsize = config.acpc_brainsize - c.anatomical.preprocessing.methods.acpc_align.acpc_template_skull = config.acpc_template_skull - c.anatomical.preprocessing.methods.acpc_align.acpc_template_brain = config.acpc_template_brain - - c.anatomical.skull_stripping.enabled = config.already_skullstripped.includes(0) - - if (typeof config.skullstrip_option === "string") { - config.skullstrip_option = [config.skullstrip_option] - } - - if (config.skullstrip_option.includes("AFNI")) { - c.anatomical.skull_stripping.methods.afni.enabled = true - } - - if (config.skullstrip_option.includes("BET")) { - c.anatomical.skull_stripping.methods.bet.enabled = true - } - - if (config.skullstrip_option.includes("niworkflows-ants")) { - c.anatomical.skull_stripping.methods.niworkflows_ants.enabled = true - } - - if (config.skullstrip_option.includes("unet")) { - c.anatomical.skull_stripping.methods.unet.enabled = true - } - - c.anatomical.skull_stripping.methods.bet.configuration.threshold = config.bet_frac - c.anatomical.skull_stripping.methods.bet.configuration.mask = config.bet_mask_boolean - c.anatomical.skull_stripping.methods.bet.configuration.mesh = config.bet_mesh_boolean - c.anatomical.skull_stripping.methods.bet.configuration.surface_outline = config.bet_outline - c.anatomical.skull_stripping.methods.bet.configuration.padding = config.bet_padding - c.anatomical.skull_stripping.methods.bet.configuration.radius = config.bet_radius - c.anatomical.skull_stripping.methods.bet.configuration.reduce_bias = config.bet_reduce_bias - c.anatomical.skull_stripping.methods.bet.configuration.remove_eyes = config.bet_remove_eyes - c.anatomical.skull_stripping.methods.bet.configuration.robust_brain_center = config.bet_robust - c.anatomical.skull_stripping.methods.bet.configuration.skull = config.bet_skull - c.anatomical.skull_stripping.methods.bet.configuration.surfaces = config.bet_surfaces - c.anatomical.skull_stripping.methods.bet.configuration.apply_threshold = config.bet_threshold - c.anatomical.skull_stripping.methods.bet.configuration.vertical_gradient = config.bet_vertical_gradient - - if (config.resolution_for_anat.includes("x")) { - c.anatomical.registration.resolution = - config.resolution_for_anat.replace('mm', '') - .split("x") - .map(parseFloat) - } else { - c.anatomical.registration.resolution = parseFloat(config.resolution_for_anat.replace('mm', '')) - } - - c.anatomical.registration.brain_template = config.template_brain_only_for_anat - .replace("${resolution_for_anat}", "${pipeline.anatomical.registration.resolution}mm") - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - c.anatomical.registration.skull_template = config.template_skull_for_anat - .replace("${resolution_for_anat}", "${pipeline.anatomical.registration.resolution}mm") - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - - if (typeof config.regOption === "string") { - config.regOption = [config.regOption] - } - - if (config.regOption.includes("ANTS")) { - c.anatomical.registration.methods.ants.enabled = true - } - c.anatomical.registration.methods.ants.configuration.skull_on = config.regWithSkull.includes(1) - c.anatomical.registration.methods.ants.configuration.lesion_mask = config.use_lesion_mask.includes(1) - - switch (config.anatRegANTSinterpolation) { - case 'LanczosWindowedSinc': - c.anatomical.registration.methods.ants.interpolation = 'sinc' - break; - case 'Linear': - c.anatomical.registration.methods.ants.interpolation = 'linear' - break; - case 'BSpline': - c.anatomical.registration.methods.ants.interpolation = 'spline' - break; - } - - if (config.regOption.includes("FSL")) { - c.anatomical.registration.methods.fsl.enabled = true - } - - c.anatomical.registration.methods.fsl.configuration.linear_only = config.fsl_linear_reg_only.includes(1) - c.anatomical.registration.methods.fsl.configuration.config_file = config.fnirtConfig - c.anatomical.registration.methods.fsl.configuration.reference_mask = - config.ref_mask - .replace("${resolution_for_anat}", "${pipeline.anatomical.registration.resolution}mm") - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - - switch (config.anatRegFSLinterpolation) { - case 'sinc': - c.anatomical.registration.methods.fsl.interpolation = 'sinc' - break; - case 'trilinear': - c.anatomical.registration.methods.fsl.interpolation = 'linear' - break; - case 'spline': - c.anatomical.registration.methods.fsl.interpolation = 'spline' - break; - } - - // add ants_para T1 - c.anatomical.registration.methods.ants.ANTs_para_T1_registration = {} - if (config.ANTs_para_T1_registration && config.ANTs_para_T1_registration.length > 0) { - const ANTs_para_T1 = config.ANTs_para_T1_registration - for (const k of [ - ['collapse_output_transforms', 'collapse-output-transforms'], - ['dimensionality', 'dimensionality'], - ['initial_moving_transform', 'initial-moving-transform'], - ['transforms', 'transforms'], - ]) { - let listItem = ANTs_para_T1.filter((item) => k[1] in item) // find a config in the list of config - if (listItem.length > 0 && k[1] != 'transforms') { // check if it found anything - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]] = listItem[0][k[1]] - } - - else if (listItem.length > 0 && k[1] == 'transforms') { - c.anatomical.registration.methods.ants.ANTs_para_T1_registration['transforms'] = {} // add {} to push next layer values - c.anatomical.registration.methods.ants.ANTs_para_T1_registration['transforms']['Rigid'] = {} - c.anatomical.registration.methods.ants.ANTs_para_T1_registration['transforms']['Affine'] = {} - c.anatomical.registration.methods.ants.ANTs_para_T1_registration['transforms']['SyN'] = {} - for (const t of [ - 'Rigid', - 'Affine', - 'SyN', - ]) { - let listItem_transform = listItem[0]["transforms"].filter((item) => t in item) - if (listItem_transform.length == 0) { - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['enabled'] = false - } - else if (listItem_transform.length > 0) { - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['enabled'] = true - if (t != 'SyN') { - for (const j of [ - ['gradientStep', 'gradientStep'], - ['convergence', 'convergence'], - ['smoothing_sigmas', 'smoothing-sigmas'], - ['shrink_factors', 'shrink-factors'], - ['use_histogram_matching', 'use-histogram-matching'], - ]) - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t][j[0]] = listItem_transform[0][t][j[1]] - } - else if (t == 'SyN') { - for (const j of [ - ['gradientStep', 'gradientStep'], - ['updateFieldVarianceInVoxelSpace', 'updateFieldVarianceInVoxelSpace'], - ['totalFieldVarianceInVoxelSpace', 'totalFieldVarianceInVoxelSpace'], - ['convergence', 'convergence'], - ['smoothing_sigmas', 'smoothing-sigmas'], - ['shrink_factors', 'shrink-factors'], - ['use_histogram_matching', 'use-histogram-matching'], - ['winsorize_image_intensities', 'winsorize-image-intensities'], - ]) - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t][j[0]] = listItem_transform[0][t][j[1]] - } - - if (listItem_transform[0][t]['metric']['type'] == 'MI') { - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric'] = {} - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type'] = {} - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type']['MI'] = {} - delete listItem_transform[0][t]['metric']['type'] - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type']['MI'] = listItem_transform[0][t]['metric'] - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type']['MI']['enabled'] = true - } - else if (listItem_transform[0][t]['metric']['type'] == 'CC') { - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric'] = {} - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type'] = {} - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type']['CC'] = {} - delete listItem_transform[0][t]['metric']['type'] - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type']['CC'] = listItem_transform[0][t]['metric'] - c.anatomical.registration.methods.ants.ANTs_para_T1_registration[k[0]][t]['metric']['type']['CC']['enabled'] = true - } - } - } - } - } - } -// add ants-para - - c.anatomical.tissue_segmentation.enabled = config.runSegmentationPreprocessing.includes(1) - c.anatomical.tissue_segmentation.configuration.priors.enabled = config.seg_use_priors - - let priors_path = '' - if (config.priors_path) { - priors_path = config.priors_path.replace("$FSLDIR", "${environment.paths.fsl_dir}") - } - - c.anatomical.tissue_segmentation.configuration.priors.priors.white_matter = config.PRIORS_WHITE.replace("$priors_path", priors_path) - c.anatomical.tissue_segmentation.configuration.priors.priors.gray_matter = config.PRIORS_GRAY.replace("$priors_path", priors_path) - c.anatomical.tissue_segmentation.configuration.priors.priors.cerebrospinal_fluid = config.PRIORS_CSF.replace("$priors_path", priors_path) - - if (config.seg_use_threshold.includes("FSL-FAST Thresholding")) { - c.anatomical.tissue_segmentation.configuration.fast_threshold.enabled = true - c.anatomical.tissue_segmentation.configuration.custom_threshold.enabled = false - } else if (config.seg_use_threshold.includes("Customized Thresholding")) { - c.anatomical.tissue_segmentation.configuration.fast_threshold.enabled = false - c.anatomical.tissue_segmentation.configuration.custom_threshold.enabled = true - } - - // seg_{tissue}_threshold_value not strict to custom_threshold.enabled, avoid undefined fields in yml file - c.anatomical.tissue_segmentation.configuration.custom_threshold.threshold.white_matter = config.seg_WM_threshold_value - c.anatomical.tissue_segmentation.configuration.custom_threshold.threshold.gray_matter = config.seg_GM_threshold_value - c.anatomical.tissue_segmentation.configuration.custom_threshold.threshold.cerebrospinal_fluid = config.seg_CSF_threshold_value - - c.anatomical.tissue_segmentation.configuration.erosion.enabled = config.seg_use_erosion - c.anatomical.tissue_segmentation.configuration.erosion.proportion = config.seg_erosion_prop - - if (typeof config.template_based_segmentation === "string") { - config.template_based_segmentation = [config.template_based_segmentation] - } - - if (config.template_based_segmentation.includes("None")) { - c.anatomical.tissue_segmentation.configuration.template_based_seg.enabled = false - } - - if (config.template_based_segmentation.includes("EPI_template")) { - c.anatomical.tissue_segmentation.configuration.template_based_seg.enabled = true - c.anatomical.tissue_segmentation.configuration.template_based_seg.methods = 'epi_template_based' - } - - if (config.template_based_segmentation.includes("T1_template")) { - c.anatomical.tissue_segmentation.configuration.template_based_seg.enabled = true - c.anatomical.tissue_segmentation.configuration.template_based_seg.methods = 't1_templated_based' - } - - c.anatomical.tissue_segmentation.configuration.template_based_seg.tissue_path.white_matter = config.template_based_segmentation_WHITE.replace("$FSLDIR", "${environment.paths.fsl_dir}") - c.anatomical.tissue_segmentation.configuration.template_based_seg.tissue_path.gray_matter = config.template_based_segmentation_GRAY.replace("$FSLDIR", "${environment.paths.fsl_dir}") - c.anatomical.tissue_segmentation.configuration.template_based_seg.tissue_path.cerebrospinal_fluid = config.template_based_segmentation_CSF.replace("$FSLDIR", "${environment.paths.fsl_dir}") - - // ANTs priors based segmentation - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.enabled = config.ANTs_prior_based_segmentation.includes(1) - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.CSF_label = config.ANTs_prior_seg_CSF_label - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.left_GM_label = config.ANTs_prior_seg_left_GM_label - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.right_GM_label = config.ANTs_prior_seg_right_GM_label - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.left_WM_label = config.ANTs_prior_seg_left_WM_label - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.right_WM_label = config.ANTs_prior_seg_right_WM_label - - if (typeof config.ANTs_prior_seg_template_brain_list == 'object') { - for (let mask of config.ANTs_prior_seg_template_brain_list) { - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.template_brain_list.push({ - mask, - }) - } - } - if (typeof config.ANTs_prior_seg_template_segmentation_list == 'object') { - for (let mask of config.ANTs_prior_seg_template_segmentation_list) { - c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.template_segmentation_list.push({ - mask, - }) - } - } - - c.functional.preprocessing.n4_mean_epi.enabled = config.n4_correct_mean_EPI - c.functional.preprocessing.motion_stats.enabled = config.runMotionStatisticsFirst.includes(1) - c.functional.preprocessing.motion_correction.method.volreg = config.motion_correction.includes('3dvolreg') - c.functional.preprocessing.motion_correction.method.mcflirt = config.motion_correction.includes('mcflirt') - c.functional.preprocessing.motion_correction.reference.mean = config.motion_correction_reference.includes('mean') - c.functional.preprocessing.motion_correction.reference.median = config.motion_correction_reference.includes('median') - c.functional.preprocessing.motion_correction.reference.selected_volume = config.motion_correction_reference.includes('selected volume') - c.functional.preprocessing.motion_correction.reference.reference_volume = config.motion_correction_reference_volume - c.functional.preprocessing.despike.enabled = config.runDespike.includes(1) - c.functional.preprocessing.scaling.enabled = config.runScaling - c.functional.preprocessing.scaling.factor = config.scaling_factor - - c.functional.slice_timing_correction.enabled = config.slice_timing_correction.includes(1) - c.functional.slice_timing_correction.repetition_time = !config.TR || config.TR == "None" ? '' : config.TR - c.functional.slice_timing_correction.pattern = config.slice_timing_pattern === "Use NIFTI Header" ? "header" : config.slice_timing_pattern - - c.functional.slice_timing_correction.first_timepoint = config.startIdx - c.functional.slice_timing_correction.last_timepoint = !config.stopIdx || config.stopIdx == "None" ? '' : config.stopIdx - - c.functional.slice_timing_correction.two_pass = config.functional_volreg_twopass - - if (typeof config.distortion_correction === "string") { - config.distortion_correction = [config.distortion_correction] - } - - if (config.distortion_correction.includes("None")) { - c.functional.distortion_correction.enabled = false - } - - if (config.distortion_correction.includes("PhaseDiff")) { - c.functional.distortion_correction.enabled = true - c.functional.distortion_correction.method.phasediff.enabled = true - } - - if (config.distortion_correction.includes("Blip")) { - c.functional.distortion_correction.enabled = true - c.functional.distortion_correction.method.blip.enabled = true - } - - if (typeof config.fmap_distcorr_skullstrip === "string") { - config.fmap_distcorr_skullstrip = [config.fmap_distcorr_skullstrip] - } - - c.functional.distortion_correction.method.phasediff.skull_stripping = config.fmap_distcorr_skullstrip.includes('BET') ? 'bet' : 'afni' - - switch (c.functional.distortion_correction.method.phasediff.skull_stripping) { - case 'bet': - c.functional.distortion_correction.method.phasediff.threshold_bet = config.fmap_distcorr_frac[0] - c.functional.distortion_correction.method.phasediff.threshold_afni = config.fmap_distcorr_threshold[0] - c.functional.distortion_correction.method.phasediff.threshold = c.functional.distortion_correction.method.phasediff.threshold_bet - break; - case 'afni': - c.functional.distortion_correction.method.phasediff.threshold_afni = config.fmap_distcorr_threshold[0] - c.functional.distortion_correction.method.phasediff.threshold_bet = config.fmap_distcorr_frac[0] - c.functional.distortion_correction.method.phasediff.threshold = c.functional.distortion_correction.method.phasediff.threshold_afni - break; - } - c.functional.distortion_correction.method.phasediff.delta_te = config.fmap_distcorr_deltaTE[0] - c.functional.distortion_correction.method.phasediff.dwell_time = config.fmap_distcorr_dwell_time[0] - c.functional.distortion_correction.method.phasediff.dwell_to_assymetric_ratio = config.fmap_distcorr_dwell_asym_ratio[0] - c.functional.distortion_correction.method.phasediff.phase_encoding_direction = config.fmap_distcorr_pedir - - c.functional.anatomical_registration.enabled = config.runRegisterFuncToAnat.includes(1) - c.functional.anatomical_registration.bb_registration = config.runBBReg.includes(1) - c.functional.anatomical_registration.bb_registration_scheduler = - config.boundaryBasedRegistrationSchedule - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - c.functional.anatomical_registration.registration_input = - config.func_reg_input.includes('Mean Functional') ? 'mean' : 'selected' - c.functional.anatomical_registration.functional_volume = config.func_reg_input_volume - c.functional.anatomical_registration.functional_masking.fsl.enabled = config.functionalMasking.includes('FSL') - c.functional.anatomical_registration.functional_masking.afni = config.functionalMasking.includes('AFNI') - c.functional.anatomical_registration.functional_masking.fsl_afni = config.functionalMasking.includes('FSL_AFNI') - c.functional.anatomical_registration.functional_masking.anat_refined = config.functionalMasking.includes('Anatomical_Refined') - - c.functional.anatomical_registration.functional_masking.fsl.configuration.functional_mean = config.bold_bet_functional_mean_boolean - c.functional.anatomical_registration.functional_masking.fsl.configuration.threshold = config.bold_bet_frac - c.functional.anatomical_registration.functional_masking.fsl.configuration.mesh = config.bold_bet_mesh_boolean - c.functional.anatomical_registration.functional_masking.fsl.configuration.surface_outline = config.bold_bet_outline - c.functional.anatomical_registration.functional_masking.fsl.configuration.padding = config.bold_bet_padding - c.functional.anatomical_registration.functional_masking.fsl.configuration.radius = config.bold_bet_radius - c.functional.anatomical_registration.functional_masking.fsl.configuration.reduce_bias = config.bold_bet_reduce_bias - c.functional.anatomical_registration.functional_masking.fsl.configuration.remove_eyes = config.bold_bet_remove_eyes - c.functional.anatomical_registration.functional_masking.fsl.configuration.robust_brain_center = config.bold_bet_robust - c.functional.anatomical_registration.functional_masking.fsl.configuration.skull = config.bold_bet_skull - c.functional.anatomical_registration.functional_masking.fsl.configuration.surfaces = config.bold_bet_surfaces - c.functional.anatomical_registration.functional_masking.fsl.configuration.apply_threshold = config.bold_bet_threshold - c.functional.anatomical_registration.functional_masking.fsl.configuration.vertical_gradient = config.bold_bet_vertical_gradient - - if (typeof config.runRegisterFuncToTemplate === "string") { - config.skullstrip_option = [config.skullstrip_option] - } - - if (config.distortion_correction.includes("Off")) { - c.functional.template_registration.enabled = false - } - - if (config.runRegisterFuncToTemplate.includes("T1_template")) { - c.functional.template_registration.enabled = true - c.functional.template_registration.t1_template.enabled = true - } - - if (config.runRegisterFuncToTemplate.includes("EPI_template")) { - c.functional.template_registration.enabled = true - c.functional.template_registration.epi_template.enabled = true - } - - c.functional.template_registration.functional_resolution = config.resolution_for_func_preproc.replace(/mm/g, "") - c.functional.template_registration.derivative_resolution = config.resolution_for_func_derivative.replace(/mm/g, "") - c.functional.template_registration.template_for_resample = - config.template_for_resample - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - c.functional.template_registration.identity_matrix = - config.identityMatrix - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - c.functional.template_registration.epi_template.template_epi = config.template_epi - c.functional.template_registration.t1_template.brain_template = - config.template_brain_only_for_func - .replace("${resolution_for_func_preproc}", "${pipeline.functional.template_registration.functional_resolution}mm") - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - c.functional.template_registration.t1_template.skull_template = - config.template_skull_for_func - .replace("${resolution_for_func_preproc}", "${pipeline.functional.template_registration.functional_resolution}mm") - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - - -// add ants_para - - c.functional.template_registration.epi_template.ANTs_para_EPI_registration = {} - if (config.ANTs_para_EPI_registration && config.ANTs_para_EPI_registration.length > 0) { - const ANTs_para_EPI = config.ANTs_para_EPI_registration - for (const k of [ - ['collapse_output_transforms', 'collapse-output-transforms'], - ['dimensionality', 'dimensionality'], - ['initial_moving_transform', 'initial-moving-transform'], - ['transforms', 'transforms'], - ]) { - let listItem = ANTs_para_EPI.filter((item) => k[1] in item) // find a config in the list of config - if (listItem.length > 0 && k[1] != 'transforms') { // check if it found anything - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]] = listItem[0][k[1]] - } - - else if (listItem.length > 0 && k[1] == 'transforms') { - c.functional.template_registration.epi_template.ANTs_para_EPI_registration['transforms'] = {} // add {} to push next layer values - c.functional.template_registration.epi_template.ANTs_para_EPI_registration['transforms']['Rigid'] = {} - c.functional.template_registration.epi_template.ANTs_para_EPI_registration['transforms']['Affine'] = {} - c.functional.template_registration.epi_template.ANTs_para_EPI_registration['transforms']['SyN'] = {} - for (const t of [ - 'Rigid', - 'Affine', - 'SyN', - ]) { - let listItem_transform = listItem[0]["transforms"].filter((item) => t in item) - if (listItem_transform.length == 0){ - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['enabled'] = false - } - else if (listItem_transform.length > 0 ) { - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['enabled'] = true - if (t != 'SyN'){ - for (const j of [ - ['gradientStep', 'gradientStep'], - ['convergence', 'convergence'], - ['smoothing_sigmas', 'smoothing-sigmas'], - ['shrink_factors', 'shrink-factors'], - ['use_histogram_matching', 'use-histogram-matching'], - ]) - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t][j[0]] = listItem_transform[0][t][j[1]] - } - else if (t == 'SyN'){ - for (const j of [ - ['gradientStep', 'gradientStep'], - ['updateFieldVarianceInVoxelSpace','updateFieldVarianceInVoxelSpace'], - ['totalFieldVarianceInVoxelSpace','totalFieldVarianceInVoxelSpace'], - ['convergence','convergence'], - ['smoothing_sigmas','smoothing-sigmas'], - ['shrink_factors','shrink-factors'], - ['use_histogram_matching', 'use-histogram-matching'], - ['winsorize_image_intensities', 'winsorize-image-intensities'], - ]) - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t][j[0]] = listItem_transform[0][t][j[1]] - } - - if (listItem_transform[0][t]['metric']['type'] == 'MI') { - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric'] = {} - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type'] = {} - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type']['MI'] = {} - delete listItem_transform[0][t]['metric']['type'] - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type']['MI'] = listItem_transform[0][t]['metric'] - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type']['MI']['enabled'] = true - } - else if (listItem_transform[0][t]['metric']['type'] == 'CC') { - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric'] = {} - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type'] = {} - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type']['CC'] = {} - delete listItem_transform[0][t]['metric']['type'] - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type']['CC'] = listItem_transform[0][t]['metric'] - c.functional.template_registration.epi_template.ANTs_para_EPI_registration[k[0]][t]['metric']['type']['CC']['enabled'] = true - } - } - } - } - } - } -// add ants-para - c.functional.nuisance_regression.enabled = config.runNuisance.includes(1) - c.functional.nuisance_regression.lateral_ventricles_mask = - config.lateral_ventricles_mask - .replace("$FSLDIR", "${environment.paths.fsl_dir}") - - - if (config.runFrequencyFiltering) { - throw "Invalid pipeline version, please update nuisance regression." - } - - const templateRegressors = clone(defaultTemplate.versions.default.configuration.functional.nuisance_regression.regressors[0]) - - c.functional.nuisance_regression.regressors = [] - if (config.Regressors) { - for (const regressor of config.Regressors) { - - const newRegressor = clone(templateRegressors) - - if (newRegressor.GreyMatter) { - newRegressor.GrayMatter = newRegressor.GreyMatter - } - - for (const k of [ - 'GrayMatter', - 'WhiteMatter', - 'CerebrospinalFluid', - 'aCompCor', - 'tCompCor', - 'GlobalSignal', - 'Motion', - 'PolyOrt', - 'Bandpass', - 'Censor', - ]) { - if (!regressor[k]) { - newRegressor[k].enabled = false - continue - } - const overwriteMerge = (destinationArray, sourceArray, options) => sourceArray - newRegressor[k] = deepmerge(newRegressor[k], clone(regressor[k]), { arrayMerge: overwriteMerge }) - if (typeof(newRegressor[k].summary) === "string") { - newRegressor[k].summary = { - method: newRegressor[k].summary - } - } - } - - c.functional.nuisance_regression.regressors.push(newRegressor) - } - } - - c.functional.median_angle_correction.enabled = config.runMedianAngleCorrection.includes(1) - c.functional.median_angle_correction.target_angle = config.targetAngleDeg[0] - - c.functional.aroma.enabled = (config.runICA || []).includes(1) - c.functional.aroma.denoising_strategy = - config.aroma_denoise_type === 'nonaggr' ? 'non-aggressive' : 'aggressive' - - c.functional.smoothing.enabled = config.run_smoothing.includes(1) - c.functional.smoothing.kernel_fwhm = config.fwhm[0] - c.functional.smoothing.before_zscore = config.smoothing_order[0] == 'Before' - c.functional.smoothing.zscore_derivatives = config.runZScoring.includes(1) - - // longitudinal - if (config.run_longitudinal.includes("anat")) { - c.longitudinal.run_anatomical = true - } - - if (config.run_longitudinal.includes("func")) { - c.longitudinal.run_functional = true - } - - c.longitudinal.average_method = config.longitudinal_template_average_method - c.longitudinal.dof = config.longitudinal_template_dof - c.longitudinal.interpolation = config.longitudinal_template_interp - c.longitudinal.cost_function = config.longitudinal_template_cost - c.longitudinal.thread_pool = config.longitudinal_template_thread_pool - c.longitudinal.convergence_threshold = config.longitudinal_template_convergence_threshold - - c.derivatives.timeseries_extraction.enabled = config.runROITimeseries.includes(1) - - if (config.tsa_roi_paths instanceof Array && config.tsa_roi_paths.length > 0) { - config.tsa_roi_paths = config.tsa_roi_paths[0] - } - if (typeof config.tsa_roi_paths == 'object') { - for (let mask of Object.keys(config.tsa_roi_paths)) { - let analysis = config.tsa_roi_paths[mask] - if (typeof analysis === "string") { - analysis = analysis.split(",") - } - analysis = analysis.map(s => s.trim().toLowerCase()) - - c.derivatives.timeseries_extraction.masks.push({ - mask, - average: analysis.includes("avg"), - voxel: analysis.includes("voxel"), - spatial_regression: analysis.includes("spatialreg"), - pearson_correlation: analysis.includes("pearsoncorr"), - partial_correlation: analysis.includes("partialcorr"), - }) - } - } - - if (config.realignment.includes("ROI_to_func")) { - c.derivatives.timeseries_extraction.realignment.roi_to_func = true - c.derivatives.timeseries_extraction.realignment.func_to_roi = false - } - - if (config.realignment.includes("func_to_ROI")) { - c.derivatives.timeseries_extraction.realignment.roi_to_func = false - c.derivatives.timeseries_extraction.realignment.func_to_roi = true - } - - c.derivatives.timeseries_extraction.outputs.csv = config.roiTSOutputs[0] - c.derivatives.timeseries_extraction.outputs.numpy = config.roiTSOutputs[1] - - c.derivatives.sca.enabled = config.runSCA.includes(1) - - if (config.sca_roi_paths instanceof Array && config.sca_roi_paths.length > 0) { - config.sca_roi_paths = config.sca_roi_paths[0] - } - if (typeof config.sca_roi_paths == 'object') { - for (let mask of Object.keys(config.sca_roi_paths)) { - let analysis = config.sca_roi_paths[mask] - if (typeof analysis === "string") { - analysis = analysis.split(",") - } - analysis = analysis.map(s => s.trim().toLowerCase()) - - c.derivatives.sca.masks.push({ - mask, - average: analysis.includes("avg"), - dual_regression: analysis.includes("dualreg"), - multiple_regression: analysis.includes("multreg"), - }) - } - } - - c.derivatives.sca.normalize = config.mrsNorm - - c.derivatives.vmhc.enabled = config.runVMHC.includes(1) - c.derivatives.vmhc.symmetric_brain = config.template_symmetric_brain_only - .replace("${resolution_for_anat}", "${pipeline.anatomical.registration.resolution}mm") - c.derivatives.vmhc.symmetric_skull = config.template_symmetric_skull - .replace("${resolution_for_anat}", "${pipeline.anatomical.registration.resolution}mm") - c.derivatives.vmhc.dilated_symmetric_brain = config.dilated_symmetric_brain_mask - .replace("${resolution_for_anat}", "${pipeline.anatomical.registration.resolution}mm") - c.derivatives.vmhc.flirt_configuration_file = config.configFileTwomm - - c.derivatives.alff.enabled = config.runALFF.includes(1) - c.derivatives.alff.cutoff.low = config.lowPassFreqALFF[0] - c.derivatives.alff.cutoff.high = config.highPassFreqALFF[0] - - c.derivatives.reho.enabled = config.runReHo.includes(1) - c.derivatives.reho.cluster_size = config.clusterSize - - c.derivatives.network_centrality.enabled = config.runNetworkCentrality.includes(1) - c.derivatives.network_centrality.mask = config.templateSpecificationFile || '' - - const thresh_types = { - "Significance threshold": 'significance', - "Sparsity threshold": 'sparsity', - "Correlation threshold": 'correlation', - } - - c.derivatives.network_centrality.degree_centrality.binarized = config.degWeightOptions[0] - c.derivatives.network_centrality.degree_centrality.weighted = config.degWeightOptions[1] - c.derivatives.network_centrality.degree_centrality.threshold_type = thresh_types[config.degCorrelationThresholdOption[0]] - c.derivatives.network_centrality.degree_centrality.threshold = config.degCorrelationThreshold - - c.derivatives.network_centrality.eigenvector.binarized = config.eigWeightOptions[0] - c.derivatives.network_centrality.eigenvector.weighted = config.eigWeightOptions[1] - c.derivatives.network_centrality.eigenvector.threshold_type = thresh_types[config.eigCorrelationThresholdOption[0]] - c.derivatives.network_centrality.eigenvector.threshold = config.eigCorrelationThreshold - - c.derivatives.network_centrality.local_connectivity_density.binarized = config.lfcdWeightOptions[0] - c.derivatives.network_centrality.local_connectivity_density.weighted = config.lfcdWeightOptions[1] - c.derivatives.network_centrality.local_connectivity_density.threshold_type = thresh_types[config.lfcdCorrelationThresholdOption[0]] - c.derivatives.network_centrality.local_connectivity_density.threshold = config.lfcdCorrelationThreshold - - c.derivatives.pypeer.enabled = config.run_pypeer.includes(1) - c.derivatives.pypeer.eye_scan_names = config.peer_eye_scan_names.join(', ') - c.derivatives.pypeer.data_scan_names = config.peer_data_scan_names.join(', ') - c.derivatives.pypeer.eye_mask_path = config.eye_mask_path.replace("${resolution_for_func_preproc}", "${pipeline.functional.template_registration.functional_resolution}mm") - c.derivatives.pypeer.stimulus_path = config.peer_stimulus_path || '' - c.derivatives.pypeer.gsr = config.peer_gsr - c.derivatives.pypeer.scrub.enabled = config.peer_scrub - c.derivatives.pypeer.scrub.threshold = config.peer_scrub_thresh - - return t -} - - -export function dump(pipeline, version='0') { - - function replacements(yaml, pipeline, environment) { - return eval('`' + yaml.replace(/`/g,'\\`') +'`') - } - - const c = pipeline.versions[version].configuration - - const config = {} - - config.runOnGrid = c.general.environment.grid - config.FSLDIR = "$FSLDIR" - config.resourceManager = c.general.environment.resource - config.parallelEnvironment = c.general.environment.SGEenvironment - config.queue = c.general.environment.queue - config.maximumMemoryPerParticipant = c.general.environment.memory - config.maxCoresPerParticipant = c.general.environment.cores - config.numParticipantsAtOnce = c.general.environment.participants - config.num_ants_threads = c.general.environment.ants_threads - config.pipelineName = slugify(pipeline.name) - config.workingDirectory = c.general.environment.paths.working - config.crashLogDirectory = c.general.environment.paths.crash - config.logDirectory = c.general.environment.paths.log - config.outputDirectory = c.general.environment.paths.output - config.awsOutputBucketCredentials = "" - config.s3Encryption = [c.general.environment.outputs.s3 ? 1 : 0] - config.write_func_outputs = [c.general.environment.outputs.extra ? 1 : 0] - config.write_debugging_outputs = [c.general.environment.outputs.debug ? 1 : 0] - config.generateQualityControlImages = [c.general.environment.outputs.quality_control ? 1 : 0] - config.removeWorkingDir = c.general.environment.outputs.remove_working - config.run_logging = c.general.environment.outputs.logging - config.reGenerateOutputs = c.general.environment.outputs.regenerate - config.runSymbolicLinks = [c.general.environment.outputs.organized ? 1 : 0] - - config.surface_analysis = [ - { 'run_freesurfer': c.anatomical.surface.enabled }, - ] - - config.non_local_means_filtering = c.anatomical.preprocessing.methods.nlmf.enabled - config.n4_bias_field_correction = c.anatomical.preprocessing.methods.n4.enabled - config.acpc_align = c.anatomical.preprocessing.methods.acpc_align.enabled - config.acpc_brainsize = parseInt(c.anatomical.preprocessing.methods.acpc_align.acpc_brainsize) - config.acpc_template_skull = c.anatomical.preprocessing.methods.acpc_align.acpc_template_skull - config.acpc_template_brain = c.anatomical.preprocessing.methods.acpc_align.acpc_template_brain - - config.already_skullstripped = [c.anatomical.skull_stripping.enabled ? 0 : 1] - config.skullstrip_option = [] - .concat(c.anatomical.skull_stripping.methods.afni.enabled ? ["AFNI"] : []) - .concat(c.anatomical.skull_stripping.methods.bet.enabled ? ["FSL"] : []) - .concat(c.anatomical.skull_stripping.methods.niworkflows_ants.enabled ? ["niworkflows-ants"] : []) - .concat(c.anatomical.skull_stripping.methods.unet.enabled ? ["unet"] : []) - - config.skullstrip_mask_vol = c.anatomical.skull_stripping.methods.afni.configuration.mask_vol - config.skullstrip_shrink_factor = c.anatomical.skull_stripping.methods.afni.configuration.shrink_factor.threshold - config.skullstrip_var_shrink_fac = c.anatomical.skull_stripping.methods.afni.configuration.shrink_factor.vary - config.skullstrip_shrink_factor_bot_lim = c.anatomical.skull_stripping.methods.afni.configuration.shrink_factor.bottom_limit - config.skullstrip_avoid_vent = c.anatomical.skull_stripping.methods.afni.configuration.avoid_ventricles - config.skullstrip_n_iterations = c.anatomical.skull_stripping.methods.afni.configuration.iterations - config.skullstrip_pushout = c.anatomical.skull_stripping.methods.afni.configuration.pushout - config.skullstrip_touchup = c.anatomical.skull_stripping.methods.afni.configuration.touchup - config.skullstrip_fill_hole = c.anatomical.skull_stripping.methods.afni.configuration.fill_hole - config.skullstrip_NN_smooth = c.anatomical.skull_stripping.methods.afni.configuration.nearest_neighbors_smooth - config.skullstrip_smooth_final = c.anatomical.skull_stripping.methods.afni.configuration.final_smooth - config.skullstrip_avoid_eyes = c.anatomical.skull_stripping.methods.afni.configuration.avoid_eyes - config.skullstrip_use_edge = c.anatomical.skull_stripping.methods.afni.configuration.use_edge - config.skullstrip_exp_frac = c.anatomical.skull_stripping.methods.afni.configuration.fractional_expansion - config.skullstrip_push_to_edge = c.anatomical.skull_stripping.methods.afni.configuration.push_to_edge - config.skullstrip_use_skull = c.anatomical.skull_stripping.methods.afni.configuration.use_skull - config.skullstrip_perc_int = c.anatomical.skull_stripping.methods.afni.configuration.intersections.ratio - config.skullstrip_max_inter_iter = c.anatomical.skull_stripping.methods.afni.configuration.intersections.iterations - config.skullstrip_fac = c.anatomical.skull_stripping.methods.afni.configuration.multiplier - config.skullstrip_blur_fwhm = c.anatomical.skull_stripping.methods.afni.configuration.blur_fwhm - config.skullstrip_monkey = c.anatomical.skull_stripping.methods.afni.configuration.skullstrip_monkey - - config.bet_frac = c.anatomical.skull_stripping.methods.bet.configuration.threshold - config.bet_mask_boolean = c.anatomical.skull_stripping.methods.bet.configuration.mask - config.bet_mesh_boolean = c.anatomical.skull_stripping.methods.bet.configuration.mesh - config.bet_outline = c.anatomical.skull_stripping.methods.bet.configuration.surface_outline - config.bet_padding = c.anatomical.skull_stripping.methods.bet.configuration.padding - config.bet_radius = c.anatomical.skull_stripping.methods.bet.configuration.radius - config.bet_reduce_bias = c.anatomical.skull_stripping.methods.bet.configuration.reduce_bias - config.bet_remove_eyes = c.anatomical.skull_stripping.methods.bet.configuration.remove_eyes - config.bet_robust = c.anatomical.skull_stripping.methods.bet.configuration.robust_brain_center - config.bet_skull = c.anatomical.skull_stripping.methods.bet.configuration.skull - config.bet_surfaces = c.anatomical.skull_stripping.methods.bet.configuration.surfaces - config.bet_threshold = c.anatomical.skull_stripping.methods.bet.configuration.apply_threshold - config.bet_vertical_gradient = c.anatomical.skull_stripping.methods.bet.configuration.vertical_gradient - - if (typeof c.anatomical.registration.resolution === "number") { - config.resolution_for_anat = c.anatomical.registration.resolution + "mm" - } else { - config.resolution_for_anat = c.anatomical.registration.resolution.join('mmx') + 'mm' - } - - config.niworkflows_ants_template_path = c.anatomical.skull_stripping.methods.niworkflows_ants.ants_templates.niworkflows_ants_template_path - config.niworkflows_ants_mask_path = c.anatomical.skull_stripping.methods.niworkflows_ants.ants_templates.niworkflows_ants_mask_path - config.niworkflows_ants_regmask_path = c.anatomical.skull_stripping.methods.niworkflows_ants.ants_templates.niworkflows_ants_regmask_path - - config.unet_model = c.anatomical.skull_stripping.methods.unet.unet_model - - config.template_brain_only_for_anat = c.anatomical.registration.brain_template - config.template_skull_for_anat = c.anatomical.registration.skull_template - config.regOption = ['ANTS'] - - config.regOption = [] - .concat(c.anatomical.registration.methods.ants.enabled ? ["ANTS"] : []) - .concat(c.anatomical.registration.methods.fsl.enabled ? ["FSL"] : []) - - config.use_lesion_mask = [c.anatomical.registration.methods.ants.configuration.lesion_mask ? 1 : 0] - - config.fsl_linear_reg_only = [c.anatomical.registration.methods.fsl.configuration.linear_only ? 1 : 0] - - config.fnirtConfig = c.anatomical.registration.methods.fsl.configuration.config_file - config.ref_mask = c.anatomical.registration.methods.fsl.configuration.reference_mask - - switch (c.anatomical.registration.methods.ants.interpolation) { - case 'linear': - config.funcRegANTSinterpolation = 'Linear' - break; - - case 'sinc': - config.funcRegANTSinterpolation = 'LanczosWindowedSinc' - break; - - case 'spline': - config.funcRegANTSinterpolation = 'BSpline' - break; - } - - switch (c.anatomical.registration.methods.fsl.interpolation) { - case 'linear': - config.funcRegFSLinterpolation = 'trilinear' - break; - - case 'sinc': - config.funcRegFSLinterpolation = 'sinc' - break; - - case 'spline': - config.funcRegFSLinterpolation = 'spline' - break; - } - config.regWithSkull = [c.anatomical.registration.methods.ants.configuration.skull_on ? 1 : 0] - - // add ants_para T1 - const ANTs_para_T1 = c.anatomical.registration.methods.ants.ANTs_para_T1_registration - - config.ANTs_para_T1_registration = [ - { 'collapse-output-transforms': parseInt(ANTs_para_T1['collapse_output_transforms']) }, - { dimensionality: parseInt(ANTs_para_T1['dimensionality']) }, - { 'initial-moving-transform': { initializationFeature: parseInt(ANTs_para_T1['initial_moving_transform']['initializationFeature']) } }, - { 'transforms': [] }, - ] - - const transform_t1 = c.anatomical.registration.methods.ants.ANTs_para_T1_registration.transforms - - for (const k of [ - 'Rigid', - 'Affine', - 'SyN', - ]) { - - const newTransform_t1 = {} - - if (!transform_t1[k].enabled) { - continue - } - - newTransform_t1[k] = clone(transform_t1[k]) - delete newTransform_t1[k].enabled - - if (transform_t1[k]['metric']['type']['MI'] != undefined) { - newTransform_t1[k]['metric'] = { - type: 'MI', - metricWeight: parseInt(transform_t1[k]['metric']['type']['MI']['metricWeight']), - numberOfBins: parseInt(transform_t1[k]['metric']['type']['MI']['numberOfBins']), - samplingStrategy: transform_t1[k]['metric']['type']['MI']['samplingStrategy'], - samplingPercentage: parseInt(transform_t1[k]['metric']['type']['MI']['samplingPercentage']), - } - } - if (transform_t1[k]['metric']['type']['CC'] != undefined) { - newTransform_t1[k]['metric'] = { - type: 'CC', - metricWeight: parseInt(transform_t1[k]['metric']['type']['CC']['metricWeight']), - radius: parseInt(transform_t1[k]['metric']['type']['CC']['radius']), - } - } - config.ANTs_para_T1_registration[3].transforms.push(newTransform_t1) - } -// add ants_para T1 - - config.runSegmentationPreprocessing = [c.anatomical.tissue_segmentation.enabled ? 1 : 0] - config.seg_use_priors = c.anatomical.tissue_segmentation.configuration.priors.enabled - config.priors_path = "$FSLDIR/data/standard/tissuepriors/2mm" - config.PRIORS_WHITE = c.anatomical.tissue_segmentation.configuration.priors.priors.white_matter - config.PRIORS_GRAY = c.anatomical.tissue_segmentation.configuration.priors.priors.gray_matter - config.PRIORS_CSF = c.anatomical.tissue_segmentation.configuration.priors.priors.cerebrospinal_fluid - - if (c.anatomical.tissue_segmentation.configuration.fast_threshold.enabled) { - config.seg_use_threshold = ['FSL-FAST Thresholding'] - } else if (c.anatomical.tissue_segmentation.configuration.custom_threshold.enabled) { - config.seg_use_threshold = ['Customized Thresholding'] } - - // seg_{tissue}_threshold_value not strict to custom_threshold.enabled, avoid undefined fields in yml - config.seg_WM_threshold_value = c.anatomical.tissue_segmentation.configuration.custom_threshold.threshold.white_matter - config.seg_GM_threshold_value = c.anatomical.tissue_segmentation.configuration.custom_threshold.threshold.gray_matter - config.seg_CSF_threshold_value = c.anatomical.tissue_segmentation.configuration.custom_threshold.threshold.cerebrospinal_fluid - - config.seg_use_erosion = [c.anatomical.tissue_segmentation.configuration.erosion.enabled ? 1 : 0] - config.seg_erosion_prop = c.anatomical.tissue_segmentation.configuration.erosion.proportion - - - config.template_based_segmentation = [] - .concat(c.anatomical.tissue_segmentation.configuration.template_based_seg.enabled ? ["None"] : []) - .concat(c.anatomical.tissue_segmentation.configuration.template_based_seg.methods === 'epi_template_based' ? 'EPI_template' : 'T1_template') - - config.template_based_segmentation_WHITE = c.anatomical.tissue_segmentation.configuration.template_based_seg.tissue_path.white_matter - config.template_based_segmentation_GRAY = c.anatomical.tissue_segmentation.configuration.template_based_seg.tissue_path.gray_matter - config.template_based_segmentation_CSF = c.anatomical.tissue_segmentation.configuration.template_based_seg.tissue_path.cerebrospinal_fluid - - // ants priors based segmentation - config.ANTs_prior_based_segmentation = [c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.enabled ? 1 : 0] - config.ANTs_prior_seg_CSF_label = c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.CSF_label - config.ANTs_prior_seg_left_GM_label = c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.left_GM_label - config.ANTs_prior_seg_right_GM_label = c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.right_GM_label - config.ANTs_prior_seg_left_WM_label = c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.left_WM_label - config.ANTs_prior_seg_right_WM_label = c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.right_WM_label - - config.ANTs_prior_seg_template_brain_list = [] - for (const mask of c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.template_brain_list) { - config.ANTs_prior_seg_template_brain_list.push(mask.mask) - } - config.ANTs_prior_seg_template_segmentation_list = [] - for (const mask of c.anatomical.tissue_segmentation.configuration.ANTs_prior_based_seg.template_segmentation_list) { - config.ANTs_prior_seg_template_segmentation_list.push(mask.mask) - } - - config.runFunctional = c.functional.enabled ? [1] : [0] - - config.n4_correct_mean_EPI = c.functional.preprocessing.n4_mean_epi.enabled - config.runMotionStatisticsFirst = [c.functional.preprocessing.motion_stats.enabled ? 1 : 0] - - config.motion_correction = [] - .concat(c.functional.preprocessing.motion_correction.method.volreg ? ["3dvolreg"] : []) - .concat(c.functional.preprocessing.motion_correction.method.mcflirt ? ["mcflirt"] : []) - - config.motion_correction_reference = [] - .concat(c.functional.preprocessing.motion_correction.reference.mean ? ["mean"] : []) - .concat(c.functional.preprocessing.motion_correction.reference.median ? ["median"] : []) - .concat(c.functional.preprocessing.motion_correction.reference.selected_volume ? ["selected volume"] : []) - - config.motion_correction_reference_volume = c.functional.preprocessing.motion_correction.reference.reference_volume - - config.runDespike = [c.functional.preprocessing.despike.enabled ? 1 : 0] - config.runScaling = c.functional.preprocessing.scaling.enabled - config.scaling_factor = c.functional.preprocessing.scaling.factor - - // @TODO review pattern and stop idx - config.slice_timing_correction = [c.functional.slice_timing_correction.enabled ? 1 : 0] - config.TR = c.functional.slice_timing_correction.repetition_time.trim() === "" ? null : c.functional.slice_timing_correction.repetition_time - config.slice_timing_pattern = - c.functional.slice_timing_correction.pattern === "header" ? - "Use NIFTI Header": c.functional.slice_timing_correction.pattern - - config.startIdx = c.functional.slice_timing_correction.first_timepoint === "" ? - 0 : parseInt(c.functional.slice_timing_correction.first_timepoint) - - config.stopIdx = c.functional.slice_timing_correction.last_timepoint === "" ? - null : parseInt(c.functional.slice_timing_correction.last_timepoint) - - config.functional_volreg_twopass = c.functional.slice_timing_correction.two_pass - - if (c.functional.distortion_correction.enabled) { - config.distortion_correction = [] - .concat(c.functional.distortion_correction.method.phasediff.enabled ? ["PhaseDiff"] : []) - .concat(c.functional.distortion_correction.method.blip.enabled ? ["Blip"] : []) - } else { - config.distortion_correction = ["None"] - } - - [c.functional.distortion_correction.enabled ? 1 : 0] - config.fmap_distcorr_skullstrip = [c.functional.distortion_correction.method.phasediff.skull_stripping === 'bet' ? 'BET' : 'AFNI'] - - switch (c.functional.distortion_correction.method.phasediff.skull_stripping) { - case 'bet': - c.functional.distortion_correction.method.phasediff.threshold = c.functional.distortion_correction.method.phasediff.threshold_bet - config.fmap_distcorr_frac = [c.functional.distortion_correction.method.phasediff.threshold] - config.fmap_distcorr_threshold = [c.functional.distortion_correction.method.phasediff.threshold_afni] - break; - case 'afni': - c.functional.distortion_correction.method.phasediff.threshold = c.functional.distortion_correction.method.phasediff.threshold_afni - config.fmap_distcorr_threshold = [c.functional.distortion_correction.method.phasediff.threshold] - config.fmap_distcorr_frac = [c.functional.distortion_correction.method.phasediff.threshold_bet] - break; - } - config.fmap_distcorr_deltaTE = [c.functional.distortion_correction.method.phasediff.delta_te] - config.fmap_distcorr_dwell_time = [c.functional.distortion_correction.method.phasediff.dwell_time] - config.fmap_distcorr_dwell_asym_ratio = [c.functional.distortion_correction.method.phasediff.dwell_to_assymetric_ratio] - config.fmap_distcorr_pedir = c.functional.distortion_correction.method.phasediff.phase_encoding_direction - - config.runRegisterFuncToAnat = [c.functional.anatomical_registration.enabled ? 1 : 0] - config.runBBReg = [c.functional.anatomical_registration.bb_registration ? 1 : 0] - config.boundaryBasedRegistrationSchedule = c.functional.anatomical_registration.bb_registration_scheduler - config.func_reg_input = [c.functional.anatomical_registration.registration_input === 'mean' ? - "Mean Functional" : "Selected Functional Volume"] - - config.func_reg_input_volume = c.functional.anatomical_registration.functional_volume - config.functionalMasking = [] - .concat(c.functional.anatomical_registration.functional_masking.fsl.enabled ? ["FSL"] : []) - .concat(c.functional.anatomical_registration.functional_masking.afni ? ["AFNI"] : []) - .concat(c.functional.anatomical_registration.functional_masking.fsl_afni ? ["FSL_AFNI"] : []) - .concat(c.functional.anatomical_registration.functional_masking.anat_refined ? ["Anatomical_Refined"] : []) - - config.bold_bet_functional_mean_boolean = c.functional.anatomical_registration.functional_masking.fsl.configuration.functional_mean - config.bold_bet_frac = c.functional.anatomical_registration.functional_masking.fsl.configuration.threshold - config.bold_bet_mesh_boolean = c.functional.anatomical_registration.functional_masking.fsl.configuration.mesh - config.bold_bet_outline = c.functional.anatomical_registration.functional_masking.fsl.configuration.surface_outline - config.bold_bet_padding = c.functional.anatomical_registration.functional_masking.fsl.configuration.padding - config.bold_bet_radius = c.functional.anatomical_registration.functional_masking.fsl.configuration.radius - config.bold_bet_reduce_bias = c.functional.anatomical_registration.functional_masking.fsl.configuration.reduce_bias - config.bold_bet_remove_eyes = c.functional.anatomical_registration.functional_masking.fsl.configuration.remove_eyes - config.bold_bet_robust = c.functional.anatomical_registration.functional_masking.fsl.configuration.robust_brain_center - config.bold_bet_skull = c.functional.anatomical_registration.functional_masking.fsl.configuration.skull - config.bold_bet_surfaces = c.functional.anatomical_registration.functional_masking.fsl.configuration.surfaces - config.bold_bet_threshold = c.functional.anatomical_registration.functional_masking.fsl.configuration.apply_threshold - config.bold_bet_vertical_gradient = c.functional.anatomical_registration.functional_masking.fsl.configuration.vertical_gradient - - config.runRegisterFuncToTemplate = [] - .concat(c.functional.template_registration.t1_template.enabled ? ["T1_template"] : []) - .concat(c.functional.template_registration.epi_template.enabled ? ["EPI_template"] : []) - .concat(c.functional.template_registration.enabled ? ["Off"] : []) - - if (c.functional.template_registration.functional_resolution.includes("x")) { - var xind = [] - for(var i = 0; i < c.functional.template_registration.functional_resolution.length; i++) { - if (c.functional.template_registration.functional_resolution[i] === "x") xind.push(i) - } - config.resolution_for_func_preproc = c.functional.template_registration.functional_resolution.slice(0, xind[0]) + "mm" + c.functional.template_registration.functional_resolution.slice(xind[0], xind[1]) + "mm" + c.functional.template_registration.functional_resolution.slice(xind[1]) + "mm" - } else { - config.resolution_for_func_preproc = c.functional.template_registration.functional_resolution + "mm" - } - - if (c.functional.template_registration.derivative_resolution.includes("x")) { - var xind = [] - for(var i = 0; i < c.functional.template_registration.derivative_resolution.length; i++) { - if (c.functional.template_registration.derivative_resolution[i] === "x") xind.push(i) - } - config.resolution_for_func_derivative = c.functional.template_registration.derivative_resolution.slice(0, xind[0]) + "mm" + c.functional.template_registration.derivative_resolution.slice(xind[0], xind[1]) + "mm" + c.functional.template_registration.derivative_resolution.slice(xind[1]) + "mm" - } else { - config.resolution_for_func_derivative = c.functional.template_registration.derivative_resolution + "mm" - } - config.template_for_resample = c.functional.template_registration.template_for_resample - config.identityMatrix = c.functional.template_registration.identity_matrix - config.template_epi = c.functional.template_registration.epi_template.template_epi - config.template_brain_only_for_func = c.functional.template_registration.t1_template.brain_template - config.template_skull_for_func = c.functional.template_registration.t1_template.skull_template - -// add ants_para - const ANTs_para_EPI = c.functional.template_registration.epi_template.ANTs_para_EPI_registration - - config.ANTs_para_EPI_registration = [ - { 'collapse-output-transforms': parseInt(ANTs_para_EPI['collapse_output_transforms']) }, - { dimensionality: parseInt(ANTs_para_EPI['dimensionality']) }, - { 'initial-moving-transform': { initializationFeature: parseInt(ANTs_para_EPI['initial_moving_transform']['initializationFeature'])}}, - { 'transforms': []}, - ] - - const transform = c.functional.template_registration.epi_template.ANTs_para_EPI_registration.transforms - - for (const k of [ - 'Rigid', - 'Affine', - 'SyN', - ]) { - - const newTransform = {} - - if (!transform[k].enabled) { - continue - } - - newTransform[k] = clone(transform[k]) - delete newTransform[k].enabled - - if (transform[k]['metric']['type']['MI'] != undefined) { - newTransform[k]['metric'] = { - type: 'MI', - metricWeight: parseInt(transform[k]['metric']['type']['MI']['metricWeight']), - numberOfBins: parseInt(transform[k]['metric']['type']['MI']['numberOfBins']), - samplingStrategy: transform[k]['metric']['type']['MI']['samplingStrategy'], - samplingPercentage: parseInt(transform[k]['metric']['type']['MI']['samplingPercentage']), - } - } - if (transform[k]['metric']['type']['CC'] != undefined) { - newTransform[k]['metric'] = { - type: 'CC', - metricWeight: parseInt(transform[k]['metric']['type']['CC']['metricWeight']), - radius: parseInt(transform[k]['metric']['type']['CC']['radius']), - } - } - config.ANTs_para_EPI_registration[3].transforms.push(newTransform) - } -// add ants_para - - config.runICA = [c.functional.aroma.enabled ? 1 : 0] - config.aroma_denoise_type = c.functional.aroma.denoising_strategy === 'non-aggressive' ? "nonaggr" : "aggr" - - config.runNuisance = [c.functional.nuisance_regression.enabled ? 1 : 0] - config.lateral_ventricles_mask = c.functional.nuisance_regression.lateral_ventricles_mask - - config.Regressors = [] - for (const regressor of c.functional.nuisance_regression.regressors) { - - const newRegressor = {} - - for (const k of [ - 'GrayMatter', - 'WhiteMatter', - 'CerebrospinalFluid', - 'aCompCor', - 'tCompCor', - 'GlobalSignal', - 'Motion', - 'PolyOrt', - 'Bandpass', - 'Censor', - ]){ - if (!regressor[k].enabled) { - continue - } - newRegressor[k] = clone(regressor[k]) - delete newRegressor[k].enabled - } - - config.Regressors.push(newRegressor) - } - - config.runMedianAngleCorrection = [c.functional.median_angle_correction.enabled ? 1 : 0] - config.targetAngleDeg = [c.functional.median_angle_correction.target_angle] - - // longitudinal - config.run_longitudinal = [] - .concat(c.longitudinal.run_anatomical ? ["anat"] : []) - .concat(c.longitudinal.run_functional ? ["func"] : []) - - config.longitudinal_template_average_method = c.longitudinal.average_method - config.longitudinal_template_dof = c.longitudinal.dof - config.longitudinal_template_interp = c.longitudinal.interpolation - config.longitudinal_template_cost = c.longitudinal.cost_function - config.longitudinal_template_thread_pool = c.longitudinal.thread_pool - config.longitudinal_template_convergence_threshold = c.longitudinal.convergence_threshold - - config.runROITimeseries = [c.derivatives.timeseries_extraction.enabled ? 1 : 0] - - config.tsa_roi_paths = [{}] - - for (const mask of c.derivatives.timeseries_extraction.masks) { - let maskFeatures = [] - .concat(mask.average ? ['Avg'] : []) - .concat(mask.voxel ? ['Voxel'] : []) - .concat(mask.spatial_regression ? ['SpatialReg'] : []) - .concat(mask.pearson_correlation ? ['PearsonCorr'] : []) - .concat(mask.partial_correlation ? ['PartialCorr'] : []) - - if (maskFeatures.length > 0) { - config.tsa_roi_paths[0][mask.mask] = maskFeatures.join(", ") - } - } - - config.realignment = [c.derivatives.timeseries_extraction.realignment.roi_to_func ? "ROI_to_func" : "func_to_ROI"] - - config.roiTSOutputs = [ - c.derivatives.timeseries_extraction.outputs.csv, - c.derivatives.timeseries_extraction.outputs.numpy - ] - - config.runSCA = [c.derivatives.sca.enabled ? 1 : 0] - - config.sca_roi_paths = [{}] - - for (const mask of c.derivatives.sca.masks) { - - let maskFeatures = [] - .concat(mask.average ? ['Avg'] : []) - .concat(mask.dual_regression ? ['DualReg'] : []) - .concat(mask.multiple_regression ? ['MultReg'] : []) - - if (maskFeatures.length > 0) { - config.sca_roi_paths[0][mask.mask] = maskFeatures.join(", ") - } - } - - config.mrsNorm = c.derivatives.sca.normalize - - config.runVMHC = [c.derivatives.vmhc.enabled ? 1 : 0] - config.template_symmetric_brain_only = c.derivatives.vmhc.symmetric_brain - config.template_symmetric_skull = c.derivatives.vmhc.symmetric_skull - config.dilated_symmetric_brain_mask = c.derivatives.vmhc.dilated_symmetric_brain - config.configFileTwomm = c.derivatives.vmhc.flirt_configuration_file - - config.runALFF = [c.derivatives.alff.enabled ? 1 : 0] - config.highPassFreqALFF = [c.derivatives.alff.cutoff.high] - config.lowPassFreqALFF = [c.derivatives.alff.cutoff.low] - - config.runReHo = [c.derivatives.reho.enabled ? 1 : 0] - config.clusterSize = c.derivatives.reho.cluster_size - - config.runNetworkCentrality = [c.derivatives.network_centrality.enabled ? 1 : 0] - config.templateSpecificationFile = c.derivatives.network_centrality.mask - - const thresholdType = { - significance: "Significance threshold", - sparsity: "Sparsity threshold", - correlation: "Correlation threshold", - } - - config.degWeightOptions = [ - c.derivatives.network_centrality.degree_centrality.binarized, - c.derivatives.network_centrality.degree_centrality.weighted - ] - config.degCorrelationThresholdOption = [thresholdType[c.derivatives.network_centrality.degree_centrality.threshold_type]] - config.degCorrelationThreshold = c.derivatives.network_centrality.degree_centrality.threshold - - config.eigWeightOptions = [ - c.derivatives.network_centrality.eigenvector.binarized, - c.derivatives.network_centrality.eigenvector.weighted - ] - config.eigCorrelationThresholdOption = [thresholdType[c.derivatives.network_centrality.eigenvector.threshold_type]] - config.eigCorrelationThreshold = c.derivatives.network_centrality.eigenvector.threshold - - config.lfcdWeightOptions = [ - c.derivatives.network_centrality.local_connectivity_density.binarized, - c.derivatives.network_centrality.local_connectivity_density.weighted - ] - config.lfcdCorrelationThresholdOption = [thresholdType[c.derivatives.network_centrality.local_connectivity_density.threshold_type]] - config.lfcdCorrelationThreshold = c.derivatives.network_centrality.local_connectivity_density.threshold - - config.run_pypeer = [c.derivatives.pypeer.enabled ? 1 : 0] - config.peer_eye_scan_names = c.derivatives.pypeer.eye_scan_names.split(',').map((t) => t.trim()) - config.peer_data_scan_names = c.derivatives.pypeer.data_scan_names.split(',').map((t) => t.trim()) - config.eye_mask_path = c.derivatives.pypeer.eye_mask_path - config.peer_stimulus_path = c.derivatives.pypeer.stimulus_path || '' - - config.peer_gsr = c.derivatives.pypeer.gsr - config.peer_scrub = c.derivatives.pypeer.scrub.enabled - config.peer_scrub_thresh = c.derivatives.pypeer.scrub.threshold - - config.memoryAllocatedForDegreeCentrality = 3.0 - - config.run_smoothing = [c.functional.smoothing.enabled ? 1 : 0] - config.fwhm = [c.functional.smoothing.kernel_fwhm] - config.smoothing_order = [c.functional.smoothing.before_zscore ? "Before" : "After"] - config.runZScoring = [c.functional.smoothing.zscore_derivatives ? 1 : 0] - - const yamled = yamlTemplate(config) - .replace(/\$\{resolution_for_anat\}/g, "${pipeline.anatomical.registration.resolution}mm") - .replace(/\$\{resolution_for_func_preproc\}/g, "${pipeline.functional.template_registration.functional_resolution}mm") - - const e = { - paths: { - fsl_dir: '$FSLDIR', - } - } - - return replacements(yamled, c, e) -} From cad88169fe4529e33228c2365ba74ada258d63f0 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 2 Jul 2021 17:22:34 -0400 Subject: [PATCH 29/66] :sparkles: Load default pipeline from GitHub to GUI --- app/containers/PipelinePage.js | 7 - app/sagas/config.js | 383 +++--- c-pac/pipeline.js | 32 +- c-pac/resources/pipeline/config.js | 721 ---------- .../pipeline/pipeline_config_template.yml | 1165 ----------------- c-pac/resources/pipeline/yaml.js | 69 +- c-pac/test/pipeline.test.js | 4 +- 7 files changed, 208 insertions(+), 2173 deletions(-) delete mode 100644 c-pac/resources/pipeline/config.js delete mode 100644 c-pac/resources/pipeline/pipeline_config_template.yml diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index a2b64b9c..fc7c23b4 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -120,8 +120,6 @@ class PipelinePage extends Component { const value = values.target.type && values.target.type == "checkbox" ? values.target.checked : values.target.value; - console.log(name); - console.log(value); return this.handleChange([[name, fromJS(value)]]); } @@ -129,10 +127,7 @@ class PipelinePage extends Component { if (typeof key == "string") { key = key.split('.') } - console.log(key); - console.log(configuration.getIn(key)); configuration = configuration.setIn(key, isImmutable(value) ? value : fromJS(value)); - console.log(configuration.getIn(key)); } this.props.pipelineVersionDirtyUpdate( @@ -140,8 +135,6 @@ class PipelinePage extends Component { configuration ) - console.log(this.props.pipeline.get('id')); - this.setState({ configuration, dirty: true, version: "0" }) } diff --git a/app/sagas/config.js b/app/sagas/config.js index 660d0dd6..edbf52f5 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -23,204 +23,199 @@ import { // import { phenotype } from './config.data' -import cpac from '@internal/c-pac' +import cpac from '@internal/c-pac'; +import { getDefaultPipeline, defaultPipelineUrl } from '@internal/c-pac/pipeline'; + +async function getPipelineDefault() { + const pipelineDefault = await getDefaultPipeline(defaultPipelineUrl); + return pipelineDefault; +} function* loadConfig (action) { - yield put(configLoading(action)) - // yield delay(500) - - const config = { - - version: VERSION, - settings: { - advanced: false, - }, - - datasets: [ - // { - // id: '0000-0000-0000-0000', - // name: 'ABIDE', - // summary: { - // participants: 1112, - // sites: 17, - // }, - // settings: { - // format: 'bids', - // base_directory: 's3://test-bucket/adhd', - // aws_credential_path: '', - // anatomical_path_template: '', - // functional_path_template: '', - // anatomical_scan: '', - // scan_parameters_path: '', - // brain_mask_path: '', - // fieldmap_phase_path_template: '', - // fieldmap_magnitude_path_template: '', - // subjects: { - // inclusion: [], - // exclusion: [], + yield put(configLoading(action)); + + let initialState = null; + + yield getPipelineDefault().then((template) => { + + console.log(template); + + const config = { + + version: VERSION, + settings: { + advanced: false, + }, + + datasets: [ + // { + // id: '0000-0000-0000-0000', + // name: 'ABIDE', + // summary: { + // participants: 1112, + // sites: 17, + // }, + // settings: { + // format: 'bids', + // base_directory: 's3://test-bucket/adhd', + // aws_credential_path: '', + // anatomical_path_template: '', + // functional_path_template: '', + // anatomical_scan: '', + // scan_parameters_path: '', + // brain_mask_path: '', + // fieldmap_phase_path_template: '', + // fieldmap_magnitude_path_template: '', + // subjects: { + // inclusion: [], + // exclusion: [], + // }, + // sites: [], + // } + // }, + + // { + // id: '0000-0000-0000-0001', + // name: 'ABIDE II ', + // summary: { + // participants: 1114, + // sites: 19, + // }, + // settings: { + // format: 'bids', + // base_directory: '', + // aws_credential_path: '', + // anatomical_path_template: '', + // functional_path_template: '', + // anatomical_scan: '', + // scan_parameters_path: '', + // brain_mask_path: '', + // fieldmap_phase_path_template: '', + // fieldmap_magnitude_path_template: '', + // subjects: { + // inclusion: [], + // exclusion: [], + // }, + // sites: [], + // } + // } + ], + + pipelines: [ + template + ], + + group_analyses: [ + { + id: '0000-0000-0000-0001', + steps: [ + { + type: 'MDMR', + parameters: { + factors: [], + covariates: [], + permutations: 1000, + } + }, + { + type: 'ISC', + parameters: { + std_filter: 0.0, + permutations: 1000, + } + }, + { + type: 'ISFC', + parameters: { + std_filter: 0.0, + permutations: 1000, + } + }, + { + type: 'QPP', + parameters: { + permutations: 1000, + iterations: 15, + window: 30, + initial_threshold: 0.2, + final_threshold: 0.3, + initial_threshold_iterations: 20, + } + }, + { + type: 'FEAT', + parameters: { + formula: 'Sex + Diagnosis + Age + MeanFD_Jenkinson + Custom_ROI_Mean', + + } + }, + ] + } + ], + + executions: [ + + ], + + // projects: [ + // { + // id: 'abide', + // name: 'ABIDE Preproc', + // pipeline: 'default', + // last_modification: new Date(Date.UTC(2015, 11, 17, 3, 24, 0)), + // participants: { + // dataset: '0000-0000-0000-0000', + // subsets: [ + // { + // id: '123e4567-e89b-12d3-a456-426655440000', + // description: 'Site: NYU', + // subjects: [ + // "51456", "51457", "51458", "51459", "51460", "51461", "51462", "51463", "51464", "51465", "51466", "51467", "51468", "51469", "51470", "51471", "51472", "51473", "51474", "51475", "51476", "51477", "51478", "51479", "51480", "51481", "51482", "51483", "51484", "51485", "51486", "51487", "51488", "51489", "51490", "51491", "51492", "51493" + // ] + // }, + // { + // id: '123e4567-e89b-12d3-a456-426655440001', + // description: 'Site: CALTECH', + // subjects: [ + // "51456", "51457", "51458", "51459", "51460", "51461", "51462", "51463", "51464", "51465", "51466", "51467", "51468", "51469" + // ] + // }, + // ] // }, - // sites: [], - // } - // }, - - // { - // id: '0000-0000-0000-0001', - // name: 'ABIDE II ', - // summary: { - // participants: 1114, - // sites: 19, // }, - // settings: { - // format: 'bids', - // base_directory: '', - // aws_credential_path: '', - // anatomical_path_template: '', - // functional_path_template: '', - // anatomical_scan: '', - // scan_parameters_path: '', - // brain_mask_path: '', - // fieldmap_phase_path_template: '', - // fieldmap_magnitude_path_template: '', - // subjects: { - // inclusion: [], - // exclusion: [], - // }, - // sites: [], - // } - // } - ], - - pipelines: [ - cpac.pipeline.template - ], - - group_analyses: [ - { - id: '0000-0000-0000-0001', - steps: [ - { - type: 'MDMR', - parameters: { - factors: [], - covariates: [], - permutations: 1000, - } - }, - { - type: 'ISC', - parameters: { - std_filter: 0.0, - permutations: 1000, - } - }, - { - type: 'ISFC', - parameters: { - std_filter: 0.0, - permutations: 1000, - } - }, - { - type: 'QPP', - parameters: { - permutations: 1000, - iterations: 15, - window: 30, - initial_threshold: 0.2, - final_threshold: 0.3, - initial_threshold_iterations: 20, - } - }, - { - type: 'FEAT', - parameters: { - formula: 'Sex + Diagnosis + Age + MeanFD_Jenkinson + Custom_ROI_Mean', - - } - }, - ] - } - ], - - executions: [ - - ], - - // projects: [ - // { - // id: 'abide', - // name: 'ABIDE Preproc', - // pipeline: 'default', - // last_modification: new Date(Date.UTC(2015, 11, 17, 3, 24, 0)), - // participants: { - // dataset: '0000-0000-0000-0000', - // subsets: [ - // { - // id: '123e4567-e89b-12d3-a456-426655440000', - // description: 'Site: NYU', - // subjects: [ - // "51456", "51457", "51458", "51459", "51460", "51461", "51462", "51463", "51464", "51465", "51466", "51467", "51468", "51469", "51470", "51471", "51472", "51473", "51474", "51475", "51476", "51477", "51478", "51479", "51480", "51481", "51482", "51483", "51484", "51485", "51486", "51487", "51488", "51489", "51490", "51491", "51492", "51493" - // ] - // }, - // { - // id: '123e4567-e89b-12d3-a456-426655440001', - // description: 'Site: CALTECH', - // subjects: [ - // "51456", "51457", "51458", "51459", "51460", "51461", "51462", "51463", "51464", "51465", "51466", "51467", "51468", "51469" - // ] - // }, - // ] - // }, - // }, - // ] - } - - let initialState = null - try { - initialState = JSON.parse(localStorage.getItem("state")) - } catch (e) { - } - - if (!initialState) { - initialState = config - localStorage.setItem("state", JSON.stringify(config)) - console.log("Using initial state") - } else { - console.log("Using local state") - } - - if (!initialState.executions) { - initialState.executions = [] - localStorage.setItem("state", JSON.stringify(initialState)) - } - - if (initialState.pipelines) { - initialState.pipelines = initialState.pipelines.map(cpac.pipeline.normalize); - if (!initialState.pipelines.map(i => i.id).includes("default 1.8")) { - initialState.pipelines.push({ - "id": "default", - "name": "Default", - "versions": { - 1_8: { - "version": "1.8.0", - "configuration": { - ...Object.values(initialState.pipelines[0].versions)[0].configuration, - ...cpac.pipeline.newTemplate - } - } - } - }); - }; - initialState.pipelines = initialState.pipelines.slice(1,); - localStorage.setItem("state", JSON.stringify(initialState)); - } - - if (!initialState.version) { - initialState.version = VERSION - localStorage.setItem("state", JSON.stringify(initialState)) - } - - yield put(configLoaded(initialState)) + // ] + } + + try { + initialState = JSON.parse(localStorage.getItem("state")) + } catch (e) { + } + + if (!initialState) { + initialState = config + localStorage.setItem("state", JSON.stringify(config)) + console.log("Using initial state") + } else { + console.log("Using local state") + } + + if (!initialState.executions) { + initialState.executions = [] + localStorage.setItem("state", JSON.stringify(initialState)) + } + + if (initialState.pipelines) { + console.log(initialState.pipelines); + localStorage.setItem("state", JSON.stringify(initialState)); + } + + if (!initialState.version) { + initialState.version = VERSION + localStorage.setItem("state", JSON.stringify(initialState)) + } + }); + + yield put(configLoaded(initialState)); } function* saveConfig() { diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index 8e9005d7..d72c65ca 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -1,20 +1,20 @@ import yaml from 'js-yaml'; import yamlTemplate, { raw, loadYaml } from './resources/pipeline/yaml'; -import { default as templateRaw } from './resources/pipeline/default_pipeline.yml'; +import { default as rawTemplate } from './resources/pipeline/default_pipeline.yml'; -const defaultPipelineUrl = 'https://raw.githubusercontent.com/FCP-INDI/C-PAC/develop/dev/docker_data/default_pipeline.yml' +const defaultPipelineUrl = 'https://raw.githubusercontent.com/FCP-INDI/C-PAC/master/dev/docker_data/default_pipeline.yml' const versionRe = new RegExp('(?<=\# Version:? \s*).*'); let template; -function setVersion(rawTemplate) { - const version = versionRe.exec(rawTemplate); +function setVersion() { + const version = versionRe.exec(); template = { "id": "default", "name": "Default", "versions": { 0: { - "version": version.length ? version[0] : 'unspecified', + "version": (version && version.length) ? version[0] : 'unspecified', "configuration": loadYaml(rawTemplate) } } @@ -22,20 +22,18 @@ function setVersion(rawTemplate) { return template; } -function getDefaultPipeline(url) { - // returns a promise - return fetch(defaultPipelineUrl, { mode: "cors" }) - .then(response => { - response.text().then(defaultRaw => { - return setVersion(defaultRaw); - }) - }, function(e) { - console.error("Default pipeline failed to load! Falling back to local copy (may be out of date)"); - return setVersion(templateRaw); - }) +async function getDefaultPipeline(url) { + const defaultPipeline = await fetch(defaultPipelineUrl, { mode: "cors" }) + .then(response => { + return response.text().then(defaultRaw => setVersion(defaultRaw)) + }, function(e) { + console.error("Default pipeline failed to load! Falling back to local copy (may be out of date)"); + return setVersion(rawTemplate); + }) + return defaultPipeline; } -export { getDefaultPipeline, defaultPipelineUrl } +export { defaultPipelineUrl, getDefaultPipeline, rawTemplate } function slugify(text) { return text.toString().toLowerCase() diff --git a/c-pac/resources/pipeline/config.js b/c-pac/resources/pipeline/config.js deleted file mode 100644 index c544f7d6..00000000 --- a/c-pac/resources/pipeline/config.js +++ /dev/null @@ -1,721 +0,0 @@ -export default { - id: 'default-1.6.0', - name: 'Default', - versions: { - 'default': { - version: '1.6.0', - configuration: { - general: { - environment: { - memory: 3, - cores: 1, - participants: 1, - ants_threads: 1, - grid: false, - resource: 'SGE', - SGEenvironment: 'cpac', - queue: 'all.q', - paths: { - fsl: '$FSLDIR', - output: './cpac_runs/default/output', - working: './cpac_runs/default/working', - crash: './cpac_runs/default/crash', - log: './cpac_runs/default/log', - }, - outputs: { - aws: ' ', - s3: false, - extra: false, - debug: false, - logging: true, - regenerate: false, - quality_control: true, - organized: true, - remove_working: false, - }, - }, - }, - anatomical: { - enabled: true, - registration: { - resolution: 1, - brain_template: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.anatomical.registration.resolution}mm_brain.nii.gz', - skull_template: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.anatomical.registration.resolution}mm.nii.gz', - methods: { - ants: { - enabled: true, - interpolation: 'sinc', - configuration: { - skull_on: false, - lesion_mask: true, - } - }, - fsl: { - enabled: false, - interpolation: 'sinc', - configuration: { - linear_only: false, - config_file: 'T1_2_MNI152_2mm', - reference_mask: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.anatomical.registration.resolution}_brain_mask_dil.nii.gz' - } - } - } - }, - surface: { - enabled: false, - }, - preprocessing: { - methods: { - nlmf: { - enabled: false, - }, - n4: { - enabled: false, - }, - acpc_align: { - enabled: false, - acpc_brainsize: 150, - acpc_template_skull: '$FSLDIR/data/standard/MNI152_T1_1mm.nii.gz', - acpc_template_brain: 'None', - }, - } - }, - skull_stripping: { - enabled: true, - methods: { - afni: { - enabled: true, - configuration: { - mask_vol: false, - shrink_factor: { - vary: true, - threshold: 0.6, - bottom_limit: 0.4 - }, - multiplier: 1, - iterations: 250, - avoid_eyes: true, - avoid_ventricles: true, - use_edge: true, - use_skull: false, - pushout: true, - touchup: true, - push_to_edge: false, - fill_hole: 10, - nearest_neighbors_smooth: 72, - final_smooth: 20, - fractional_expansion: 0.1, - intersections: { - ratio: 0, - iterations: 4 - }, - blur_fwhm: 0, - skullstrip_monkey: false, - } - }, - bet: { - enabled: false, - configuration: { - threshold: 0.5, - apply_threshold: false, - mask: true, - mesh: false, - skull: false, - surfaces: false, - surface_outline: false, - padding: false, - radius: 0, - reduce_bias: false, - remove_eyes: false, - robust_brain_center: false, - vertical_gradient: 0.0, - } - }, - niworkflows_ants: { - enabled: false, - ants_templates: { - niworkflows_ants_template_path: '/ants_template/oasis/T_template0.nii.gz', - niworkflows_ants_mask_path: '/ants_template/oasis/T_template0_BrainCerebellumProbabilityMask.nii.gz', - niworkflows_ants_regmask_path: '/ants_template/oasis/T_template0_BrainCerebellumRegistrationMask.nii.gz', - } - }, - unet: { - enabled: false, - unet_model: 's3://fcp-indi/resources/cpac/resources/Site-All-T-epoch_36.model', - } - } - }, - tissue_segmentation: { - enabled: true, - configuration: { - priors: { - enabled: true, - priors: { - white_matter: '${environment.paths.fsl_dir}/data/standard/tissuepriors/2mm/avg152T1_white_bin.nii.gz', - gray_matter: '${environment.paths.fsl_dir}/data/standard/tissuepriors/2mm/avg152T1_gray_bin.nii.gz', - cerebrospinal_fluid: '${environment.paths.fsl_dir}/data/standard/tissuepriors/2mm/avg152T1_csf_bin.nii.gz', - } - }, - fast_threshold: { - enabled: true, - }, - custom_threshold: { - enabled: false, - threshold: { - white_matter: 0.95, - gray_matter: 0.95, - cerebrospinal_fluid: 0.95, - } - }, - erosion: { - enabled: false, - proportion: 0.6 - }, - template_based_seg: { - enabled: false, - methods: 'epi_template_based', // or 't1_templated_based' - tissue_path: { - white_matter: '${environment.paths.fsl_dir}/data/standard/tissuepriors/2mm/avg152T1_white_bin.nii.gz', - gray_matter: '${environment.paths.fsl_dir}/data/standard/tissuepriors/2mm/avg152T1_gray_bin.nii.gz', - cerebrospinal_fluid: '${environment.paths.fsl_dir}/data/standard/tissuepriors/2mm/avg152T1_csf_bin.nii.gz', - } - }, - ANTs_prior_based_seg: { - enabled: false, - template_brain_list: [ - ], - template_segmentation_list: [ - ], - CSF_label: 24, - left_GM_label: 3, - right_GM_label: 42, - left_WM_label: 2, - right_WM_label: 41, - } - } - } - }, - functional: { - enabled: true, - preprocessing: { - n4_mean_epi: { - enabled: false, - }, - scaling: { - enabled: false, - factor: 10 - }, - motion_stats: { - enabled: false, - }, - motion_correction: { - method: { - 'volreg': true, - 'mcflirt': false, - }, - reference: { - 'mean': true, - 'median': false, - 'selected_volume': false, - }, - reference_volume: 0 - }, - despike: { - enabled: false, - } - }, - slice_timing_correction: { - enabled: true, - pattern: 'header', - repetition_time: '', - first_timepoint: 0, - last_timepoint: '', - two_pass: true, - }, - distortion_correction: { - enabled: false, - method: { - phasediff: { - enabled: true, - skull_stripping: 'afni', - threshold: 0.6, //would be displaced by threshold_bet or threshold_afni - threshold_bet: 0.5, - threshold_afni: 0.6, - delta_te: 2.46, - dwell_time: 0.0005, - dwell_to_assymetric_ratio: 0.93902439, - phase_encoding_direction: 'x' - }, - blip: { - enabled: false - } - } - }, - anatomical_registration: { - enabled: true, - bb_registration: false, - bb_registration_scheduler: '${environment.paths.fsl_dir}/etc/flirtsch/bbr.sch', - registration_input: 'mean', - functional_volume: 0, - functional_masking: { - fsl: { - enabled: false, - configuration: { - functional_mean: false, - threshold: 0.3, - apply_threshold: false, - mask: true, - mesh: false, - skull: false, - surfaces: false, - surface_outline: false, - padding: false, - radius: 0, - reduce_bias: false, - remove_eyes: false, - robust_brain_center: false, - vertical_gradient: 0.0, - } - }, - afni: false, - fsl_afni: false, - anat_refined: false, - }, - }, - template_registration: { - enabled: true, - functional_resolution: 3, - derivative_resolution: 3, - template_for_resample: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_1mm_brain.nii.gz', - identity_matrix: '${environment.paths.fsl_dir}/etc/flirtsch/ident.mat', - methods: { - ants: { - interpolation: 'sinc', - ANTs_para_T1_registration: - { - collapse_output_transforms: 0, - dimensionality: 3, - initial_moving_transform: { - initializationFeature: 0, - }, - transforms: { - Rigid: { - enabled: true, - gradientStep: 0.1, - metric: { - type: { - MI: { - enabled: true, - metricWeight: 1, - numberOfBins: 32, - samplingStrategy: 'Regular', - samplingPercentage: 0.25, - }, - CC: { - enabled: false, - metricWeight: 1, - radius: 4, - }, - }, - }, - convergence: { - iteration: '1000x500x250x100', - convergenceThreshold: 1e-08, - convergenceWindowSize: 10, - }, - smoothing_sigmas: '3.0x2.0x1.0x0.0', - shrink_factors: '8x4x2x1', - use_histogram_matching: true, - }, - - Affine: { - enabled: true, - gradientStep: 0.1, - metric: { - type: { - MI: { - enabled: true, - metricWeight: 1, - numberOfBins: 32, - samplingStrategy: 'Regular', - samplingPercentage: 0.25, - }, - CC: { - enabled: false, - metricWeight: 1, - radius: 4, - }, - }, - }, - convergence: { - iteration: '1000x500x250x100', - convergenceThreshold: 1e-08, - convergenceWindowSize: 10, - }, - smoothing_sigmas: '3.0x2.0x1.0x0.0', - shrink_factors: '8x4x2x1', - use_histogram_matching: true, - }, - - SyN: { - enabled: true, - gradientStep: 0.1, - updateFieldVarianceInVoxelSpace: 3.0, - totalFieldVarianceInVoxelSpace: 0.0, - metric: { - type: { - MI: { - enabled: false, - metricWeight: 1, - numberOfBins: 32, - samplingStrategy: 'Regular', - samplingPercentage: 0.25, - }, - CC: { - enabled: true, - metricWeight: 1, - radius: 4, - }, - }, - }, - convergence: { - iteration: '100x100x70x20', - convergenceThreshold: 1e-09, - convergenceWindowSize: 15, - }, - smoothing_sigmas: '3.0x2.0x1.0x0.0', - shrink_factors: '6x4x2x1', - use_histogram_matching: true, - winsorize_image_intensities: { - lowerQuantile: 0.01, - upperQuantile: 0.99, - }, - }, - }, - }, - }, - fsl: { - interpolation: 'sinc', - }, - }, - epi_template: { - enabled: false, - template_epi: 's3://fcp-indi/resources/cpac/resources/epi_hbn.nii.gz', - ANTs_para_EPI_registration: - { - collapse_output_transforms: 0, - dimensionality: 3, - initial_moving_transform: { - initializationFeature: 0, - }, - transforms: { - Rigid: { - enabled: true, - gradientStep: 0.1, - metric: { - type: { - MI: { - enabled: true, - metricWeight: 1, - numberOfBins: 32, - samplingStrategy: 'Regular', - samplingPercentage: 0.25, - }, - CC: { - enabled: false, - metricWeight: 1, - radius: 4, - }, - }, - }, - convergence:{ - iteration: '1000x500x250x100', - convergenceThreshold: 1e-08, - convergenceWindowSize: 10, - }, - smoothing_sigmas : '3.0x2.0x1.0x0.0', - shrink_factors : '8x4x2x1', - use_histogram_matching:true, - }, - - Affine:{ - enabled: true, - gradientStep: 0.1, - metric: { - type: { - MI: { - enabled: true, - metricWeight: 1, - numberOfBins: 32, - samplingStrategy: 'Regular', - samplingPercentage: 0.25, - }, - CC: { - enabled: false, - metricWeight: 1, - radius: 4, - }, - }, - }, - convergence: { - iteration: '1000x500x250x100', - convergenceThreshold: 1e-08, - convergenceWindowSize: 10, - }, - smoothing_sigmas: '3.0x2.0x1.0x0.0', - shrink_factors: '8x4x2x1', - use_histogram_matching: true, - }, - - SyN: { - enabled: true, - gradientStep: 0.1, - updateFieldVarianceInVoxelSpace: 3.0, - totalFieldVarianceInVoxelSpace: 0.0, - metric: { - type: { - MI: { - enabled: false, - metricWeight: 1, - numberOfBins: 32, - samplingStrategy: 'Regular', - samplingPercentage: 0.25, - }, - CC: { - enabled: true, - metricWeight: 1, - radius: 4, - }, - }, - }, - convergence: { - iteration: '100x100x70x20', - convergenceThreshold: 1e-09, - convergenceWindowSize: 15, - }, - smoothing_sigmas: '3.0x2.0x1.0x0.0', - shrink_factors: '6x4x2x1', - use_histogram_matching: true, - winsorize_image_intensities:{ - lowerQuantile: 0.01, - upperQuantile: 0.99, - }, - }, - }, - }, - - }, - t1_template: { - enabled: true, - brain_template: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.functional.template_registration.functional_resolution}_brain.nii.gz', - skull_template: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.functional.template_registration.functional_resolution}.nii.gz', - }, - }, - nuisance_regression: { - enabled: true, - lateral_ventricles_mask: '${environment.paths.fsl_dir}/data/atlases/HarvardOxford/HarvardOxford-lateral-ventricles-thr25-2mm.nii.gz', - regressors: [ - { - GrayMatter: { - enabled: true, - summary: { - method: 'Mean', - }, - erode_mask: true, - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - WhiteMatter: { - enabled: true, - summary: { - method: 'Mean', - }, - erode_mask: true, - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - CerebrospinalFluid: { - enabled: true, - summary: { - method: 'Mean', - }, - erode_mask: false, - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - aCompCor: { - enabled: true, - summary: { - filter: ' ', - method: 'DetrendPC', - components: 5, - }, - tissues: ['WhiteMatter'], - extraction_resolution: 2, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - tCompCor: { - enabled: false, - summary: { - filter: ' ', - method: 'PC', - components: 5, - }, - degree: 1, - threshold: '1.5SD', - by_slice: true, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - erode_mask: false, - erode_mask_mm: false, - }, - GlobalSignal: { - enabled: true, - summary: { - method: 'Mean', - }, - include_delayed: false, - include_squared: false, - include_delayed_squared: false, - }, - Motion: { - enabled: true, - include_delayed: true, - include_squared: true, - include_delayed_squared: true, - }, - PolyOrt: { - enabled: true, - degree: 2, - }, - Bandpass: { - enabled: true, - bottom_frequency: 0.01, - top_frequency: 0.1, - }, - Censor: { - enabled: false, - method: 'Kill', - threshold: { - type: 'FD_P', - value: 0.0, - }, - number_of_previous_trs_to_censor: 1, - number_of_subsequent_trs_to_censor: 2, - }, - } - ] - }, - median_angle_correction: { - enabled: true, - target_angle: 90 - }, - aroma: { - enabled: true, - denoising_strategy: 'non-aggressive' - }, - smoothing: { - enabled: true, - kernel_fwhm: 4, - before_zscore: false, - zscore_derivatives: false, - } - }, - longitudinal: { - enabled: true, - run_anatomical: false, - run_functional: false, - average_method: 'median', - dof: 12, - interpolation: 'trilinear', - cost_function: 'corratio', - thread_pool: 2, - convergence_threshold: -1, - }, - derivatives: { - enabled: true, - timeseries_extraction: { - enabled: true, - masks: [ - ], - realignment: { - roi_to_func: true, - func_to_roi: false, - }, - outputs: { - csv: true, - numpy: true, - } - }, - sca: { - enabled: false, - masks: [ - ], - normalize: false, - }, - vmhc: { - enabled: false, - symmetric_brain: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.anatomical.registration.resolution}_brain_symmetric.nii.gz', - symmetric_skull: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.anatomical.registration.resolution}_symmetric.nii.gz', - dilated_symmetric_brain: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.anatomical.registration.resolution}_brain_mask_symmetric_dil.nii.gz', - flirt_configuration_file: '${environment.paths.fsl_dir}/etc/flirtsch/T1_2_MNI152_2mm.cnf', - }, - alff: { - enabled: false, - cutoff: { - low: 0.01, - high: 0.1, - } - }, - reho: { - enabled: false, - cluster_size: 7, - }, - network_centrality: { - enabled: false, - mask: '', - degree_centrality: { - binarized: true, - weighted: true, - threshold_type: 'sparsity', - threshold: 0.001 - }, - eigenvector: { - binarized: true, - weighted: true, - threshold_type: 'sparsity', - threshold: 0.001 - }, - local_connectivity_density: { - binarized: true, - weighted: true, - threshold_type: 'significance', - threshold: 0.001 - }, - }, - pypeer: { - enabled: true, - eye_scan_names: '', - data_scan_names: '', - eye_mask_path: '${environment.paths.fsl_dir}/data/standard/MNI152_T1_${pipeline.functional.template_registration.functional_resolution}_eye_mask.nii.gz', - stimulus_path: '', - gsr: true, - scrub: { - enabled: false, - threshold: 0.2 - } - } - } - } - } - } -} diff --git a/c-pac/resources/pipeline/pipeline_config_template.yml b/c-pac/resources/pipeline/pipeline_config_template.yml deleted file mode 100644 index 76de4fc9..00000000 --- a/c-pac/resources/pipeline/pipeline_config_template.yml +++ /dev/null @@ -1,1165 +0,0 @@ -# CPAC Pipeline Configuration YAML file -# Version 1.6.0 -# -# http://fcp-indi.github.io for more info. -# -# Tip: This file can be edited manually with a text editor for quick modifications. - - -# Select False if you intend to run CPAC on a single machine. -# If set to True, CPAC will attempt to submit jobs through the job scheduler / resource manager selected below. -runOnGrid : False - - -# Full path to the FSL version to be used by CPAC. -# If you have specified an FSL path in your .bashrc file, this path will be set automatically. -FSLDIR : FSLDIR - - -# Sun Grid Engine (SGE), Portable Batch System (PBS), or Simple Linux Utility for Resource Management (SLURM). -# Only applies if you are running on a grid or compute cluster. -resourceManager : SGE - - -# SGE Parallel Environment to use when running CPAC. -# Only applies when you are running on a grid or compute cluster using SGE. -parallelEnvironment : cpac - - -# SGE Queue to use when running CPAC. -# Only applies when you are running on a grid or compute cluster using SGE. -queue : all.q - - -# The maximum amount of memory each participant's workflow can allocate. Use this to place an upper bound of memory usage. Warning: 'Memory Per Participant' multiplied by 'Number of Participants to Run Simultaneously' must not be more than the total amount of RAM. Conversely, using too little RAM can impede the speed of a pipeline run. It is recommended that you set this to a value that when multiplied by 'Number of Participants to Run Simultaneously' is as much RAM you can safely allocate. -maximumMemoryPerParticipant : 3 - - -# The maximum amount of cores (on a single machine) or slots on a node (on a cluster/grid) to allocate per participant. Setting this above 1 will parallelize each participant's workflow where possible. If you wish to dedicate multiple cores to ANTS-based anatomical registration (below), this value must be equal or higher than the amount of cores provided to ANTS. The maximum number of cores your run can possibly employ will be this setting multiplied by the number of participants set to run in parallel (the 'Number ofParticipants to Run Simultaneously' setting). -maxCoresPerParticipant : 1 - - -# The number of participant workflows to run at the same time. The maximum number of cores your run can possibly employ will be this setting multiplied by the number of cores dedicated to each participant (the 'Maximum Number of Cores Per Participant' setting). -numParticipantsAtOnce : 1 - - -# The number of cores to allocate to ANTS-based anatomical registration per participant. Multiple cores can greatly speed up this preprocessing step. This number cannot be greater than the number of cores per participant. -num_ants_threads : 1 - - -# Name for this pipeline configuration - useful for identification. -pipelineName : cpac_default - - -# Directory where CPAC should store temporary and intermediate files. -workingDirectory : ./cpac_runs/default/working - - -# Directory where CPAC should write crash logs. -crashLogDirectory : ./cpac_runs/default/crash - - -# Directory where CPAC should place run logs. -logDirectory : ./cpac_runs/default/log - - -# Directory where CPAC should place processed data. -outputDirectory : ./cpac_runs/default/output - - -# If setting the 'Output Directory' to an S3 bucket, insert the path to your AWS credentials file here. -awsOutputBucketCredentials : - - -# Enable server-side 256-AES encryption on data to the S3 bucket -s3Encryption : [1] - - -# Include extra versions and intermediate steps of functional preprocessing in the output directory. -write_func_outputs : [0] - - -# Include extra outputs in the output directory that may be of interest when more information is needed. -write_debugging_outputs : [0] - - -# Generate quality control pages containing preprocessing and derivative outputs. -generateQualityControlImages : [1] - - -# Deletes the contents of the Working Directory after running. -# This saves disk space, but any additional preprocessing or analysis will have to be completely re-run. -removeWorkingDir : False - - -# Whether to write log details of the pipeline. run to the logging files. -run_logging : True - - -# Uses the contents of the Working Directory to regenerate all outputs and their symbolic links. -# Requires an intact Working Directory from a previous CPAC run. -reGenerateOutputs : False - - -# Create a user-friendly, well organized version of the output directory. -runSymbolicLinks : [1] - - -# PREPROCESSING -# ------------- -surface_analysis: - - # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives. - # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline, - # select those 'Freesurfer-' labeled options further below in anatomical_preproc. - run_freesurfer: Off - - -# Non-local means filtering / Denoise image -non_local_means_filtering: False - - -# N4 bias field correction -n4_bias_field_correction: False - - -# ACPC Alignment -acpc_align: False - - -# ACPC size of brain in z-dimension in mm. -# Default: 150mm for human data. -acpc_brainsize: 150 - - -# ACPC aligned template -acpc_template_skull: $FSLDIR/data/standard/MNI152_T1_1mm.nii.gz -acpc_template_brain: None - - -# Disables skull-stripping on the anatomical inputs if they are already skull-stripped outside of C-PAC. Set this to On if your input images are already skull-stripped. -already_skullstripped : [0] - - -# Choice of using AFNI-3dSkullStrip or FSL-BET or niworkflows-ants or UNet for monkey data to perform SkullStripping -# Options: ['AFNI', 'FSL', 'niworkflows-ants', 'unet'] -skullstrip_option : ['AFNI'] - - -# UNet model -unet_model : s3://fcp-indi/resources/cpac/resources/Site-All-T-epoch_36.model - - -# Options to be used for AFNI 3dSkullStrip only. - -# Output a mask volume instead of a skull-stripped volume. The mask volume containes 0 to 6, which represents voxel's postion. If set to True, C-PAC will use this output to generate anatomical brain mask for further analysis. -skullstrip_mask_vol: False - - -# Set the threshold value controlling the brain vs non-brain voxels. Default is 0.6. -skullstrip_shrink_factor : 0.6 - - -# Vary the shrink factor at every iteration of the algorithm. This prevents the likelihood of surface getting stuck in large pools of CSF before reaching the outer surface of the brain. Default is On. -skullstrip_var_shrink_fac : True - - -# The shrink factor bottom limit sets the lower threshold when varying the shrink factor. Default is 0.4, for when edge detection is used (which is On by default), otherwise the default value is 0.65. -skullstrip_shrink_factor_bot_lim : 0.4 - - -# Avoids ventricles while skullstripping. -skullstrip_avoid_vent : True - - -# Set the number of iterations. Default is 250.The number of iterations should depend upon the density of your mesh. -skullstrip_n_iterations : 250 - - -# While expanding, consider the voxels above and not only the voxels below -skullstrip_pushout : True - - -# Perform touchup operations at the end to include areas not covered by surface expansion. -skullstrip_touchup : True - - -# Give the maximum number of pixels on either side of the hole that can be filled. The default is 10 only if 'Touchup' is On - otherwise, the default is 0. -skullstrip_fill_hole : 10 - - -# Perform nearest neighbor coordinate interpolation every few iterations. Default is 72. -skullstrip_NN_smooth : 72 - - -# Perform final surface smoothing after all iterations. Default is 20. -skullstrip_smooth_final : 20 - - -# Avoid eyes while skull stripping. Default is On. -skullstrip_avoid_eyes : True - - -# Use edge detection to reduce leakage into meninges and eyes. Default is On. -skullstrip_use_edge : True - - -# Speed of expansion. -skullstrip_exp_frac : 0.1 - - -# Perform aggressive push to edge. This might cause leakage. Default is Off. -skullstrip_push_to_edge : False - - -# Use outer skull to limit expansion of surface into the skull in case of very strong shading artifacts. Use this only if you have leakage into the skull. -skullstrip_use_skull : Off - - -# Percentage of segments allowed to intersect surface. It is typically a number between 0 and 0.1, but can include negative values (which implies no testing for intersection). -skullstrip_perc_int : 0 - - -# Number of iterations to remove intersection problems. With each iteration, the program automatically increases the amount of smoothing to get rid of intersections. Default is 4. -skullstrip_max_inter_iter : 4 - - -# Multiply input dataset by FAC if range of values is too small. -skullstrip_fac : 1 - - -# Blur dataset after spatial normalization. Recommended when you have lots of CSF in brain and when you have protruding gyri (finger like). If so, recommended value range is 2-4. Otherwise, leave at 0. -skullstrip_blur_fwhm : 0 - -# Choice of using monkey option for AFNI 3dskullstrip -skullstrip_monkey : False - -# Set the threshold value controling the brain vs non-brain voxels, default is 0.5 -bet_frac : 0.5 - - -# Mask created along with skull stripping -bet_mask_boolean : On - - -# Mesh created along with skull stripping -bet_mesh_boolean : Off - - -# Create a surface outline image -bet_outline : Off - - -# Add padding to the end of the image, improving BET.Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bet_padding : Off - - -# Integer value of head radius -bet_radius : 0 - - -# Reduce bias and cleanup neck. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bet_reduce_bias : Off - - -# Eyes and optic nerve cleanup. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bet_remove_eyes : Off - - -# Robust brain center estimation. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bet_robust : Off - - -# Create a skull image -bet_skull : Off - - -# Gets additional skull and scalp surfaces by running bet2 and betsurf. This is mutually exclusive with reduce_bias, robust, padding, remove_eyes -bet_surfaces : Off - - -# Apply thresholding to segmented brain image and mask -bet_threshold : Off - - -# Vertical gradient in fractional intensity threshold (-1,1) -bet_vertical_gradient : 0.0 - -# Template to be used during niworkflows-ants. -# For skullstrip option 'niworkflows-ants' only. -# It is not necessary to change this path unless you intend to use a non-standard template. -# niworkflows-ants Brain extraction template -niworkflows_ants_template_path : /ants_template/oasis/T_template0.nii.gz - - -# niworkflows-ants probability mask -niworkflows_ants_mask_path : /ants_template/oasis/T_template0_BrainCerebellumProbabilityMask.nii.gz - - -# niworkflows-ants registration mask (can be optional) -niworkflows_ants_regmask_path : /ants_template/oasis/T_template0_BrainCerebellumRegistrationMask.nii.gz - - -# Run anatomical and/or functional longitudinal pipeline -# Options: 'anat' and/or 'func' -# Note: 'func' is still under development and not available yet -run_longitudinal : [] - - -# Freesurfer longitudinal template algorithm using FSL FLIRT -# Method to average the dataset at each iteration of the template creation -# Options: median, mean or std -longitudinal_template_average_method : median - - -# FLIRT degree of freedom in the template creation -longitudinal_template_dof : 12 - - -# FLIRT interpolation option in the template creation -# Options: trilinear, nearestneighbour, sinc or spline -longitudinal_template_interp : trilinear - - -# FLIRT cost function in the template creation -# Options: corratio, mutualinfo, normmi, normcorr, leastsq, bbr or labeldiff -longitudinal_template_cost : corratio - - -# Number of threads used for one run of the template generation algorithm -longitudinal_template_thread_pool : 2 - - -# Threshold of transformation distance to consider that the loop converged -# (-1 means numpy.finfo(np.float64).eps and is the default) -longitudinal_template_convergence_threshold : -1 - - -# The resolution to which anatomical images should be transformed during registration. This is the resolution at which processed anatomical files will be output. -# If three dimensions are identical, enter only one number (integer or floating point number), eg. 2mm or 1.5mm; if three dimensions are different, enter num1xnum2xnum3, eg. 2mmx2mmx1.5mm -resolution_for_anat : 2mm - - -# Template to be used during registration. -# It is not necessary to change this path unless you intend to use a non-standard template. -template_brain_only_for_anat : $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain.nii.gz - - -# Template to be used during registration. -# It is not necessary to change this path unless you intend to use a non-standard template. -template_skull_for_anat : $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}.nii.gz - - -# Use either ANTS or FSL (FLIRT and FNIRT) as your anatomical registration method. -regOption : ['ANTS'] - - -# If a lesion mask is available for a T1w image, use it to improve the ANTs' registration -use_lesion_mask : [1] - - -# Use only FLIRT, without FNIRT, for anatomical-to-template registration. -fsl_linear_reg_only : [0] - - -# Configuration file to be used by FSL to set FNIRT parameters. -# It is not necessary to change this path unless you intend to use custom FNIRT parameters or a non-standard template. -fnirtConfig : T1_2_MNI152_2mm - - -# Configuration file to be used by FSL to set FNIRT parameters. -# It is not necessary to change this path unless you intend to use custom FNIRT parameters or a non-standard template. -ref_mask : $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask_dil.nii.gz - - -# Register skull-on anatomical image to a template. -regWithSkull : [0] - - -# Automatically segment anatomical images into white matter, gray matter, and CSF based on prior probability maps. -runSegmentationPreprocessing : [1] - - -# Use template-space tissue priors to refine the binary tissue masks generated by segmentation. -seg_use_priors: True - - -# Full path to a directory containing binarized prior probability maps. -# These maps are included as part of the 'Image Resource Files' package available on the Install page of the User Guide. -# It is not necessary to change this path unless you intend to use non-standard priors. -priors_path : $FSLDIR/data/standard/tissuepriors/2mm - - -# Full path to a binarized White Matter prior probability map. -# It is not necessary to change this path unless you intend to use non-standard priors. -PRIORS_WHITE : $priors_path/avg152T1_white_bin.nii.gz - - -# Full path to a binarized Gray Matter prior probability map. -# It is not necessary to change this path unless you intend to use non-standard priors. -PRIORS_GRAY : $priors_path/avg152T1_gray_bin.nii.gz - - -# Full path to a binarized CSF prior probability map. -# It is not necessary to change this path unless you intend to use non-standard priors. -PRIORS_CSF : $priors_path/avg152T1_csf_bin.nii.gz - - -# Use threshold to further refine the resulting segmentation tissue masks. -# FSL-FAST Thresholding - Use FSL FAST generated tissue class files (binary masks) to generate the resulting segmentation tissue masks. -# Customized Thresholding - Set the threshold value for tissue probability maps to generate the resulting segmentation tissue masks. -seg_use_threshold : ['FSL-FAST Thresholding'] - -# Set the threshold value for refining the resulting CSF segmentation tissue mask. -# The default value is 0.95. -# CSF (cerebrospinal fluid) threshold. -seg_CSF_threshold_value : 0.95 - -# Set the threshold value for refining the resulting White Matter segmentation tissue mask. -# The default value is 0.95. -# White matter threshold. -seg_WM_threshold_value : 0.95 - -# Set the threshold value for refining the resulting Gray Matter segmentation tissue mask. -# The default value is 0.95. -# Gray matter threshold. -seg_GM_threshold_value : 0.95 - - -# Erode binarized tissue mask. -seg_use_erosion : False - - -# Erosion propability, if use erosion to erode binarized tissue masks. -seg_erosion_prop : 0.6 - - -# Generate white matter, gray matter, CSF masks based on EPI template segmentation masks, T1 template segmentation masks, or not use template-based segmentation. -# Optimal for use with functional-only pipelines commonly used for rodent data, users can now employ a template-based tissue segmentation approach that applies inverse registration transforms to template-space tissue priors. -# If use template based segmentation, please make sure to specify white matter, gray matter, CSF mask paths at below three configurations. -# These masks should be in the same space of your registration template, e.g. if you choose 'EPI_template' , below tissue masks should also be EPI template tissue masks. -# Options: ['EPI_template', 'T1_template', 'None'] -template_based_segmentation : ['None'] - - -# These masks are included as part of the 'Image Resource Files' package available on the Install page of the User Guide. -# Full path to a binarized White Matter mask. -template_based_segmentation_WHITE : $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_white_bin.nii.gz - - -# Full path to a binarized Gray Matter mask. -template_based_segmentation_GRAY : $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_gray_bin.nii.gz - - -# Full path to a binarized CSF mask. -template_based_segmentation_CSF : $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_csf_bin.nii.gz - - -# ANTs Prior-based Segmentation workflow that has shown optimal results for non-human primate data. -# Generate white matter, gray matter, CSF masks based on antsJointLabelFusion -# If you'd like to set ANTs Prior-based Segmentation as your segmentation option, -# please set Template based segmentation as 'None' and runSegmentationPreprocessing as [0]. -ANTs_prior_based_segmentation: [0] - - -# The atlas image assumed to be used in ANTs Prior-based Segmentation. -ANTs_prior_seg_template_brain_list : - - s3://fcp-indi/resources/cpac/resources/MacaqueYerkes19_T1w_0.5mm/T1w_brain.nii.gz - - s3://fcp-indi/resources/cpac/resources/J_Macaque_11mo_atlas_nACQ_194x252x160space_0.5mm/T1w_brain.nii.gz - - -# The atlas segmentation images. -# For performing ANTs Prior-based segmentation method -# the number of specified segmentations should be identical to the number of atlas brain image sets. -# eg. -# ANTs_prior_seg_template_brain_list : -# - atlas1.nii.gz -# - atlas2.nii.gz -# ANTs_prior_seg_template_segmentation_list: -# - segmentation1.nii.gz -# - segmentation1.nii.gz -ANTs_prior_seg_template_segmentation_list: - - s3://fcp-indi/resources/cpac/resources/MacaqueYerkes19_T1w_0.5mm/Segmentation.nii.gz - - s3://fcp-indi/resources/cpac/resources/J_Macaque_11mo_atlas_nACQ_194x252x160space_0.5mm/Segmentation.nii.gz - - -# Label values corresponding to CSF/GM/WM in atlas file -# It is not necessary to change this values unless your CSF/GM/WM label values are different from Freesurfer Color Lookup Table. -# https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/AnatomicalROI/FreeSurferColorLUT - -# Label value corresponding to CSF in multiatlas file -ANTs_prior_seg_CSF_label: 24 - -# Label value corresponding to Left Gray Matter in multiatlas file -ANTs_prior_seg_left_GM_label: 3 - -# Label value corresponding to Right Gray Matter in multiatlas file -ANTs_prior_seg_right_GM_label: 42 - -# Label value corresponding to Left White Matter in multiatlas file -ANTs_prior_seg_left_WM_label: 2 - -# Label value corresponding to Right White Matter in multiatlas file -ANTs_prior_seg_right_WM_label: 41 - - -# Run functional preproceessing -runFunctional: [1] - - -# Scale functional raw data, usually used in rodent pipeline -runScaling : False - - -# Set scaling factor, if runScaling : True. Scale the size of the dataset voxels by the factor. -scaling_factor : 10 - - -# Run motion statistics before slice timing correction -runMotionStatisticsFirst : [0] - - -# Choose motion correction method. Options: AFNI volreg, FSL mcflirt -motion_correction : ['3dvolreg'] - - -# Choose motion correction reference. Options: mean, median, selected volume -motion_correction_reference: ['mean'] - - -# Choose motion correction reference volume -motion_correction_reference_volume : 0 - - -# Interpolate voxel time courses so they are sampled at the same time points. -slice_timing_correction : [0] - - -# Specify the TR (in seconds) at which images were acquired. -# Default is None- TR information is then read from scan parameters in the data configuration file, or the image file header if there is no scan information in the data configuration. -# Note: the selection chosen here applies to all scans of all participants. -TR : None - - -# Acquisition strategy for acquiring image slices. -# Slice acquisition information is read from scan parameters in the data configuration file- if this is not provided, then this option will apply. -# Note: the selection here applies to all scans of all participants. -slice_timing_pattern : Use NIFTI Header - - -# First timepoint to include in analysis. -# Default is 0 (beginning of timeseries). -# First timepoint selection in the scan parameters in the data configuration file, if present, will over-ride this selection. -# Note: the selection here applies to all scans of all participants. -startIdx : 0 - - -# Last timepoint to include in analysis. -# Default is None or End (end of timeseries). -# Last timepoint selection in the scan parameters in the data configuration file, if present, will over-ride this selection. -# Note: the selection here applies to all scans of all participants. -stopIdx : None - - -# This options is useful when aligning high-resolution datasets that may need more alignment than a few voxels. -functional_volreg_twopass : On - - -# Perform distortion correction. -# PhaseDiff - Perform field map correction using a single phase difference image, a subtraction of the two phase images from each echo. Default scanner for this method is SIEMENS. -# Blip - Uses AFNI 3dQWarp to calculate the distortion unwarp for EPI field maps of opposite/same phase encoding direction. -# Options: ['PhaseDiff', 'Blip', 'None'] -distortion_correction : ["None"] - - -# Options for 'PhaseDiff' distortion correction only. -# Since the quality of the distortion heavily relies on the skull-stripping step, we provide a choice of method (AFNI 3dSkullStrip or FSL BET). -fmap_distcorr_skullstrip : ['BET'] - - -# Set the threshold value for the skull-stripping of the magnitude file (when using BET). Depending on the data, a tighter extraction may be necessary in order to prevent noisy voxels from interfering with preparing the field map. -# The default value is 0.5. -fmap_distcorr_frac : [0.5] - - -# Set the threshold value for the skull-stripping of the magnitude file (when using AFNI). Depending on the data, a tighter extraction may be necessary in order to prevent noisy voxels from interfering with preparing the field map. -# The default value is 0.6. -fmap_distcorr_threshold : [0.6] - - -# Set the Delta-TE value, used for preparing field map, time delay between the first and second echo images. Default value is 2.46 ms. -fmap_distcorr_deltaTE : [2.46] - - -# Set the Dwell Time for the fugue input. This is the time between scans, default value is 0.0005s. -fmap_distcorr_dwell_time : [0.0005] - - -# Set the asymmetric ratio value for FSL Fugue input. -fmap_distcorr_dwell_asym_ratio : [0.93902439] - - -# Set the phase-encoding direction. The options are: x, y, z, -x, -y, -z. -fmap_distcorr_pedir : -y - - -# Run Functional to Anatomical Registration -runRegisterFuncToAnat : [1] - - -# Run Functional to Anatomical Registration with BB Register -runBBReg : [1] - - -# Standard FSL 5.0 Scheduler used for Boundary Based Registration. -# It is not necessary to change this path unless you intend to use non-standard MNI registration. -boundaryBasedRegistrationSchedule : $FSLDIR/etc/flirtsch/bbr.sch - - -# Choose whether to use the mean of the functional/EPI as the input to functional-to-anatomical registration or one of the volumes from the functional 4D timeseries that you choose. -func_reg_input : ['Mean Functional'] - - -# Run ANTs’ N4 Bias Field Correction on the input BOLD average (mean EPI) -n4_correct_mean_EPI : False - - -# Only for when 'Use as Functional-to-Anatomical Registration Input' is set to 'Selected Functional Volume'. Input the index of which volume from the functional 4D timeseries input file you wish to use as the input for functional-to-anatomical registration. -func_reg_input_volume : 0 - - -# Choose which tool to be used in functional masking - AFNI (3dAutoMask), FSL (BET), FSL_AFNI (BET+3dAutoMask), or refine functional mask by registering anatomical mask to functional space. -# Options: ['AFNI', 'FSL', 'FSL_AFNI', 'Anatomical_Refined'] -functionalMasking : ['AFNI'] - - -# Run AFNI 3dDespike after motion correction -runDespike : [0] - - -# Options to be used for FSL skull-stripping of functional masking. - -# Apply to 4D FMRI data, if bold_bet_functional_mean_boolean : On. -# Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -# It must be on if select 'bold_bet_reduce_bias','bold_bet_robust','bold_bet_padding','bold_bet_remove_eyes',or 'bold_bet_surfaces' on -bold_bet_functional_mean_boolean : Off - - -# Set the threshold value controling the brain vs non-brain voxels. -bold_bet_frac : 0.3 - - -# Mesh created along with skull stripping -bold_bet_mesh_boolean : Off - - -# Create a surface outline image -bold_bet_outline : Off - - -# Add padding to the end of the image, improving BET. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bold_bet_padding : Off - - -# Integer value of head radius -bold_bet_radius : 0 - - -# Reduce bias and cleanup neck. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bold_bet_reduce_bias : Off - - -# Eyes and optic nerve cleanup. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bold_bet_remove_eyes : Off - - -# Robust brain center estimation. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces -bold_bet_robust : Off - - -# Create a skull image -bold_bet_skull : Off - - -# Gets additional skull and scalp surfaces by running bet2 and betsurf. This is mutually exclusive with reduce_bias, robust, padding, remove_eyes -bold_bet_surfaces : Off - - -# Apply thresholding to segmented brain image and mask -bold_bet_threshold : Off - - -# Vertical gradient in fractional intensity threshold (-1,1) -bold_bet_vertical_gradient : 0.0 - - -# Run Functional to Template Registration -# This option must be enabled if you wish to calculate any derivatives. -# Options: ['T1_template', 'EPI_template', 'Off'] -runRegisterFuncToTemplate : ['T1_template'] - - -# ANTs parameters, if select ANTs as regOption -ANTs_para_T1_registration: - - - collapse-output-transforms: 0 - - - dimensionality: 3 - - - initial-moving-transform : - initializationFeature: 0 - - - transforms: - - Rigid: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - Affine: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - SyN: - gradientStep : 0.1 - updateFieldVarianceInVoxelSpace : 3.0 - totalFieldVarianceInVoxelSpace : 0.0 - metric: - type : CC - metricWeight: 1 - radius : 4 - convergence: - iteration : 100x100x70x20 - convergenceThreshold : 1e-09 - convergenceWindowSize : 15 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 6x4x2x1 - use-histogram-matching : True - winsorize-image-intensities : - lowerQuantile : 0.01 - upperQuantile : 0.99 - - -# Please specify ANTs parameters,if run Functional to EPI Template Registration -ANTs_para_EPI_registration: - - - collapse-output-transforms: 0 - - - dimensionality: 3 - - - initial-moving-transform : - initializationFeature: 0 - - - transforms: - - Rigid: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - Affine: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - SyN: - gradientStep : 0.1 - updateFieldVarianceInVoxelSpace : 3.0 - totalFieldVarianceInVoxelSpace : 0.0 - metric: - type : CC - metricWeight: 1 - radius : 4 - convergence: - iteration : 100x100x70x20 - convergenceThreshold : 1e-09 - convergenceWindowSize : 15 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 6x4x2x1 - use-histogram-matching : True - winsorize-image-intensities : - lowerQuantile : 0.01 - upperQuantile : 0.99 - - - -# The resolution (in mm) to which the preprocessed, registered functional timeseries outputs are written into. Note that selecting a 1 mm or 2 mm resolution might substantially increase your RAM needs- these resolutions should be selected with caution. For most cases, 3 mm or 4 mm resolutions are suggested. -# If three dimensions are identical, enter only one number (integer or floating point number), eg. 3mm or 2.5mm; if three dimensions are different, enter num1xnum2xnum3, eg. 3mmx2.5mmx2.5mm -resolution_for_func_preproc : 3mm - - -# The resolution (in mm) to which the registered derivative outputs are written into. -# If three dimensions are identical, enter only one number (integer or floating point number), eg. 3mm or 2.5mm; if three dimensions are different, enter num1xnum2xnum3, eg. 3mmx2.5mmx2.5mm -resolution_for_func_derivative : 3mm - - -# A standard template for resampling if using float resolution -template_for_resample : $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz - - -# Standard FSL Skull Stripped Template. Used as a reference image for functional registration -template_brain_only_for_func : $FSLDIR/data/standard/MNI152_T1_${resolution_for_func_preproc}_brain.nii.gz - - -# Standard FSL Anatomical Brain Image with Skull -template_skull_for_func : $FSLDIR/data/standard/MNI152_T1_${resolution_for_func_preproc}.nii.gz - - -# EPI template -template_epi : s3://fcp-indi/resources/cpac/resources/epi_hbn.nii.gz - - -# Matrix containing all 1's. Used as an identity matrix during registration. -# It is not necessary to change this path unless you intend to use non-standard MNI registration. -identityMatrix : $FSLDIR/etc/flirtsch/ident.mat - - -# Run ICA-AROMA de-noising. -runICA : [0] - - -# Types of denoising strategy: i)nonaggr-patial component regression, ii)aggr-aggressive denoising -aroma_denoise_type : nonaggr - - -# Run Nuisance Signal Regression -runNuisance : [1] - - -# Standard Lateral Ventricles Binary Mask -lateral_ventricles_mask : $FSLDIR/data/atlases/HarvardOxford/HarvardOxford-lateral-ventricles-thr25-2mm.nii.gz - - -# Select which nuisance signal corrections to apply -Regressors : - - - Motion: - include_delayed: true - include_squared: true - include_delayed_squared: true - - aCompCor: - summary: - filter: - method: DetrendPC - components: 5 - tissues: - - WhiteMatter - - CerebrospinalFluid - extraction_resolution: 2 - - CerebrospinalFluid: - summary: Mean - extraction_resolution: 2 - erode_mask: false - - GlobalSignal: - summary: Mean - - PolyOrt: - degree: 2 - - Bandpass: - bottom_frequency: 0.01 - top_frequency: 0.1 - - - - Motion: - include_delayed: true - include_squared: true - include_delayed_squared: true - - aCompCor: - summary: - filter: - method: DetrendPC - components: 5 - tissues: - - WhiteMatter - - CerebrospinalFluid - extraction_resolution: 2 - - CerebrospinalFluid: - summary: Mean - extraction_resolution: 2 - erode_mask: false - - PolyOrt: - degree: 2 - - Bandpass: - bottom_frequency: 0.01 - top_frequency: 0.1 - - -# Correct for the global signal using Median Angle Correction. -runMedianAngleCorrection : [0] - - -# Target angle used during Median Angle Correction. -targetAngleDeg : [90] - - -# Extract the average time series of one or more ROIs/seeds. Must be enabled if you wish to run Seed-based Correlation Analysis. -runROITimeseries : [1] - - -# Functional time-series and ROI realignment method: ['ROI_to_func'] or ['func_to_ROI'] -# 'ROI_to_func' will realign the atlas/ROI to functional space (fast) -# 'func_to_ROI' will realign the functional time series to the atlas/ROI space -# -# NOTE: in rare cases, realigning the ROI to the functional space may -# result in small misalignments for very small ROIs - please double -# check your data if you see issues -realignment : ['ROI_to_func'] - - -# Enter paths to region-of-interest (ROI) NIFTI files (.nii or .nii.gz) to be used for time-series extraction, and then select which types of analyses to run. -# Available analyses: ['Avg', 'Voxel', 'SpatialReg']. -# Denote which analyses to run for each ROI path by listing the names above. For example, if you wish to run Avg and SpatialReg, you would enter: '/path/to/ROI.nii.gz': Avg, SpatialReg -tsa_roi_paths: - - s3://fcp-indi/resources/cpac/resources/CC400.nii.gz: Avg - s3://fcp-indi/resources/cpac/resources/ez_mask_pad.nii.gz: Avg - s3://fcp-indi/resources/cpac/resources/aal_mask_pad.nii.gz: Avg - s3://fcp-indi/resources/cpac/resources/CC200.nii.gz: Avg - s3://fcp-indi/resources/cpac/resources/tt_mask_pad.nii.gz: Avg - s3://fcp-indi/resources/cpac/resources/PNAS_Smith09_rsn10.nii.gz: SpatialReg - s3://fcp-indi/resources/cpac/resources/ho_mask_pad.nii.gz: Avg - s3://fcp-indi/resources/cpac/resources/rois_3mm.nii.gz: Avg - - -# By default, extracted time series are written as both a text file and a 1D file. Additional output formats are as a .csv spreadsheet or a Numpy array. -roiTSOutputs : [True, True] - - -# For each extracted ROI Average time series, CPAC will generate a whole-brain correlation map. -# It should be noted that for a given seed/ROI, SCA maps for ROI Average time series will be the same. -runSCA : [1] - - -# Enter paths to region-of-interest (ROI) NIFTI files (.nii or .nii.gz) to be used for time-series extraction, and then select which types of analyses to run. -# Available analyses: ['Avg', 'DualReg', 'MultReg']. -# Denote which analyses to run for each ROI path by listing the names above. For example, if you wish to run Avg and MultReg, you would enter: '/path/to/ROI.nii.gz': Avg, MultReg -sca_roi_paths: - - s3://fcp-indi/resources/cpac/resources/PNAS_Smith09_rsn10.nii.gz: DualReg - s3://fcp-indi/resources/cpac/resources/CC400.nii.gz: Avg, MultReg - s3://fcp-indi/resources/cpac/resources/ez_mask_pad.nii.gz: Avg, MultReg - s3://fcp-indi/resources/cpac/resources/aal_mask_pad.nii.gz: Avg, MultReg - s3://fcp-indi/resources/cpac/resources/CC200.nii.gz: Avg, MultReg - s3://fcp-indi/resources/cpac/resources/tt_mask_pad.nii.gz: Avg, MultReg - s3://fcp-indi/resources/cpac/resources/ho_mask_pad.nii.gz: Avg, MultReg - s3://fcp-indi/resources/cpac/resources/rois_3mm.nii.gz: Avg, MultReg - - -# Normalize each time series before running Dual Regression SCA. -mrsNorm : True - - -# Calculate Voxel-mirrored Homotopic Connectivity (VMHC) for all voxels. -runVMHC : [1] - - -# Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. -# It is not necessary to change this path unless you intend to use a non-standard symmetric template. -template_symmetric_brain_only : $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain_symmetric.nii.gz - - -# Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. -# It is not necessary to change this path unless you intend to use a non-standard symmetric template. -template_symmetric_skull : $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_symmetric.nii.gz - - -# Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. -# It is not necessary to change this path unless you intend to use a non-standard symmetric template. -dilated_symmetric_brain_mask : $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask_symmetric_dil.nii.gz - - -# Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. -# It is not necessary to change this path unless you intend to use a non-standard symmetric template. -configFileTwomm : $FSLDIR/etc/flirtsch/T1_2_MNI152_2mm.cnf - - -# Calculate Amplitude of Low Frequency Fluctuations (ALFF) and and fractional ALFF (f/ALFF) for all voxels. -runALFF : [1] - - -# Frequency cutoff (in Hz) for the high-pass filter used when calculating f/ALFF. -highPassFreqALFF : [0.01] - - -# Frequency cutoff (in Hz) for the low-pass filter used when calculating f/ALFF -lowPassFreqALFF : [0.1] - - -# Calculate Regional Homogeneity (ReHo) for all voxels. -runReHo : [1] - - -# Number of neighboring voxels used when calculating ReHo -# 7 (Faces) -# 19 (Faces + Edges) -# 27 (Faces + Edges + Corners) -clusterSize : 27 - - -# Calculate Degree, Eigenvector Centrality, or Functional Connectivity Density. -runNetworkCentrality : [1] - - -# Full path to a NIFTI file describing the mask. Centrality will be calculated for all voxels within the mask. -templateSpecificationFile : s3://fcp-indi/resources/cpac/resources/mask-thr50-3mm.nii.gz - - -# Enable/Disable degree centrality by selecting the connectivity weights -degWeightOptions : [True, True] - - -# Select the type of threshold used when creating the degree centrality adjacency matrix. -degCorrelationThresholdOption : ['Sparsity threshold'] - - -# Based on the Threshold Type selected above, enter a Threshold Value. -# P-value for Significance Threshold -# Sparsity value for Sparsity Threshold -# Pearson's r value for Correlation Threshold -degCorrelationThreshold : 0.001 - - -# Enable/Disable eigenvector centrality by selecting the connectivity weights -eigWeightOptions : [True, True] - - -# Select the type of threshold used when creating the eigenvector centrality adjacency matrix. -eigCorrelationThresholdOption : ['Sparsity threshold'] - - -# Based on the Threshold Type selected above, enter a Threshold Value. -# P-value for Significance Threshold -# Sparsity value for Sparsity Threshold -# Pearson's r value for Correlation Threshold -eigCorrelationThreshold : 0.001 - - -# Enable/Disable lFCD by selecting the connectivity weights -lfcdWeightOptions : [True, True] - - -# Select the type of threshold used when creating the lFCD adjacency matrix. -lfcdCorrelationThresholdOption : ['Significance threshold'] - - -# Based on the Threshold Type selected above, enter a Threshold Value. -# P-value for Significance Threshold -# Sparsity value for Sparsity Threshold -# Pearson's r value for Correlation Threshold -lfcdCorrelationThreshold : 0.001 - - -# Maximum amount of RAM (in GB) to be used when calculating Degree Centrality. -# Calculating Eigenvector Centrality will require additional memory based on the size of the mask or number of ROI nodes. -memoryAllocatedForDegreeCentrality : 3.0 - - -# Smooth the derivative outputs. -# On - Run smoothing and output only the smoothed outputs. -# On/Off - Run smoothing and output both the smoothed and non-smoothed outputs. -# Off - Don't run smoothing. -run_smoothing : [1] - - -# Full Width at Half Maximum of the Gaussian kernel used during spatial smoothing. -# Can be a single value or multiple values separated by commas. -# Note that spatial smoothing is run as the last step in the individual-level analysis pipeline, such that all derivatives are output both smoothed and unsmoothed. -fwhm : [4] - - -# Choose whether to smooth outputs before or after z-scoring. -smoothing_order : ['Before'] - - -# z-score standardize the derivatives. This may be needed for group-level analysis. -# On - Run z-scoring and output only the z-scored outputs. -# On/Off - Run z-scoring and output both the z-scored and raw score versions of the outputs. -# Off - Don't run z-scoring. -runZScoring : [1] - - -# PyPEER integration -# Training of eye-estimation models. Commonly used for movies data/naturalistic viewing. -run_pypeer : [0] - - -# PEER scan names to use for training -# Example: ['peer_run-1', 'peer_run-2'] -peer_eye_scan_names : [] - - -# Naturalistic viewing data scan names to use for eye estimation -# Example: ['movieDM'] -peer_data_scan_names : [] - - -# Template-space eye mask -eye_mask_path : $FSLDIR/data/standard/MNI152_T1_${resolution_for_func_preproc}_eye_mask.nii.gz - - -# PyPEER Stimulus File Path -# This is a file describing the stimulus locations from the calibration sequence. -peer_stimulus_path : None - - -# PyPEER Minimal nuisance regression -# Note: PyPEER employs minimal preprocessing - these choices do not reflect what runs in the main pipeline. -# PyPEER uses non-nuisance-regressed data from the main pipeline. - -# Global signal regression (PyPEER only) -peer_gsr : True - -# Motion scrubbing (PyPEER only) -peer_scrub : False - -# Motion scrubbing threshold (PyPEER only) -peer_scrub_thresh : 0.2 \ No newline at end of file diff --git a/c-pac/resources/pipeline/yaml.js b/c-pac/resources/pipeline/yaml.js index 386dda4f..4107e20f 100644 --- a/c-pac/resources/pipeline/yaml.js +++ b/c-pac/resources/pipeline/yaml.js @@ -1,69 +1,4 @@ import yaml from 'js-yaml'; -import raw from './pipeline_config_template.yml'; - -let rawTemplate = '' -let emptyLines = '' -for (let l of raw.split('\n')) { - const commentMatch = /^#.*/.exec(l) - if (commentMatch) { - rawTemplate += emptyLines + l + "\n" - emptyLines = '' - continue - } - - const match = /^([a-zA-Z_]+)\s*:/.exec(l) - if (match) { - rawTemplate += emptyLines + "${config." + match[1] + "}" + "\n" - emptyLines = '' - continue - } - - const emptyMatch = /^\s*$/g.exec(l) - if (emptyMatch) { - emptyLines += "\n" - continue - } - - // Reset empty lines when between values - emptyLines = '' -} - -function replacements(yaml, pipeline, environment) { - return eval('`' + yaml.replace(/`/g,'\\`') +'`') -} - -function replace(config) { - return eval('`' + rawTemplate + '`') -} - -export default (config) => { - const configYamled = {} - for (let k of Object.keys(config)) { - let flowLevel = -1 - if (!!config[k] && config[k].constructor === Array) { - if (config[k].length > 0) { - if (config[k][0].constructor !== Object) { - flowLevel = 1 - } - } - } - - configYamled[k] = yaml.safeDump( - { [k]: config[k] }, - { flowLevel, lineWidth: 9999 } - ) - } - - return replace(configYamled) - - // const environment = { - // paths: { - // fsl_dir: '$FSLDIR', - // } - // } - - // return replacements(yaml, configYamled, environment) -} /** @@ -76,7 +11,7 @@ export default (config) => { * @returns {(Object|Array)} Returns the YAML contents as JSON. */ const loadYaml = (yamlString) => { - let yamlJS = yaml.safeLoad(yamlString); + let yamlJS = yaml.load(yamlString, {json: true}); return updateBooleansToJSON(yamlJS); }; @@ -126,4 +61,4 @@ const updateBooleansToJSON = (yamlObj) => { } -export { raw, loadYaml } +export { loadYaml } diff --git a/c-pac/test/pipeline.test.js b/c-pac/test/pipeline.test.js index 7db777a0..1d5804a6 100644 --- a/c-pac/test/pipeline.test.js +++ b/c-pac/test/pipeline.test.js @@ -3,9 +3,9 @@ import assert from 'assert'; import { pipeline } from '..'; import { loadYaml } from '../resources/pipeline/yaml'; -const { template, parse, dump, normalize } = pipeline; +const { template, parse, dump } = pipeline; -describe('load pipeline', () => { +describe.skip('load pipeline', () => { // needs to be rewritten for C-PAC v1.8+ it('should parse the YAML file', () => { const contents = fs.readFileSync('./resources/pipeline/pipeline_config_template.yml', 'utf8'); const pipeline = parse(contents) From db95f06da42cea9f4fd92549e8f61b69edbce4b8 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 6 Jul 2021 11:07:06 -0400 Subject: [PATCH 30/66] :art: Reactify PipelinePart --- app/components/OnOffSwitch.jsx | 4 +- .../pipeline/parts/PipelinePart.jsx | 355 +++++++++--------- app/containers/pipeline/parts/RoiPaths.jsx | 4 +- 3 files changed, 177 insertions(+), 186 deletions(-) diff --git a/app/components/OnOffSwitch.jsx b/app/components/OnOffSwitch.jsx index a3eca977..5974d1fa 100644 --- a/app/components/OnOffSwitch.jsx +++ b/app/components/OnOffSwitch.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { PureComponent } from 'react'; import FormControl from '@material-ui/core/FormControl'; import FormControlLabelled from 'components/FormControlLabelled'; import FormGroup from '@material-ui/core/FormGroup'; @@ -7,7 +7,7 @@ import Help from 'components/Help'; import Switch from '@material-ui/core/Switch'; import { withRouter } from 'react-router-dom'; -class OnOffSwitch extends Component { +class OnOffSwitch extends PureComponent { render() { const { checked, key, label, name, onChange, regex } = this.props; switch (regex) { diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 5d4a543e..3fdc4eef 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { Component, PureComponent } from 'react'; import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid'; @@ -84,181 +84,7 @@ export const formatLabel = (label) => { } -function returnComponent(obj, classes={}, onChange=undefined, parents=[], level=1) { - switch (Immutable.Map.isMap(obj)) { - case true: - return ( - <> - { obj.entrySeq().map((entry) => { - switch (entry[0]) { // handle objects with custom keys - case "tse_roi_paths": - return ( - - ) - case "sca_roi_paths": - return ( - - ) - default: // all others - if (Immutable.List.isList(entry[1])) { - const regex = new RegExp(`^\s*{entry[0]}`); - const label = formatLabel(entry[0]); - const name = [...parents, entry[0]].join('.'); - return ( - - - - {label} - - - {entry[1].map((item, i) => { - if (!Immutable.Map.isMap(item)){ - switch (typeof(item)){ - case "boolean": // list of On/Off switches - return ( - - - - ) - case "number": // handled same as string - case "string": - return ( - - {/* */} - - () => this.handleEdit(regi))(i)}> - - - () => this.handleDuplicate(regi))(i)}> - - - () => this.handleDelete(regi))(i)}> - - - - ) - default: - console.warn(`UNHANDLED TYPE: ${typeof(item)}: ${parents}: ${$entry[0]}: ${item}`) - return('!!!UNHANDLED TYPE!!!') - } - } else { - - { returnComponent(item, classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } - - } - })} - - - - this.handleNew()}> - - - - - - - - ) - } else { - switch (Immutable.Map.isMap(entry[1])) { - case true: - return ( - - - - { formatLabel(entry[0]) } - - - - - { returnComponent(entry[1], classes, onChange, parents=[...parents.slice(0, level), entry[0]], level + 1) } - - - - ) - case false: - const regex = new RegExp(`^\s*{entry[0]}`); - const label = formatLabel(entry[0]); - const name = [...parents.slice(0, level), entry[0]].join('.'); - switch (typeof(entry[1])) { - case 'boolean': - return ( - - ) - case 'string': - return ( - - - - - - - - ) - case 'number': - return ( - - - - - - - - ) - default: - return entry[1] - } - default: - return ( - <>{ entry[1] } - ) - } - } - } - } ) } - - ) - default: - return ( - <> - ) - } -} - - -class PipelinePart extends Component { +class PipelinePart extends PureComponent { static styles = theme => ({ fullWidth: { @@ -271,13 +97,178 @@ class PipelinePart extends Component { }); render() { - const { classes, configuration, onChange, parents } = this.props; + const { classes, configuration, onChange, parents, level } = this.props; - return ( - - { returnComponent(configuration, classes, onChange, parents) } - - ) + switch (Immutable.Map.isMap(configuration)) { + case true: + return ( + <> + { configuration.entrySeq().map((entry) => { + switch (entry[0]) { // handle objects with custom keys + case "tse_roi_paths": + return ( + + ) + case "sca_roi_paths": + return ( + + ) + default: // all others + if (Immutable.List.isList(entry[1])) { + const regex = new RegExp(`^\s*{entry[0]}`); + const label = formatLabel(entry[0]); + const name = [...parents, entry[0]].join('.'); + return ( + + + + {label} + + + {entry[1].map((item, i) => { + if (!Immutable.Map.isMap(item)){ + switch (typeof(item)){ + case "boolean": // list of On/Off switches + return ( + + + + ) + case "number": // handled same as string + case "string": + return ( + + {/* */} + + () => this.handleEdit(regi))(i)}> + + + () => this.handleDuplicate(regi))(i)}> + + + () => this.handleDelete(regi))(i)}> + + + + ) + default: + console.warn(`UNHANDLED TYPE: ${typeof(item)}: ${parents}: ${$entry[0]}: ${item}`) + return('!!!UNHANDLED TYPE!!!') + } + } else { + + + + } + })} + + + + this.handleNew()}> + + + + + + + + ) + } else { + switch (Immutable.Map.isMap(entry[1])) { + case true: + return ( + + + + { formatLabel(entry[0]) } + + + + + + + + + ) + case false: + const regex = new RegExp(`^\s*{entry[0]}`); + const label = formatLabel(entry[0]); + const name = [...parents.slice(0, level), entry[0]].join('.'); + switch (typeof(entry[1])) { + case 'boolean': + return ( + + ) + case 'string': + return ( + + + + + + + + ) + case 'number': + return ( + + + + + + + + ) + default: + return entry[1] + } + default: + return ( + <>{ entry[1] } + ) + } + } + } + } ) } + + ) + default: + return ( + <> + ) + } } } diff --git a/app/containers/pipeline/parts/RoiPaths.jsx b/app/containers/pipeline/parts/RoiPaths.jsx index fcea4ed7..3230c8ca 100644 --- a/app/containers/pipeline/parts/RoiPaths.jsx +++ b/app/containers/pipeline/parts/RoiPaths.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { PureComponent } from 'react'; import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid' @@ -33,7 +33,7 @@ import Immutable from 'immutable'; import { AddIcon, DeleteIcon } from 'components/icons'; -class RoiPaths extends Component { +class RoiPaths extends PureComponent { render() { const { config, configKey, onChange, validOptions, classes={}, help="", regex="" } = this.props; From 696c88b035f9306e36d2a63124dcdd8e9d8e2da2 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 6 Jul 2021 14:20:24 -0400 Subject: [PATCH 31/66] :adhesive_bandage: Set version on pipeline cards --- c-pac/pipeline.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index d72c65ca..766f2db3 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -7,8 +7,8 @@ const versionRe = new RegExp('(?<=\# Version:? \s*).*'); let template; -function setVersion() { - const version = versionRe.exec(); +function setVersion(rawTemplate) { + const version = versionRe.exec(rawTemplate); template = { "id": "default", "name": "Default", From 4b426cdcff64a84fb4d0fa76af0014ae1e5c2930 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 6 Jul 2021 14:24:16 -0400 Subject: [PATCH 32/66] :mute: Remove development `console.log`s --- app/sagas/config.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/sagas/config.js b/app/sagas/config.js index edbf52f5..5ae2634d 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -37,9 +37,7 @@ function* loadConfig (action) { let initialState = null; yield getPipelineDefault().then((template) => { - - console.log(template); - + const config = { version: VERSION, @@ -205,7 +203,6 @@ function* loadConfig (action) { } if (initialState.pipelines) { - console.log(initialState.pipelines); localStorage.setItem("state", JSON.stringify(initialState)); } From 726243584c8e357e1ef08e5651e4ee58f80449b0 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 6 Jul 2021 16:28:40 -0400 Subject: [PATCH 33/66] fixup! :art: Reactify PipelinePart --- app/containers/pipeline/PipelineEditor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 7c5c43e5..0f614799 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -98,7 +98,7 @@ class PipelineEditor extends Component { { configuration.entrySeq().map((entry, i) => ( - + )) } From 11c32617ddd3a0b8619cd586335dfcfd95fde9c6 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Tue, 6 Jul 2021 17:27:12 -0400 Subject: [PATCH 34/66] :zap: Only render visible Collapse component --- app/containers/pipeline/PipelineEditor.js | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 0f614799..128c47be 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -78,7 +78,7 @@ class PipelineEditor extends Component { const disable = (event) => { event.stopPropagation() } - + const entry = configuration.getIn([tab]); return ( <> - - { - configuration.entrySeq().map((entry, i) => ( - - - - )) - } + + + ); } From f4d0f1dd0ce8f66b5e056dd1d00fe3a321307eb2 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 7 Jul 2021 11:31:42 -0400 Subject: [PATCH 35/66] :bug: Fix setting ROI path options --- app/components/Help.js | 4 +- app/containers/PipelinePage.js | 36 ++-- .../pipeline/parts/PipelinePart.jsx | 4 +- app/containers/pipeline/parts/RoiPaths.jsx | 158 ++++++++++-------- package.json | 1 + yarn.lock | 5 + 6 files changed, 122 insertions(+), 86 deletions(-) diff --git a/app/components/Help.js b/app/components/Help.js index d97b90a4..34784a67 100644 --- a/app/components/Help.js +++ b/app/components/Help.js @@ -1,4 +1,4 @@ -import React from 'react' +import React, { PureComponent } from 'react' import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import Typography from '@material-ui/core/Typography' @@ -16,7 +16,7 @@ import { } from './icons' -class Help extends React.Component { +class Help extends PureComponent { state = { open: false, } diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index fc7c23b4..c4b472d5 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -1,5 +1,6 @@ import React, { Component } from 'react'; import { connect } from 'react-redux'; +import memoizeOne from 'memoize-one'; import { pipelineVersionDirtyUpdate, @@ -108,34 +109,37 @@ class PipelinePage extends Component { } } + changedValue = (key, value) => { + + if (typeof key == "string") { + key = key.split('.') + } + let configuration = this.state.configuration; + configuration = configuration.setIn(key, isImmutable(value) ? value : fromJS(value)); + + this.props.pipelineVersionDirtyUpdate( + this.props.pipeline, + configuration + ) + + this.setState({ configuration, dirty: true, version: "0" }) + } + + handleChangedValue = memoizeOne(this.changedValue); + handleChange = (values) => { if (this.state.default) { return } - let configuration = this.state.configuration; - if (values.target) { const name = values.target.name; const value = values.target.type && values.target.type == "checkbox" ? values.target.checked : values.target.value; - return this.handleChange([[name, fromJS(value)]]); - } - - for (let [key, value] of values) { - if (typeof key == "string") { - key = key.split('.') - } - configuration = configuration.setIn(key, isImmutable(value) ? value : fromJS(value)); + return this.handleChangedValue(name, fromJS(value)); } - this.props.pipelineVersionDirtyUpdate( - this.props.pipeline, - configuration - ) - - this.setState({ configuration, dirty: true, version: "0" }) } handleSave = () => { diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 3fdc4eef..1f00cde0 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -107,11 +107,11 @@ class PipelinePart extends PureComponent { switch (entry[0]) { // handle objects with custom keys case "tse_roi_paths": return ( - + ) case "sca_roi_paths": return ( - + ) default: // all others if (Immutable.List.isList(entry[1])) { diff --git a/app/containers/pipeline/parts/RoiPaths.jsx b/app/containers/pipeline/parts/RoiPaths.jsx index 3230c8ca..5319e5b9 100644 --- a/app/containers/pipeline/parts/RoiPaths.jsx +++ b/app/containers/pipeline/parts/RoiPaths.jsx @@ -34,82 +34,108 @@ import Immutable from 'immutable'; import { AddIcon, DeleteIcon } from 'components/icons'; class RoiPaths extends PureComponent { + + handleChangedOption = (values, option, fullOptionset, handleChange) => { + + let keyParts = values.target.name.split('['); + let newKey = [...keyParts[0].split('.'), keyParts[1].replace(']', '').replace(/"/gi, '')]; + + let newOptionset = new Set(fullOptionset.split(',').map(s => s.trim())) + if (values.target.checked) { + newOptionset.add(option); + } else { + newOptionset.delete(option); + } + newOptionset = Array.from(newOptionset).join(','); + + handleChange({ + target: { + name: newKey, + value: newOptionset + } + }); + } - render() { - const { config, configKey, onChange, validOptions, classes={}, help="", regex="" } = this.props; - return ( - - + render() { + const { config, configKey, parents, onChange, validOptions, classes={}, help="", regex="" } = this.props; - - - - + const fullKey = [...parents, configKey].join('.') + + return ( + + + + +
+ + + + + + ROI Image + { validOptions.map((option) => ( + { option } + ))} + + + + { config.size ? config.entrySeq().map((entry, i) => ( + - + this.removeMask(i)}> + + + + + - ROI Image { validOptions.map((option) => ( - { option } - ))} - - - - { config.size ? config.entrySeq().map((entry, i) => ( - - - this.removeMask(i)}> - - - - - + this.handleChangedOption(e, option, entry[1], onChange)} + checked={entry[1].split(',').map(item => item.trim()).includes(option)} /> - - { validOptions.map((option) => ( - - item.trim()).includes(option)} - /> - - ))} - - )) : ( - - - Add new rows with the "+" below. - + + + + ))} - ) - } - - - - - - - + )) : ( + + + Add new rows with the "+" below. - -
-
-
-
- ) - } + ) + } + + + + + + + + + + + + + + + ) } +} export default RoiPaths; \ No newline at end of file diff --git a/package.json b/package.json index ab70a095..06979ede 100644 --- a/package.json +++ b/package.json @@ -160,6 +160,7 @@ "history": "^4.7.2", "immutable": "^4.0.0-rc.12", "ini": "^1.3.6", + "memoize-one": "^5.2.1", "prop-types": "^15.6.0", "react": "^16.8.6", "react-dom": "^16.8.6", diff --git a/yarn.lock b/yarn.lock index dff7eb0c..d511ef5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6643,6 +6643,11 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +memoize-one@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" + integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== + memory-fs@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" From b71f9a70eeb18b23ce8e80af91318557da17a6f8 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 7 Jul 2021 18:21:46 -0400 Subject: [PATCH 36/66] :bug: Fix ROI path option checkbox persistence --- app/containers/PipelinePage.js | 2 +- app/containers/pipeline/parts/RoiPaths.jsx | 165 ++++++++++++++++----- 2 files changed, 131 insertions(+), 36 deletions(-) diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index c4b472d5..d01541f6 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -110,7 +110,6 @@ class PipelinePage extends Component { } changedValue = (key, value) => { - if (typeof key == "string") { key = key.split('.') } @@ -123,6 +122,7 @@ class PipelinePage extends Component { ) this.setState({ configuration, dirty: true, version: "0" }) + return(configuration) } handleChangedValue = memoizeOne(this.changedValue); diff --git a/app/containers/pipeline/parts/RoiPaths.jsx b/app/containers/pipeline/parts/RoiPaths.jsx index 5319e5b9..ee534b04 100644 --- a/app/containers/pipeline/parts/RoiPaths.jsx +++ b/app/containers/pipeline/parts/RoiPaths.jsx @@ -33,34 +33,123 @@ import Immutable from 'immutable'; import { AddIcon, DeleteIcon } from 'components/icons'; -class RoiPaths extends PureComponent { +class RoiCheckbox extends PureComponent { + + keyArray = this.props.fullKey.split('.'); + entry = this.props.entries.getIn([this.props.roiPath]); - handleChangedOption = (values, option, fullOptionset, handleChange) => { + state = { + entries: this.props.entries, + checked: this.entry.split(',').map(item => item.trim()).includes(this.props.option) + } + handleChangedOption = (values, config, option, roiPath, handleChange) => { + const entry = this.props.entries.getIn([this.props.roiPath]); + const fullOptionset = new Set(entry.split(',').map(s => s.trim())); + let checked = !this.state.checked; let keyParts = values.target.name.split('['); - let newKey = [...keyParts[0].split('.'), keyParts[1].replace(']', '').replace(/"/gi, '')]; + let newKey = [...keyParts[0].split('.'), roiPath]; - let newOptionset = new Set(fullOptionset.split(',').map(s => s.trim())) - if (values.target.checked) { + let newOptionset = fullOptionset; + if (checked) { newOptionset.add(option); } else { newOptionset.delete(option); } - newOptionset = Array.from(newOptionset).join(','); + newOptionset = Array.from(newOptionset).filter(option => option.length).join(','); - handleChange({ + const newEntries = handleChange({ target: { name: newKey, value: newOptionset } }); + + this.setState({ + checked: checked, + entries: newEntries.getIn(this.keyArray) + }); + + this.props.updateState(newEntries.getIn(this.keyArray)); } - + render() { - const { config, configKey, parents, onChange, validOptions, classes={}, help="", regex="" } = this.props; + const { config, roiPath, fullKey, option, onChange } = this.props; + return ( + this.handleChangedOption(e, config, option, roiPath, onChange)} + checked={this.state.checked} + /> + ) + } +} + +class RoiTextField extends PureComponent { + + state = { path: this.props.entry[0] }; + + changePath = (values) => { + this.setState({path: values.target.value}); + } - const fullKey = [...parents, configKey].join('.') + handleChangedPath = (values, config, entry, handleChange) => { + let newConfig = config.delete(entry[0]) + newConfig = newConfig.setIn([values.target.value], entry[1]) + handleChange({ + target: { + name: values.target.name, + value: newConfig + } + }) + } + + render() { + const { config, entry, fullKey, handleChange } = this.props; + return ( + this.changePath(e, config, entry[0])} + onBlur={(e) => this.handleChangedPath(e, config, entry, handleChange)} + value={this.state.path} + helperText='' + /> + ) + } +} + +class RoiPaths extends PureComponent { + + state = { + sortedPaths: this.props.config.keySeq().sort(), // so the sequence is relatively consistent + entries: this.props.config + }; + + removeMask = (fullKey, config, entry, handleChange) => { + const newConfig = config.delete(entry[0]); + handleChange({ + target: { + name: fullKey, + value: newConfig + } + }); + + this.updateState(newConfig); + } + + updateState = (newConfig) => { + this.setState({ + sortedPaths: newConfig.keySeq().sort(), + entries: newConfig + }); + } + + render() { + const { config, configKey, parents, onChange, validOptions, classes={}, help="", regex="" } = this.props; + + const fullKey = [...parents, configKey].join('.'); return ( @@ -83,35 +172,41 @@ class RoiPaths extends PureComponent { - { config.size ? config.entrySeq().map((entry, i) => ( + { this.state.entries.size ? this.state.sortedPaths.map((roiPath, i) => { + let entries = this.state.entries; + let updateState = this.updateState; + const entry = [roiPath, this.state.entries.getIn([roiPath])]; + return ( - - this.removeMask(i)}> + + this.removeMask(fullKey, config, entry, onChange)}> - - - + + - - { validOptions.map((option) => ( - - this.handleChangedOption(e, option, entry[1], onChange)} - checked={entry[1].split(',').map(item => item.trim()).includes(option)} - /> - - - - ))} - - )) : ( + + { validOptions.map((option) => ( + + + + ))} + + ) + }) : ( Add new rows with the "+" below. From 1260f1eda46f8971b0c8543f214351aeda4dd43e Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 8 Jul 2021 10:26:30 -0400 Subject: [PATCH 37/66] =?UTF-8?q?:sparkles:=20Add=20new=20ROI=20=E2=86=92?= =?UTF-8?q?=20Full=20CRUD=20for=20ROI=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/containers/pipeline/parts/RoiPaths.jsx | 35 +++++++++++++++++----- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/app/containers/pipeline/parts/RoiPaths.jsx b/app/containers/pipeline/parts/RoiPaths.jsx index ee534b04..0b15d58b 100644 --- a/app/containers/pipeline/parts/RoiPaths.jsx +++ b/app/containers/pipeline/parts/RoiPaths.jsx @@ -122,11 +122,32 @@ class RoiTextField extends PureComponent { class RoiPaths extends PureComponent { + sortPaths = (config) => { // put new mask at end of list; + let paths = Array.from(config.keySeq()); + paths.sort(); + if (paths.includes('')) { + paths = [...paths.slice(1, paths.length), '']; + } + return paths; + } + state = { - sortedPaths: this.props.config.keySeq().sort(), // so the sequence is relatively consistent + sortedPaths: this.sortPaths(this.props.config), // so the sequence is relatively consistent entries: this.props.config }; + addMask = (fullKey, config, handleChange) => { + const newConfig = config.setIn([""], ""); + handleChange({ + target: { + name: fullKey, + value:newConfig + } + }); + + this.updateState(newConfig); + } + removeMask = (fullKey, config, entry, handleChange) => { const newConfig = config.delete(entry[0]); handleChange({ @@ -141,8 +162,8 @@ class RoiPaths extends PureComponent { updateState = (newConfig) => { this.setState({ - sortedPaths: newConfig.keySeq().sort(), - entries: newConfig + entries: newConfig, + sortedPaths: this.sortPaths(newConfig) }); } @@ -215,15 +236,15 @@ class RoiPaths extends PureComponent { ) } - - + { this.state.sortedPaths.includes('') ? null : ( + - + this.addMask(fullKey, config, onChange)}> - + ) } From f22ab2952d6a273aeebbc0d194f2690ef448411c Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 8 Jul 2021 11:42:04 -0400 Subject: [PATCH 38/66] :recycle: Make download work with new fomrat --- app/containers/PipelinePage.js | 8 +++++--- c-pac/pipeline.js | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index d01541f6..cf1c8d17 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -151,7 +151,9 @@ class PipelinePage extends Component { }; handleDownload = () => { - const pipeline = this.props.pipeline + const pipeline = this.props.pipeline; + const configuration = this.state.configuration; + const pipelineName = pipeline.get('name'); const versions = pipeline.get('versions') let version = null if (versions.has("0")) { @@ -161,14 +163,14 @@ class PipelinePage extends Component { } var blob = new Blob( - [cpac.pipeline.dump(pipeline.toJS(), version)], + [cpac.pipeline.dump(configuration.toJS(), pipelineName, version)], { type: "text/yaml;charset=utf-8" } ); var anchor = document.createElement('a'); anchor.href = window.URL.createObjectURL(blob); anchor.target = '_blank'; - anchor.download = pipeline.get('name') + '.yml' + anchor.download = pipelineName + '.yml' anchor.click(); } diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index 766f2db3..ac02ed44 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -33,7 +33,21 @@ async function getDefaultPipeline(url) { return defaultPipeline; } -export { defaultPipelineUrl, getDefaultPipeline, rawTemplate } +/** + * Takes a configuration object, pipeline name string, and version string and returns a YAML string + * @param {object} configObj + * @param {string} pipelineName + * @param {string} version + * @returns {string} YAML representation of configObj + */ +const dump = (configObj, pipelineName, version) => ( + `${rawTemplate.split('\n').slice(0, 7).join('\n')} +# Pipeline config "${pipelineName}", version GUI-${version} +# ${Date(Date.now())} + +${yaml.dump(configObj)}`) + +export { defaultPipelineUrl, dump, getDefaultPipeline, rawTemplate } function slugify(text) { return text.toString().toLowerCase() From 1e928b24d62a3a828770c2fa048ec51cde7e3679 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 8 Jul 2021 12:19:48 -0400 Subject: [PATCH 39/66] :adhesive_bandage: Drop empty ROI paths from download --- c-pac/pipeline.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index ac02ed44..a25bc248 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -45,7 +45,7 @@ const dump = (configObj, pipelineName, version) => ( # Pipeline config "${pipelineName}", version GUI-${version} # ${Date(Date.now())} -${yaml.dump(configObj)}`) +${yaml.dump(configObj)}`.replace(/\s*'':.*/gi, '')) export { defaultPipelineUrl, dump, getDefaultPipeline, rawTemplate } From fa0f306d8c7b68c377fd048236e950a5b165e6f1 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 8 Jul 2021 12:33:59 -0400 Subject: [PATCH 40/66] :adhesive_bandage: Add spaces to comma-separated ROI options --- app/containers/pipeline/parts/RoiPaths.jsx | 2 +- app/reducers/main.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/containers/pipeline/parts/RoiPaths.jsx b/app/containers/pipeline/parts/RoiPaths.jsx index 0b15d58b..692e9644 100644 --- a/app/containers/pipeline/parts/RoiPaths.jsx +++ b/app/containers/pipeline/parts/RoiPaths.jsx @@ -56,7 +56,7 @@ class RoiCheckbox extends PureComponent { } else { newOptionset.delete(option); } - newOptionset = Array.from(newOptionset).filter(option => option.length).join(','); + newOptionset = Array.from(newOptionset).filter(option => option.length).join(', '); const newEntries = handleChange({ target: { diff --git a/app/reducers/main.js b/app/reducers/main.js index 4dcdf19b..c89aed99 100644 --- a/app/reducers/main.js +++ b/app/reducers/main.js @@ -96,6 +96,8 @@ export default function main(state, action) { const i = state.getIn(['config', 'pipelines']) .findIndex((p) => p.get('id') == id) + console.log(state.getIn(['config', 'pipelines', i, 'versions'])); + if (!state.getIn(['config', 'pipelines', i, 'versions']).has("0")) { return state } From f35f4806c0178768cc6b6dc099d93f0b525fee4c Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 8 Jul 2021 15:58:37 -0400 Subject: [PATCH 41/66] :recycle: Persist C-PAC version on update --- app/containers/PipelinePage.js | 4 ++-- app/reducers/main.js | 23 ++++++++++++++++------- app/sagas/config.js | 2 ++ c-pac/pipeline.js | 7 ++----- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index cf1c8d17..a1f21a4a 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -58,7 +58,7 @@ class PipelinePage extends Component { constructor(props) { super(props) - const pipeline = this.props.pipeline + const { pipeline } = this.props; if (!pipeline) { return @@ -147,7 +147,7 @@ class PipelinePage extends Component { }; handleRevert = () => { - this.props.pipelineVersionDirtyRevert(this.props.pipeline.get('id')) + this.props.pipelineVersionDirtyRevert(this.props.pipeline.get('id')); }; handleDownload = () => { diff --git a/app/reducers/main.js b/app/reducers/main.js index c89aed99..67250c2c 100644 --- a/app/reducers/main.js +++ b/app/reducers/main.js @@ -23,6 +23,19 @@ import { fromJS } from 'immutable' import cpac from '@internal/c-pac' +/** + * Function to persist C-PAC version tag across updates + * @param {!number} i + * @param {Map} state + * @returns {Map} Semantic Version of C-PAC for which pipeline config is sytactically specified. + */ +const persistVersion = (i, state) => state.getIn([ + 'config', 'pipelines', i, 'versions', Math.max( + ...Array.from(state.getIn([ + 'config', 'pipelines', i, 'versions' + ]).keySeq()).map(k => parseInt(k)) + ).toString(), 'version' +]) || state.getIn(['config', 'defaultVersion']); export default function main(state, action) { if (!state) { @@ -57,14 +70,13 @@ export default function main(state, action) { case PIPELINE_VERSION_DIRTY_UPDATE: { const { pipeline: id, configuration } = action - const i = state.getIn(['config', 'pipelines']) - .findIndex((p) => p.get('id') == id) + .findIndex((p) => p.get('id') == id); return state.setIn( ['config', 'pipelines', i, 'versions', '0'], fromJS({ - version: '1.6.0', + version: persistVersion(i, state), configuration }) ) @@ -72,7 +84,6 @@ export default function main(state, action) { case PIPELINE_VERSION_DIRTY_SAVE: { const { pipeline: id } = action - const i = state.getIn(['config', 'pipelines']) .findIndex((p) => p.get('id') == id) @@ -84,7 +95,7 @@ export default function main(state, action) { .setIn([ 'config', 'pipelines', i, 'versions', new Date().getTime().toString() ], fromJS({ - version: '1.3.0', + version: persistVersion(i, state), configuration: state.getIn(['config', 'pipelines', i, 'versions', '0', 'configuration']) })) .deleteIn(['config', 'pipelines', i, 'versions', '0']) @@ -96,8 +107,6 @@ export default function main(state, action) { const i = state.getIn(['config', 'pipelines']) .findIndex((p) => p.get('id') == id) - console.log(state.getIn(['config', 'pipelines', i, 'versions'])); - if (!state.getIn(['config', 'pipelines', i, 'versions']).has("0")) { return state } diff --git a/app/sagas/config.js b/app/sagas/config.js index 5ae2634d..5eed5eed 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -197,6 +197,8 @@ function* loadConfig (action) { console.log("Using local state") } + initialState.defaultVersion = template.versions[0].version; + if (!initialState.executions) { initialState.executions = [] localStorage.setItem("state", JSON.stringify(initialState)) diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index a25bc248..de98461c 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -5,11 +5,9 @@ import { default as rawTemplate } from './resources/pipeline/default_pipeline.ym const defaultPipelineUrl = 'https://raw.githubusercontent.com/FCP-INDI/C-PAC/master/dev/docker_data/default_pipeline.yml' const versionRe = new RegExp('(?<=\# Version:? \s*).*'); -let template; - function setVersion(rawTemplate) { const version = versionRe.exec(rawTemplate); - template = { + return ({ "id": "default", "name": "Default", "versions": { @@ -18,8 +16,7 @@ function setVersion(rawTemplate) { "configuration": loadYaml(rawTemplate) } } - } - return template; + }); } async function getDefaultPipeline(url) { From 883ae393b7c9d297fab826b74d2174c7d4b92ed7 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 09:27:51 -0400 Subject: [PATCH 42/66] :zap: Generalize custom text fields for pipeline text fields --- app/components/TextField.jsx | 83 +++++++++++++++++++ .../pipeline/parts/PipelinePart.jsx | 6 +- app/containers/pipeline/parts/RoiPaths.jsx | 42 +--------- 3 files changed, 89 insertions(+), 42 deletions(-) create mode 100644 app/components/TextField.jsx diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx new file mode 100644 index 00000000..c9b83102 --- /dev/null +++ b/app/components/TextField.jsx @@ -0,0 +1,83 @@ +import React, { PureComponent } from 'react'; +import TextField from '@material-ui/core/TextField'; + +class CustomTextField extends PureComponent { + changePath = (values) => { + this.setState({ path: values.target.value }); + } + + handleChangedPath = (values, entry, handleChange, config) => { + switch (config) { + case null: + case undefined: + handleChange({ + target: { + name: values.target.name, + value: entry + } + }) + break; + default: + let newConfig = config.delete(entry[0]) + newConfig = newConfig.setIn([values.target.value], entry[1]) + handleChange({ + target: { + name: values.target.name, + value: newConfig + } + }) + } + + } + + handleKeyDown = (event, entry, handleChange, config) => { + if (event.key === 'Enter') { + this.handleChangedPath(event, entry, handleChange, config); + } else { + this.changePath(event); + } + } +} + +class ROITextField extends CustomTextField { + + state = { path: this.props.entry[0] }; + + render() { + const { config, entry, fullKey, handleChange } = this.props; + + return ( + this.changePath(e)} + onKeyDown={(e) => this.handleKeyDown(e, entry, handleChange, config)} + onBlur={(e) => this.handleChangedPath(e, entry, handleChange, config)} + value={this.state.path} + helperText='' + /> + ) + } +} + +class PipelineTextField extends CustomTextField { + + state = { path: this.props.value }; + + render() { + const { config, onChange } = this.props; + + return ( + this.changePath(e)} + onKeyDown={(e) => this.handleKeyDown(e, this.state.path, onChange)} + onBlur={(e) => this.handleChangedPath(e, this.state.path, onChange)} + /> + ) + } +} + +export default ROITextField; +export { PipelineTextField }; \ No newline at end of file diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 1f00cde0..53c7c3e2 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -7,7 +7,7 @@ import Accordion from '@material-ui/core/Accordion'; import AccordionDetails from '@material-ui/core/AccordionDetails'; import AccordionSummary from '@material-ui/core/AccordionSummary'; import MenuItem from '@material-ui/core/MenuItem'; -import TextField from '@material-ui/core/TextField'; +import { PipelineTextField } from 'components/TextField'; import Switch from '@material-ui/core/Switch'; import InputAdornment from '@material-ui/core/InputAdornment'; @@ -221,7 +221,7 @@ class PipelinePart extends PureComponent { regex={regex} help="" fullWidth > - - { - this.setState({path: values.target.value}); - } - - handleChangedPath = (values, config, entry, handleChange) => { - let newConfig = config.delete(entry[0]) - newConfig = newConfig.setIn([values.target.value], entry[1]) - handleChange({ - target: { - name: values.target.name, - value: newConfig - } - }) - } - - render() { - const { config, entry, fullKey, handleChange } = this.props; - - return ( - this.changePath(e, config, entry[0])} - onBlur={(e) => this.handleChangedPath(e, config, entry, handleChange)} - value={this.state.path} - helperText='' - /> - ) - } -} - class RoiPaths extends PureComponent { sortPaths = (config) => { // put new mask at end of list; @@ -205,7 +170,7 @@ class RoiPaths extends PureComponent { - @@ -253,5 +218,4 @@ class RoiPaths extends PureComponent { } } - export default RoiPaths; - \ No newline at end of file +export default RoiPaths; From 3bb4a35e9974eef9978b589d5026b6d3ff50efb7 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 15:51:31 -0400 Subject: [PATCH 43/66] :sparkles: Keep old default pipeline when updating default --- app/sagas/config.js | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/app/sagas/config.js b/app/sagas/config.js index 5eed5eed..002abb83 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -26,6 +26,8 @@ import { import cpac from '@internal/c-pac'; import { getDefaultPipeline, defaultPipelineUrl } from '@internal/c-pac/pipeline'; +import { fromJS } from 'immutable'; + async function getPipelineDefault() { const pipelineDefault = await getDefaultPipeline(defaultPipelineUrl); return pipelineDefault; @@ -185,32 +187,44 @@ function* loadConfig (action) { } try { - initialState = JSON.parse(localStorage.getItem("state")) + initialState = JSON.parse(localStorage.getItem('state')) } catch (e) { } if (!initialState) { - initialState = config - localStorage.setItem("state", JSON.stringify(config)) - console.log("Using initial state") + initialState = config; + localStorage.setItem('state', JSON.stringify(config)); + console.log("Using initial state"); } else { - console.log("Using local state") + // Update default if necessary + if(!fromJS(template).equals(fromJS(initialState.pipelines[0]))) { + const pipelineIds = initialState.pipelines.map((p)=>p.id); + let oldDefault = initialState.pipelines[0]; + oldDefault.id = `default-${oldDefault.versions[0].version}`; + if (!pipelineIds.includes(oldDefault.id)) { + console.log(oldDefault.id); + console.log(initialState.pipelines.map((p)=>p.id)); + initialState.pipelines.push(oldDefault); + initialState.pipelines[0] = template; + }; + }; + console.log("Using local state"); } initialState.defaultVersion = template.versions[0].version; if (!initialState.executions) { initialState.executions = [] - localStorage.setItem("state", JSON.stringify(initialState)) + localStorage.setItem('state', JSON.stringify(initialState)) } if (initialState.pipelines) { - localStorage.setItem("state", JSON.stringify(initialState)); + localStorage.setItem('state', JSON.stringify(initialState)); } if (!initialState.version) { initialState.version = VERSION - localStorage.setItem("state", JSON.stringify(initialState)) + localStorage.setItem('state', JSON.stringify(initialState)) } }); @@ -219,12 +233,12 @@ function* loadConfig (action) { function* saveConfig() { const config = yield select((state) => state.main.getIn(['config'])); - localStorage.setItem("state", JSON.stringify(config.toJS())) + localStorage.setItem('state', JSON.stringify(config.toJS())); yield put(configSaved()) } function* clearConfig(config) { - localStorage.removeItem("state") + localStorage.removeItem('state') yield put(configCleared(config)) } From b7a332d49ba0097ffde42acc58b4a69497eede9f Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 16:13:18 -0400 Subject: [PATCH 44/66] :art: Make old defaults immutable --- app/components/PipelineCard.js | 8 +++++--- app/containers/PipelinePage.js | 11 ++++++++++- app/sagas/config.js | 2 -- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/components/PipelineCard.js b/app/components/PipelineCard.js index b1c022a7..0a417467 100644 --- a/app/components/PipelineCard.js +++ b/app/components/PipelineCard.js @@ -45,6 +45,7 @@ import { DuplicateIcon, } from './icons'; import { formatLabel } from '../containers/pipeline/parts/PipelinePart' +import { isADefault } from '../containers/PipelinePage' class PipelineCard extends Component { @@ -78,6 +79,7 @@ class PipelineCard extends Component { render() { const { classes, pipeline } = this.props + const pipelineIsADefault = isADefault(pipeline.get('id')); let versionId = '0' const versions = pipeline.get('versions') if (!versions.has("0")) { @@ -146,7 +148,7 @@ class PipelineCard extends Component { - { pipeline.get('id') != 'default' ? + { !pipelineIsADefault ? this.props.onDelete(pipeline.get('id'))}> @@ -155,9 +157,9 @@ class PipelineCard extends Component { : null } - + this.handleOpen(pipeline.get('id'))}> - {pipeline.get('id') === 'default' ? : } + {pipelineIsADefault ? : } diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index a1f21a4a..d0065d8c 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -81,7 +81,7 @@ class PipelinePage extends Component { this.state = { dirty, version, - default: pipeline.get('id') === 'default', + default: isADefault(pipeline.get('id')), configuration: pipeline.getIn(['versions', version, 'configuration']) } } @@ -313,4 +313,13 @@ const areStatesEqual = (next, prev) => { return false } +/** + * Checks if a given pipeline ID is for a default pipeline. + * @param {string} pipelineID + * @returns {boolean} + */ +export const isADefault = (pipelineId) => { + return pipelineId.slice(0, 7) === 'default'; +} + export default connect(mapStateToProps, mapDispatchToProps, null, { areStatesEqual })(withStyles(PipelinePage.styles)(PipelinePage)); diff --git a/app/sagas/config.js b/app/sagas/config.js index 002abb83..fc65555e 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -202,8 +202,6 @@ function* loadConfig (action) { let oldDefault = initialState.pipelines[0]; oldDefault.id = `default-${oldDefault.versions[0].version}`; if (!pipelineIds.includes(oldDefault.id)) { - console.log(oldDefault.id); - console.log(initialState.pipelines.map((p)=>p.id)); initialState.pipelines.push(oldDefault); initialState.pipelines[0] = template; }; From 9cc8eed8c2e029ee97477744141b9969c407631c Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 16:55:58 -0400 Subject: [PATCH 45/66] :recycle: Update upload button for 1.8+ --- app/components/PipelineCard.js | 35 ++++++++++++++++++++-------------- app/reducers/main.js | 28 +++++++++++++++++++-------- app/sagas/config.js | 6 +++++- c-pac/pipeline.js | 2 +- 4 files changed, 47 insertions(+), 24 deletions(-) diff --git a/app/components/PipelineCard.js b/app/components/PipelineCard.js index 0a417467..feea314b 100644 --- a/app/components/PipelineCard.js +++ b/app/components/PipelineCard.js @@ -90,24 +90,31 @@ class PipelineCard extends Component { const configuration = version.getIn(['configuration', ]); const cardSteps = ['anatomical_preproc', 'functional_preproc', 'surface_analysis']; let derivatives = []; - + let importedPipeline = null; Object.keys(configuration.toJS()).forEach(step => { - let [...stepKeys] = configuration.getIn([step]).keys(); - if (stepKeys.includes('run')) { - const runswitch = configuration.getIn([step, 'run']); - if ( - !cardSteps.includes(step) && - runswitch && - ( - typeof(runswitch) === 'boolean' || - (Array.isArray(runswitch) && runswitch.includes(true)) - ) - ) { derivatives.push(step); } + if (step === 'FROM') { + importedPipeline = configuration.getIn([step]); + } else { + let [...stepKeys] = configuration.getIn([step]).keys(); + if (stepKeys.includes('run')) { + const runswitch = configuration.getIn([step, 'run']); + if ( + !cardSteps.includes(step) && + runswitch && + ( + typeof(runswitch) === 'boolean' || + (Array.isArray(runswitch) && runswitch.includes(true)) + ) + ) { derivatives.push(step); } + } } }) derivatives = Array.from(derivatives); derivatives = derivatives ? derivatives.length : 0; - + let cardSubheader = `C-PAC ${version.get('version')}`; + if (importedPipeline != null) { + cardSubheader = `FROM '${importedPipeline}' (${cardSubheader})` + } return ( } title={pipeline.get('name')} - subheader={`C-PAC ${version.get('version')}`} + subheader={cardSubheader} /> diff --git a/app/reducers/main.js b/app/reducers/main.js index 67250c2c..5b9ec6aa 100644 --- a/app/reducers/main.js +++ b/app/reducers/main.js @@ -22,6 +22,8 @@ import uuid from 'uuid/v4' import { fromJS } from 'immutable' import cpac from '@internal/c-pac' +import { loadYaml } from '../../c-pac/resources/pipeline/yaml' +import { versionRe } from '../../c-pac/pipeline' /** * Function to persist C-PAC version tag across updates @@ -119,10 +121,16 @@ export default function main(state, action) { const { content } = action const pipelines = state.getIn(['config', 'pipelines']) const newPipelineId = uuid() - const newPipeline = fromJS(cpac.pipeline.parse(content)) - .set('id', newPipelineId) - - let name = newPipeline.get('name').trim() + const newPipeline = { + 'id': newPipelineId, + 'pipeline': fromJS(loadYaml(content)) + }; + let name = '[Unnamed]'; + try { // C-PAC v1.8+ + name = newPipeline.pipeline.getIn(['pipeline_setup', 'pipeline_name']) + } catch { // C-PAC v1.7 + name = newPipeline.pipeline.get('name') ? newPipeline.get('name').trim() : name; + } let iName = 2 if (pipelines.filter((p) => p.get('name') == name).size > 0) { while(pipelines.filter((p) => p.get('name') == name + ' (' + iName + ')').size > 0) { @@ -130,11 +138,15 @@ export default function main(state, action) { } name = name + ' (' + iName + ')' } - + newPipeline.name = name; + newPipeline.versions = {'0': { + configuration: newPipeline.pipeline, + version: versionRe.exec(content)[0] + }} + delete newPipeline.pipeline; const newPipelines = pipelines.push( - newPipeline - .set('name', name) - ) + fromJS(newPipeline) + ); return state.setIn(['config', 'pipelines'], newPipelines) } diff --git a/app/sagas/config.js b/app/sagas/config.js index fc65555e..bb360555 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -18,7 +18,9 @@ import { PIPELINE_DUPLICATE, PIPELINE_VERSION_DIRTY_UPDATE, PIPELINE_VERSION_DIRTY_SAVE, - PIPELINE_DOWNLOAD + PIPELINE_DOWNLOAD, + PIPELINE_IMPORT_DONE, + PIPELINE_IMPORT } from '../actions/pipeline' @@ -244,6 +246,8 @@ export default function* configSaga () { yield all([ takeEvery(CONFIG_LOAD, loadConfig), takeEvery(CONFIG_SAVE, saveConfig), + takeEvery(PIPELINE_IMPORT, saveConfig), + takeEvery(PIPELINE_IMPORT_DONE, saveConfig), takeEvery(PIPELINE_NAME_UPDATE, saveConfig), takeEvery(PIPELINE_VERSION_DIRTY_UPDATE, saveConfig), takeEvery(PIPELINE_VERSION_DIRTY_SAVE, saveConfig), diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index de98461c..2d843362 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -44,7 +44,7 @@ const dump = (configObj, pipelineName, version) => ( ${yaml.dump(configObj)}`.replace(/\s*'':.*/gi, '')) -export { defaultPipelineUrl, dump, getDefaultPipeline, rawTemplate } +export { defaultPipelineUrl, dump, getDefaultPipeline, rawTemplate, versionRe } function slugify(text) { return text.toString().toLowerCase() From 92cc28ea92e57dd8887138b510567678cbee244a Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 17:19:22 -0400 Subject: [PATCH 46/66] :recycle: Handle "FROM" key --- app/components/PipelineCard.js | 7 +++---- app/components/TextField.jsx | 2 +- app/containers/pipeline/parts/PipelinePart.jsx | 17 ++++++++++++++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/components/PipelineCard.js b/app/components/PipelineCard.js index feea314b..e287a635 100644 --- a/app/components/PipelineCard.js +++ b/app/components/PipelineCard.js @@ -90,10 +90,9 @@ class PipelineCard extends Component { const configuration = version.getIn(['configuration', ]); const cardSteps = ['anatomical_preproc', 'functional_preproc', 'surface_analysis']; let derivatives = []; - let importedPipeline = null; Object.keys(configuration.toJS()).forEach(step => { if (step === 'FROM') { - importedPipeline = configuration.getIn([step]); + configuration.importedPipeline = configuration.getIn([step]); } else { let [...stepKeys] = configuration.getIn([step]).keys(); if (stepKeys.includes('run')) { @@ -112,8 +111,8 @@ class PipelineCard extends Component { derivatives = Array.from(derivatives); derivatives = derivatives ? derivatives.length : 0; let cardSubheader = `C-PAC ${version.get('version')}`; - if (importedPipeline != null) { - cardSubheader = `FROM '${importedPipeline}' (${cardSubheader})` + if (configuration.hasOwnProperty('importedPipeline')) { + cardSubheader = `FROM '${configuration.importedPipeline}' (${cardSubheader})` } return ( diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index c9b83102..e31b5c91 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -54,7 +54,7 @@ class ROITextField extends CustomTextField { onKeyDown={(e) => this.handleKeyDown(e, entry, handleChange, config)} onBlur={(e) => this.handleChangedPath(e, entry, handleChange, config)} value={this.state.path} - helperText='' + helperText={helperText} /> ) } diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 53c7c3e2..75c0b4c5 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -265,9 +265,20 @@ class PipelinePart extends PureComponent { ) default: - return ( - <> - ) + switch (parents[0]) { + case 'FROM': + return ( + + ) + default: + return <> + } } } } From 26b959e1e9337cdfb415336f59c6931e67f9760b Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 17:24:31 -0400 Subject: [PATCH 47/66] :triangular_flag_on_post: Temporarily hide 'save' and 'revert' buttons and 'dirty' "*" indicator --- app/containers/PipelinePage.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index d0065d8c..db3d974d 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -231,7 +231,11 @@ class PipelinePage extends Component { style={{ cursor: this.state.default ? '' : 'pointer', }} - >{ pipeline.get('name') + (this.state.dirty ? " *" : "") } + > + { + pipeline.get('name') // TODO: fix dirty/save/revert + (this.state.dirty ? " *" : "") + } + ) } @@ -250,7 +254,7 @@ class PipelinePage extends Component { - + {/* TODO: fix dirty/save/revert @@ -264,7 +268,7 @@ class PipelinePage extends Component { - + */} ) From 4491bb601d61c7ddf7bf2e35f9bd87bc829d1c2c Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 17:34:16 -0400 Subject: [PATCH 48/66] :wastebasket: Remove deprecated code --- .../pipeline/parts/PipelinePart.jsx | 11 +-- .../parts/anatomical/SurfaceAnalysis.js | 72 ------------------- 2 files changed, 1 insertion(+), 82 deletions(-) delete mode 100644 app/containers/pipeline/parts/anatomical/SurfaceAnalysis.js diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 75c0b4c5..d39d2f43 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -1,4 +1,4 @@ -import React, { Component, PureComponent } from 'react'; +import React, { PureComponent } from 'react'; import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid'; @@ -46,15 +46,6 @@ import { import RoiPaths from './RoiPaths'; -class PipelineListPart extends Component { - render() { - const { classes, configuration, onChange, parents } = this.props; - return ( - <> - ) - } -} - export const formatLabel = (label) => { const specialCasings = { afni: "AFNI", diff --git a/app/containers/pipeline/parts/anatomical/SurfaceAnalysis.js b/app/containers/pipeline/parts/anatomical/SurfaceAnalysis.js deleted file mode 100644 index c8234041..00000000 --- a/app/containers/pipeline/parts/anatomical/SurfaceAnalysis.js +++ /dev/null @@ -1,72 +0,0 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; - -import { withStyles, Typography, Collapse } from '@material-ui/core'; -import Grid from '@material-ui/core/Grid' -import Divider from '@material-ui/core/Divider'; - -import TextField from '@material-ui/core/TextField'; -import Switch from '@material-ui/core/Switch'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import InputLabel from '@material-ui/core/InputLabel'; - -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogTitle from '@material-ui/core/DialogTitle'; - -import Help from 'components/Help' -import FormControlLabelled from 'components/FormControlLabelled' -import IconButton from '@material-ui/core/IconButton' - -import { - SettingsIcon, -} from 'components/icons'; - -class SurfaceAnalysis extends Component { - - static styles = theme => ({ - }); - - render() { - const { classes, configuration, advanced, onChange } = this.props - - return ( - - - - - - - - - - - - ) - } -} - -const mapStateToProps = (state, props) => { - return { - advanced: state.main.getIn(['config', 'settings', 'advanced']), - } -} - -export default connect(mapStateToProps)(withStyles(SurfaceAnalysis.styles)(SurfaceAnalysis)); From 894d215e7f1f416e6069e373b1dc903507488fcc Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 17:35:06 -0400 Subject: [PATCH 49/66] :rotating_light: Lint CSS --- app/app.global.css | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/app.global.css b/app/app.global.css index 87132ff8..201469d3 100644 --- a/app/app.global.css +++ b/app/app.global.css @@ -6,15 +6,17 @@ * { -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; /* Non-prefixed version, currently + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */ } -html, body { margin: 0; padding: 0; overflow: hidden; } +html, +body { margin: 0; padding: 0; overflow: hidden; +} body { position: relative; @@ -30,10 +32,11 @@ header#root-header { } header#root-header a { - opacity: 1.0; + opacity: 1; } -header#root-header img, header#root-header a img { +header#root-header img, +header#root-header a img { max-height: 50px; box-shadow: #232c39; } From 58865a79c45854cb1e5154ca4fdf9a5192e33e5e Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 17:48:44 -0400 Subject: [PATCH 50/66] :rotating_light: Lint JS --- .eslintrc | 6 +- app/components/Help.js | 4 +- config/webpack.config.base.js | 6 +- config/webpack.config.main.dev.js | 15 +++-- config/webpack.config.main.prod.js | 15 +++-- config/webpack.config.renderer.dev.js | 8 +-- config/webpack.config.renderer.prod.js | 6 +- package.json | 3 +- yarn.lock | 84 ++++++++++++++++++++------ 9 files changed, 99 insertions(+), 48 deletions(-) diff --git a/.eslintrc b/.eslintrc index 7fcad355..8ef1a718 100644 --- a/.eslintrc +++ b/.eslintrc @@ -30,14 +30,16 @@ }], "react/jsx-no-bind": "off", "react/jsx-filename-extension": ["error", { "extensions": [".js", ".jsx"] }], - "react/prefer-stateless-function": "off" + "react/prefer-stateless-function": "off", + "unused-imports/no-unused-imports": "error" }, "plugins": [ "@babel", "import", "promise", "compat", - "react" + "react", + "unused-imports" ], "settings": { "import/resolver": { diff --git a/app/components/Help.js b/app/components/Help.js index 34784a67..3ab55a7e 100644 --- a/app/components/Help.js +++ b/app/components/Help.js @@ -94,6 +94,8 @@ class Help extends PureComponent { } const button = ( + <> + {/* TODO: fix help - + */} ) return ( diff --git a/config/webpack.config.base.js b/config/webpack.config.base.js index f5876a74..5f88dd47 100644 --- a/config/webpack.config.base.js +++ b/config/webpack.config.base.js @@ -2,7 +2,7 @@ import path from 'path'; import webpack from 'webpack'; import { dependencies as externals } from '../app/package.json'; -const target = process.env.TARGET === 'browser' ? 'browser' : 'electron' +const target = process.env.TARGET === 'browser' ? 'browser' : 'electron'; export default { externals: Object.keys(externals || {}), @@ -54,8 +54,8 @@ export default { VERSION: JSON.stringify(process.env.npm_package_version), }), - new webpack.NormalModuleReplacementPlugin(/.*\.platform$/, function(resource) { + new webpack.NormalModuleReplacementPlugin(/.*\.platform$/, ((resource) => { resource.request = resource.request.replace(/platform$/, target); - }), + })), ], }; diff --git a/config/webpack.config.main.dev.js b/config/webpack.config.main.dev.js index e19a496b..1514479b 100644 --- a/config/webpack.config.main.dev.js +++ b/config/webpack.config.main.dev.js @@ -1,10 +1,9 @@ -import fs from 'fs' -import path from 'path' -import merge from 'webpack-merge' -import webpack from 'webpack' -import baseConfig from './webpack.config.base' +import path from 'path'; +import merge from 'webpack-merge'; +import webpack from 'webpack'; +import baseConfig from './webpack.config.base'; -const dist = path.resolve(process.cwd(), 'app', 'dist') +const dist = path.resolve(process.cwd(), 'app', 'dist'); const config = merge(baseConfig, { devtool: 'cheap-module-eval-source-map', @@ -35,6 +34,6 @@ const config = merge(baseConfig, { VERSION: JSON.stringify(process.env.npm_package_version), }), ], -}) +}); -export default config +export default config; diff --git a/config/webpack.config.main.prod.js b/config/webpack.config.main.prod.js index 150e46dc..5e6ac8ce 100644 --- a/config/webpack.config.main.prod.js +++ b/config/webpack.config.main.prod.js @@ -1,10 +1,9 @@ -import fs from 'fs' -import path from 'path' -import merge from 'webpack-merge' -import webpack from 'webpack' -import baseConfig from './webpack.config.base' +import path from 'path'; +import merge from 'webpack-merge'; +import webpack from 'webpack'; +import baseConfig from './webpack.config.base'; -const dist = path.resolve(process.cwd(), 'app', 'dist') +const dist = path.resolve(process.cwd(), 'app', 'dist'); const config = merge(baseConfig, { // devtool: 'cheap-module-eval-source-map', @@ -36,6 +35,6 @@ const config = merge(baseConfig, { VERSION: JSON.stringify(process.env.npm_package_version), }), ], -}) +}); -export default config +export default config; diff --git a/config/webpack.config.renderer.dev.js b/config/webpack.config.renderer.dev.js index 18963dc2..8592d3a2 100644 --- a/config/webpack.config.renderer.dev.js +++ b/config/webpack.config.renderer.dev.js @@ -2,12 +2,12 @@ import path from 'path'; import fs from 'fs'; import webpack from 'webpack'; import merge from 'webpack-merge'; -import { spawn, execSync } from 'child_process'; +import { execSync } from 'child_process'; -import HtmlWebpackPlugin from 'html-webpack-plugin' +import HtmlWebpackPlugin from 'html-webpack-plugin'; -import baseConfig from './webpack.config.base'; import MiniCssExtractPlugin from 'mini-css-extract-plugin'; +import baseConfig from './webpack.config.base'; const port = process.env.PORT || 1212; const publicPath = `http://localhost:${port}`; @@ -16,7 +16,7 @@ const dist = path.resolve(process.cwd(), 'app', 'dist'); const dll = path.resolve(dist, 'dll'); const manifest = path.resolve(dll, 'renderer.json'); -const target = process.env.TARGET == 'browser' ? 'web' : 'electron-renderer' +const target = process.env.TARGET == 'browser' ? 'web' : 'electron-renderer'; if (!(fs.existsSync(dll) && fs.existsSync(manifest))) { execSync('yarn run build-dll'); diff --git a/config/webpack.config.renderer.prod.js b/config/webpack.config.renderer.prod.js index a36103ab..7b0d83e1 100644 --- a/config/webpack.config.renderer.prod.js +++ b/config/webpack.config.renderer.prod.js @@ -2,8 +2,8 @@ import path from 'path'; import webpack from 'webpack'; import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; -import HtmlWebpackPlugin from 'html-webpack-plugin' -import MiniCssExtractPlugin from 'mini-css-extract-plugin' +import HtmlWebpackPlugin from 'html-webpack-plugin'; +import MiniCssExtractPlugin from 'mini-css-extract-plugin'; import merge from 'webpack-merge'; import baseConfig from './webpack.config.base'; @@ -13,7 +13,7 @@ const dist = path.resolve(process.cwd(), 'app', 'dist'); // const SpeedMeasurePlugin = require("speed-measure-webpack-plugin"); // const smp = new SpeedMeasurePlugin(); -const target = process.env.TARGET == 'browser' ? 'web' : 'electron-renderer' +const target = process.env.TARGET == 'browser' ? 'web' : 'electron-renderer'; const config = merge(baseConfig, { target, diff --git a/package.json b/package.json index 06979ede..5883af67 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,8 @@ "eslint-plugin-import": "^2.8.0", "eslint-plugin-jsx-a11y": "6.4.1", "eslint-plugin-promise": "^4.0.1", - "eslint-plugin-react": "^7.6.1", + "eslint-plugin-react": "^7.24.0", + "eslint-plugin-unused-imports": "^1.1.2", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^1.4.0", diff --git a/yarn.lock b/yarn.lock index d511ef5e..0b850c18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4102,6 +4102,28 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.0" +es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + es-module-lexer@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" @@ -4280,10 +4302,10 @@ eslint-plugin-react-hooks@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== -eslint-plugin-react@^7.6.1: - version "7.23.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494" - integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== +eslint-plugin-react@^7.24.0: + version "7.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4" + integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== dependencies: array-includes "^3.1.3" array.prototype.flatmap "^1.2.4" @@ -4291,12 +4313,19 @@ eslint-plugin-react@^7.6.1: has "^1.0.3" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.0.4" - object.entries "^1.1.3" + object.entries "^1.1.4" object.fromentries "^2.0.4" - object.values "^1.1.3" + object.values "^1.1.4" prop-types "^15.7.2" resolve "^2.0.0-next.3" - string.prototype.matchall "^4.0.4" + string.prototype.matchall "^4.0.5" + +eslint-plugin-unused-imports@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-1.1.2.tgz#de94bbf744183c0deb4a20aa5a358cd85ce28832" + integrity sha512-dfiCZiv/lSkOp6/JIjP+ASIs1vxLgiN1NISM+oxcO799+FEZQXy0Se1CaAHQt4BCInBOJ9LK0ILCe1lMMI+YGA== + dependencies: + eslint-rule-composer "^0.3.0" eslint-rule-composer@^0.3.0: version "0.3.0" @@ -5952,7 +5981,7 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.2: +is-regex@^1.0.4, is-regex@^1.1.2, is-regex@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== @@ -5975,7 +6004,7 @@ is-stream@^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: +is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== @@ -7186,7 +7215,7 @@ object-hash@^2.0.3: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09" integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== -object-inspect@^1.9.0: +object-inspect@^1.10.3, object-inspect@^1.9.0: version "1.10.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== @@ -7221,7 +7250,7 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.2, object.entries@^1.1.3: +object.entries@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== @@ -7231,6 +7260,15 @@ object.entries@^1.1.2, object.entries@^1.1.3: es-abstract "^1.18.0-next.1" has "^1.0.3" +object.entries@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + object.fromentries@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" @@ -7258,6 +7296,15 @@ object.values@^1.1.3: es-abstract "^1.18.0-next.2" has "^1.0.3" +object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -9317,15 +9364,16 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.matchall@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" - integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== +string.prototype.matchall@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has-symbols "^1.0.1" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" internal-slot "^1.0.3" regexp.prototype.flags "^1.3.1" side-channel "^1.0.4" @@ -9910,7 +9958,7 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -unbox-primitive@^1.0.0: +unbox-primitive@^1.0.0, unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== From 615682ea6323c816791a22992a052b3c7f519cf9 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 9 Jul 2021 18:41:31 -0400 Subject: [PATCH 51/66] =?UTF-8?q?:construction:=20WIP:=20handleNew,=20hand?= =?UTF-8?q?leDelete=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/components/Help.js | 3 +- app/components/TextField.jsx | 2 +- app/containers/PipelinePage.js | 2 +- .../pipeline/parts/PipelinePart.jsx | 55 +++++++++++++++---- 4 files changed, 49 insertions(+), 13 deletions(-) diff --git a/app/components/Help.js b/app/components/Help.js index 3ab55a7e..12cb5b8c 100644 --- a/app/components/Help.js +++ b/app/components/Help.js @@ -94,7 +94,7 @@ class Help extends PureComponent { } const button = ( - <> + <> {/* TODO: fix help */} + ) return ( diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index e31b5c91..0c68a07e 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -44,7 +44,7 @@ class ROITextField extends CustomTextField { state = { path: this.props.entry[0] }; render() { - const { config, entry, fullKey, handleChange } = this.props; + const { config, entry, fullKey, handleChange, helperText } = this.props; return ( { if (typeof key == "string") { key = key.split('.') - } + } let configuration = this.state.configuration; configuration = configuration.setIn(key, isImmutable(value) ? value : fromJS(value)); diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index d39d2f43..7ebeb918 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -34,12 +34,11 @@ import TableFooter from '@material-ui/core/TableFooter'; import FormControlLabelled from 'components/FormControlLabelled'; import Help from 'components/Help'; -import Immutable from 'immutable'; +import Immutable, { fromJS } from 'immutable'; import OnOffSwitch from 'components/OnOffSwitch'; import { AddIcon, - EditIcon, DeleteIcon, DuplicateIcon } from 'components/icons'; @@ -87,6 +86,34 @@ class PipelinePart extends PureComponent { }, }); + handleDelete = (chain, name, i, onChange) => { + let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS() + newList.splice(i, 1); + onChange({target: { + name, + value: fromJS(newList) + }}); + } + + handleNew = (chain, name, onChange) => { + let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); + switch (typeof(newList[0])) { + case 'string': + newList.push(''); + break; + case 'boolean': + newList.push(false); + break; + case 'number': + newlist.push(0); + break; + } + onChange({target:{ + name, + value: fromJS(newList) + }}); + } + render() { const { classes, configuration, onChange, parents, level } = this.props; @@ -108,7 +135,8 @@ class PipelinePart extends PureComponent { if (Immutable.List.isList(entry[1])) { const regex = new RegExp(`^\s*{entry[0]}`); const label = formatLabel(entry[0]); - const name = [...parents, entry[0]].join('.'); + const chain = [...parents, entry[0]]; + const name = chain.join('.'); return ( @@ -137,16 +165,21 @@ class PipelinePart extends PureComponent { case "number": // handled same as string case "string": return ( - - {/* */} + - () => this.handleEdit(regi))(i)}> - - () => this.handleDuplicate(regi))(i)}> - () => this.handleDelete(regi))(i)}> + { + this.handleDelete( + chain, name, i, onChange + ); + }}> @@ -164,7 +197,9 @@ class PipelinePart extends PureComponent { - this.handleNew()}> + this.handleNew( + chain, name, onChange + )}> From 8a294efd261a3c1460c75e41155c0c7a026aca0c Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 14 Jul 2021 11:17:42 -0400 Subject: [PATCH 52/66] :recycle: CRUD for lists of text fields --- app/components/TextField.jsx | 34 +-- app/containers/pipeline/parts/List.jsx | 219 ++++++++++++++++++ .../pipeline/parts/PipelinePart.jsx | 143 +----------- 3 files changed, 247 insertions(+), 149 deletions(-) create mode 100644 app/containers/pipeline/parts/List.jsx diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index 0c68a07e..8935e25b 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -44,17 +44,16 @@ class ROITextField extends CustomTextField { state = { path: this.props.entry[0] }; render() { - const { config, entry, fullKey, handleChange, helperText } = this.props; - + const { config, entry, fullKey, handleChange, helperText, value } = this.props; return ( this.changePath(e)} - onKeyDown={(e) => this.handleKeyDown(e, entry, handleChange, config)} - onBlur={(e) => this.handleChangedPath(e, entry, handleChange, config)} - value={this.state.path} - helperText={helperText} + fullWidth={ true } + name={ `${fullKey}` } + onChange={ (e) => this.changePath(e) } + onKeyDown={ (e) => this.handleKeyDown(e, entry, handleChange, config) } + onBlur={ (e) => this.handleChangedPath(e, entry, handleChange, config) } + value={ this.state.path } + helperText={ helperText } /> ) } @@ -64,16 +63,23 @@ class PipelineTextField extends CustomTextField { state = { path: this.props.value }; + componentDidUpdate(prevProps) { + if (prevProps.value !== this.props.value) { + this.setState({ path: this.props.value }); + } + } + render() { const { config, onChange } = this.props; return ( this.changePath(e)} - onKeyDown={(e) => this.handleKeyDown(e, this.state.path, onChange)} - onBlur={(e) => this.handleChangedPath(e, this.state.path, onChange)} + { ...this.props } + key={ this.props.value } + value={ this.state.path } + onChange={ (e) => this.changePath(e) } + onKeyDown={ (e) => this.handleKeyDown(e, this.state.path, onChange) } + onBlur={ (e) => this.handleChangedPath(e, this.state.path, onChange) } /> ) } diff --git a/app/containers/pipeline/parts/List.jsx b/app/containers/pipeline/parts/List.jsx new file mode 100644 index 00000000..3d817d34 --- /dev/null +++ b/app/containers/pipeline/parts/List.jsx @@ -0,0 +1,219 @@ +import React, { PureComponent } from 'react'; +import Grid from '@material-ui/core/Grid'; +import Immutable, { fromJS } from 'immutable'; + +import Divider from '@material-ui/core/Divider'; +import FormGroup from '@material-ui/core/FormGroup'; +import FormLabel from '@material-ui/core/FormLabel'; +import IconButton from '@material-ui/core/IconButton'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; + +import Help from 'components/Help'; +import { + AddIcon, + DeleteIcon, + DuplicateIcon +} from 'components/icons'; +import OnOffSwitch from 'components/OnOffSwitch'; +import PipelinePart, { formatLabel } from './PipelinePart'; +import { PipelineTextField } from 'components/TextField'; + + +class CpacTextListItem extends PureComponent { + + state = { item: this.props.item }; + + render() { + + const { + chain, handlers, i, inputType, item, label, name, onChange + } = this.props; + + return ( + + + + { item == '' ? null : ( + { + handlers.handleDuplicate( + chain, name, i, onChange + ); + }}> + + + ) } + { + handlers.handleDelete( + chain, name, i, onChange + ); + }}> + + + + + ); + } + +} + +class CpacListItem extends PureComponent { + + render() { + + const { + chain, entry, handleDelete, handleDuplicate, i, item, label, name, + onChange, parents + } = this.props; + const handlers = { + handleDelete: handleDelete, + handleDuplicate: handleDuplicate + } + + if (!Immutable.Map.isMap(item)){ + switch (typeof(item)){ + case "boolean": // list of On/Off switches + return ( + + + + ) + case "number": + return ( + + ) + case "string": + return ( + + ) + default: + console.warn(`UNHANDLED TYPE: ${typeof(item)}: ${parents}: ${$entry[0]}: ${item}`) + return ('!!!UNHANDLED TYPE!!!') + } + } else { + + + + } + } +} + +class CpacList extends PureComponent { + + state = { fullList: this.props.entry[1] }; + + updateList = (name, value, onChange) => { + const immutableValue = fromJS(value); + onChange({ + target: { + name, + value: immutableValue + } + }); + this.setState({ fullList: immutableValue }, () => { + this.forceUpdate(); + }); + } + + handleDelete = (chain, name, i, onChange) => { + let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); + newList.splice(i, 1); + this.updateList(name, newList, onChange); + } + + handleDuplicate = (chain, name, i, onChange) => { + let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); + newList.push(newList[i]); + this.updateList(name, newList, onChange); + } + + handleNew = (chain, name, onChange) => { + let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); + switch (typeof(newList[0])) { + case 'string': + newList.push(''); + break; + case 'boolean': + newList.push(false); + break; + case 'number': + newList.push(0); + break; + } + this.updateList(name, newList, onChange); + } + + render() { + const {entry, classes, level, parents, onChange} = this.props; + + const regex = new RegExp(`^\s*{entry[0]}`); + const label = formatLabel(entry[0]); + const chain = [...parents, entry[0]]; + const name = chain.join('.'); + + return ( + + + + { label } + + + { entry[1].map((item, i) => { + return ( + + ) + }) } + { entry[1].includes('') ? null : (<> + + + + this.handleNew( + chain, name, onChange + ) }> + + + + + ) } + + + + ) + } +} + +export default CpacList; diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 7ebeb918..a9739d11 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -1,48 +1,18 @@ import React, { PureComponent } from 'react'; +import Immutable from 'immutable'; import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid'; -import Paper from '@material-ui/core/Paper'; import Accordion from '@material-ui/core/Accordion'; import AccordionDetails from '@material-ui/core/AccordionDetails'; import AccordionSummary from '@material-ui/core/AccordionSummary'; +import FormGroup from '@material-ui/core/FormGroup'; import MenuItem from '@material-ui/core/MenuItem'; import { PipelineTextField } from 'components/TextField'; -import Switch from '@material-ui/core/Switch'; -import InputAdornment from '@material-ui/core/InputAdornment'; - -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ListItemText from '@material-ui/core/ListItemText'; -import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; -import Divider from '@material-ui/core/Divider'; -import IconButton from '@material-ui/core/IconButton'; - -import FormGroup from '@material-ui/core/FormGroup'; -import FormLabel from '@material-ui/core/FormLabel'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; -import FormControlLabel from '@material-ui/core/FormControlLabel'; -import InputLabel from '@material-ui/core/InputLabel'; -import Table from '@material-ui/core/Table'; -import TableBody from '@material-ui/core/TableBody'; -import TableCell from '@material-ui/core/TableCell'; -import TableHead from '@material-ui/core/TableHead'; -import TableRow from '@material-ui/core/TableRow'; -import TableFooter from '@material-ui/core/TableFooter'; - -import FormControlLabelled from 'components/FormControlLabelled'; +import CpacList from './List'; import Help from 'components/Help'; -import Immutable, { fromJS } from 'immutable'; import OnOffSwitch from 'components/OnOffSwitch'; - -import { - AddIcon, - DeleteIcon, - DuplicateIcon -} from 'components/icons'; - import RoiPaths from './RoiPaths'; export const formatLabel = (label) => { @@ -73,7 +43,6 @@ export const formatLabel = (label) => { }).join(" "); } - class PipelinePart extends PureComponent { static styles = theme => ({ @@ -86,34 +55,6 @@ class PipelinePart extends PureComponent { }, }); - handleDelete = (chain, name, i, onChange) => { - let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS() - newList.splice(i, 1); - onChange({target: { - name, - value: fromJS(newList) - }}); - } - - handleNew = (chain, name, onChange) => { - let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); - switch (typeof(newList[0])) { - case 'string': - newList.push(''); - break; - case 'boolean': - newList.push(false); - break; - case 'number': - newlist.push(0); - break; - } - onChange({target:{ - name, - value: fromJS(newList) - }}); - } - render() { const { classes, configuration, onChange, parents, level } = this.props; @@ -133,80 +74,12 @@ class PipelinePart extends PureComponent { ) default: // all others if (Immutable.List.isList(entry[1])) { - const regex = new RegExp(`^\s*{entry[0]}`); - const label = formatLabel(entry[0]); - const chain = [...parents, entry[0]]; - const name = chain.join('.'); return ( - - - - {label} - - - {entry[1].map((item, i) => { - if (!Immutable.Map.isMap(item)){ - switch (typeof(item)){ - case "boolean": // list of On/Off switches - return ( - - - - ) - case "number": // handled same as string - case "string": - return ( - - - () => this.handleDuplicate(regi))(i)}> - - - { - this.handleDelete( - chain, name, i, onChange - ); - }}> - - - - ) - default: - console.warn(`UNHANDLED TYPE: ${typeof(item)}: ${parents}: ${$entry[0]}: ${item}`) - return('!!!UNHANDLED TYPE!!!') - } - } else { - - - - } - })} - - - - this.handleNew( - chain, name, onChange - )}> - - - - - - - + ) } else { switch (Immutable.Map.isMap(entry[1])) { From 9d7c9227be38fad3d0726d3c86e5d491f6adfa9e Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 14 Jul 2021 16:12:31 -0400 Subject: [PATCH 53/66] :recycle: Handle Boolean lists --- .../pipeline/parts => components}/List.jsx | 77 +++++++++++++------ app/components/OnOffSwitch.jsx | 3 +- app/components/PipelineCard.js | 29 ++++--- .../parts => components}/RoiPaths.jsx | 0 app/containers/PipelinePage.js | 18 +++++ .../pipeline/parts/PipelinePart.jsx | 4 +- app/containers/pipeline/parts/index.js | 1 - 7 files changed, 95 insertions(+), 37 deletions(-) rename app/{containers/pipeline/parts => components}/List.jsx (75%) rename app/{containers/pipeline/parts => components}/RoiPaths.jsx (100%) diff --git a/app/containers/pipeline/parts/List.jsx b/app/components/List.jsx similarity index 75% rename from app/containers/pipeline/parts/List.jsx rename to app/components/List.jsx index 3d817d34..a40fc28a 100644 --- a/app/containers/pipeline/parts/List.jsx +++ b/app/components/List.jsx @@ -17,9 +17,38 @@ import { DuplicateIcon } from 'components/icons'; import OnOffSwitch from 'components/OnOffSwitch'; -import PipelinePart, { formatLabel } from './PipelinePart'; +import PipelinePart, { formatLabel } from 'containers/pipeline/parts/PipelinePart'; import { PipelineTextField } from 'components/TextField'; +class OnOffSwitchListItem extends PureComponent { + + render() { + const { + chain, entry, handleDelete, i, item, label, name, onChange, regex + } = this.props; + return ( + + this.togglePair(e, onChange)} + regex={ regex } + checked={ item } + /> + + { + handleDelete( + chain, name, i, onChange + ); + }}> + + + + + ) + } +} class CpacTextListItem extends PureComponent { @@ -69,8 +98,8 @@ class CpacListItem extends PureComponent { render() { const { - chain, entry, handleDelete, handleDuplicate, i, item, label, name, - onChange, parents + chain, classes, entry, handleDelete, handleDuplicate, i, item, label, + level, name, onChange, parents } = this.props; const handlers = { handleDelete: handleDelete, @@ -81,14 +110,12 @@ class CpacListItem extends PureComponent { switch (typeof(item)){ case "boolean": // list of On/Off switches return ( - - - + ) case "number": return ( @@ -109,14 +136,16 @@ class CpacListItem extends PureComponent { return ('!!!UNHANDLED TYPE!!!') } } else { - - - + return ( + + + + ) } } } @@ -157,7 +186,7 @@ class CpacList extends PureComponent { newList.push(''); break; case 'boolean': - newList.push(false); + newList.push(!newList[0]); break; case 'number': newList.push(0); @@ -189,7 +218,8 @@ class CpacList extends PureComponent { return ( ) }) } - { entry[1].includes('') ? null : (<> + { ( + entry[1].includes('') || + (typeof(entry[1].get(0)) == 'boolean' && entry[1].size >= 2) + ) ? null : (<> diff --git a/app/components/OnOffSwitch.jsx b/app/components/OnOffSwitch.jsx index 5974d1fa..62d0a96c 100644 --- a/app/components/OnOffSwitch.jsx +++ b/app/components/OnOffSwitch.jsx @@ -10,6 +10,7 @@ import { withRouter } from 'react-router-dom'; class OnOffSwitch extends PureComponent { render() { const { checked, key, label, name, onChange, regex } = this.props; + switch (regex) { case null: return ( @@ -17,7 +18,7 @@ class OnOffSwitch extends PureComponent { !item); + } + } + } + configuration = configuration.setIn(key, isImmutable(value) ? value : fromJS(value)); this.props.pipelineVersionDirtyUpdate( diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index a9739d11..d030e291 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -10,10 +10,10 @@ import FormGroup from '@material-ui/core/FormGroup'; import MenuItem from '@material-ui/core/MenuItem'; import { PipelineTextField } from 'components/TextField'; -import CpacList from './List'; +import CpacList from 'components/List'; import Help from 'components/Help'; import OnOffSwitch from 'components/OnOffSwitch'; -import RoiPaths from './RoiPaths'; +import RoiPaths from 'components/RoiPaths'; export const formatLabel = (label) => { const specialCasings = { diff --git a/app/containers/pipeline/parts/index.js b/app/containers/pipeline/parts/index.js index a306e36f..da3fec99 100644 --- a/app/containers/pipeline/parts/index.js +++ b/app/containers/pipeline/parts/index.js @@ -1,2 +1 @@ export PipelinePart, { formatLabel } from './PipelinePart' -export RoiPaths from './RoiPaths' \ No newline at end of file From f5c64d61d50ff9111c300c47413b3aae1f034f37 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 15 Jul 2021 11:01:14 -0400 Subject: [PATCH 54/66] :coffin: Remove deprecated code --- app/components/Help.js | 4 +- app/containers/PipelinePage.js | 7 +- app/reducers/main.js | 2 +- app/sagas/config.js | 5 +- c-pac/pipeline.js | 28 +- c-pac/resources/pipeline/default_pipeline.yml | 1451 ----------------- 6 files changed, 28 insertions(+), 1469 deletions(-) delete mode 100644 c-pac/resources/pipeline/default_pipeline.yml diff --git a/app/components/Help.js b/app/components/Help.js index 12cb5b8c..f8784a62 100644 --- a/app/components/Help.js +++ b/app/components/Help.js @@ -58,8 +58,8 @@ class Help extends PureComponent { let code = "" if (type && regex){ - // @TODO include other templates - const t = type == "pipeline" ? cpac.pipeline.rawTemplate : "" + // @TODO replace this functionality + const t = '' // type == "pipeline" ? cpac.pipeline.rawTemplate : "" const lines = t.split('\n') for (matchedLine in lines) { diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index 5b8e11db..3a228142 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -172,16 +172,19 @@ class PipelinePage extends Component { const pipeline = this.props.pipeline; const configuration = this.state.configuration; const pipelineName = pipeline.get('name'); - const versions = pipeline.get('versions') + const versions = pipeline.get('versions'); let version = null if (versions.has("0")) { version = "0" } else { version = versions.keySeq().max() } + const cpacVersion = pipeline.getIn(['versions', version, 'version']); var blob = new Blob( - [cpac.pipeline.dump(configuration.toJS(), pipelineName, version)], + [cpac.pipeline.dump( + configuration.toJS(), pipelineName, version, cpacVersion + )], { type: "text/yaml;charset=utf-8" } ); diff --git a/app/reducers/main.js b/app/reducers/main.js index 5b9ec6aa..98b3e6c1 100644 --- a/app/reducers/main.js +++ b/app/reducers/main.js @@ -37,7 +37,7 @@ const persistVersion = (i, state) => state.getIn([ 'config', 'pipelines', i, 'versions' ]).keySeq()).map(k => parseInt(k)) ).toString(), 'version' -]) || state.getIn(['config', 'defaultVersion']); +]); export default function main(state, action) { if (!state) { diff --git a/app/sagas/config.js b/app/sagas/config.js index bb360555..a8b26a52 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -201,9 +201,10 @@ function* loadConfig (action) { // Update default if necessary if(!fromJS(template).equals(fromJS(initialState.pipelines[0]))) { const pipelineIds = initialState.pipelines.map((p)=>p.id); + console.log(pipelineIds); let oldDefault = initialState.pipelines[0]; oldDefault.id = `default-${oldDefault.versions[0].version}`; - if (!pipelineIds.includes(oldDefault.id)) { + if (!pipelineIds.includes(template.id)) { initialState.pipelines.push(oldDefault); initialState.pipelines[0] = template; }; @@ -211,8 +212,6 @@ function* loadConfig (action) { console.log("Using local state"); } - initialState.defaultVersion = template.versions[0].version; - if (!initialState.executions) { initialState.executions = [] localStorage.setItem('state', JSON.stringify(initialState)) diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index 2d843362..48722bb5 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -1,18 +1,19 @@ import yaml from 'js-yaml'; import yamlTemplate, { raw, loadYaml } from './resources/pipeline/yaml'; -import { default as rawTemplate } from './resources/pipeline/default_pipeline.yml'; -const defaultPipelineUrl = 'https://raw.githubusercontent.com/FCP-INDI/C-PAC/master/dev/docker_data/default_pipeline.yml' +const defaultPipelineUrl = 'https://raw.githubusercontent.com/FCP-INDI/C-PAC/master/dev/docker_data/default_pipeline.yml'; const versionRe = new RegExp('(?<=\# Version:? \s*).*'); function setVersion(rawTemplate) { - const version = versionRe.exec(rawTemplate); + let version = versionRe.exec(rawTemplate); + version = (version && version.length) ? version[0] : 'unspecified'; + console.log(version); return ({ - "id": "default", + "id": `default-${version}`, "name": "Default", "versions": { 0: { - "version": (version && version.length) ? version[0] : 'unspecified', + "version": version, "configuration": loadYaml(rawTemplate) } } @@ -25,8 +26,7 @@ async function getDefaultPipeline(url) { return response.text().then(defaultRaw => setVersion(defaultRaw)) }, function(e) { console.error("Default pipeline failed to load! Falling back to local copy (may be out of date)"); - return setVersion(rawTemplate); - }) + }); return defaultPipeline; } @@ -37,14 +37,22 @@ async function getDefaultPipeline(url) { * @param {string} version * @returns {string} YAML representation of configObj */ -const dump = (configObj, pipelineName, version) => ( - `${rawTemplate.split('\n').slice(0, 7).join('\n')} +const dump = (configObj, pipelineName, version, cpacVersion) => ( + `%YAML 1.1 +--- +# CPAC Pipeline Configuration YAML file +# Version ${cpacVersion} +# +# http://fcp-indi.github.io for more info. +# # Pipeline config "${pipelineName}", version GUI-${version} # ${Date(Date.now())} +# +# Tip: This file can be edited manually with a text editor for quick modifications. ${yaml.dump(configObj)}`.replace(/\s*'':.*/gi, '')) -export { defaultPipelineUrl, dump, getDefaultPipeline, rawTemplate, versionRe } +export { defaultPipelineUrl, dump, getDefaultPipeline, versionRe } function slugify(text) { return text.toString().toLowerCase() diff --git a/c-pac/resources/pipeline/default_pipeline.yml b/c-pac/resources/pipeline/default_pipeline.yml deleted file mode 100644 index b451ef27..00000000 --- a/c-pac/resources/pipeline/default_pipeline.yml +++ /dev/null @@ -1,1451 +0,0 @@ -%YAML 1.1 ---- -# CPAC Pipeline Configuration YAML file -# Version 1.8.0 -# -# http://fcp-indi.github.io for more info. -# -# Tip: This file can be edited manually with a text editor for quick modifications. - -pipeline_setup: - - # Name for this pipeline configuration - useful for identification. - pipeline_name: cpac-default-pipeline - - output_directory: - - # Directory where C-PAC should write out processed data, logs, and crash reports. - # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary - # name like '/output', and then map (-B/-v) your desired output directory to that label. - # - If running outside a container, this should be a full path to a directory. - path: /output - - # (Optional) Path to a BIDS-Derivatives directory that already has outputs. - # - This option is intended to ingress already-existing resources from an output - # directory without writing new outputs back into the same directory. - # - If provided, C-PAC will ingress the already-computed outputs from this directory and - # continue the pipeline from where they leave off. - # - If left as 'None', C-PAC will ingress any already-computed outputs from the - # output directory you provide above in 'path' instead, the default behavior. - source_outputs_dir: None - - # Set to True to make C-PAC ingress the outputs from the primary output directory if they - # exist, even if a source_outputs_dir is provided - # - Setting to False will pull from source_outputs_dir every time, over-writing any - # calculated outputs in the main output directory - # - C-PAC will still pull from source_outputs_dir if the main output directory is - # empty, however - pull_source_once: True - - # Include extra versions and intermediate steps of functional preprocessing in the output directory. - write_func_outputs: False - - # Include extra outputs in the output directory that may be of interest when more information is needed. - write_debugging_outputs: False - - # Output directory format and structure. - # Options: default, ndmg - output_tree: "default" - - # Generate quality control pages containing preprocessing and derivative outputs. - generate_quality_control_images: True - - working_directory: - - # Directory where C-PAC should store temporary and intermediate files. - # - This directory must be saved if you wish to re-run your pipeline from where you left off (if not completed). - # - NOTE: As it stores all intermediate files, this directory can grow to become very - # large, especially for data with a large amount of TRs. - # - If running in a container (Singularity/Docker), you can simply set this to an arbitrary - # name like '/work', and then map (-B/-v) your desired output directory to that label. - # - If running outside a container, this should be a full path to a directory. - # - This can be written to '/tmp' if you do not intend to save your working directory. - path: /tmp - - # Deletes the contents of the Working Directory after running. - # This saves disk space, but any additional preprocessing or analysis will have to be completely re-run. - remove_working_dir: True - - log_directory: - - # Whether to write log details of the pipeline run to the logging files. - run_logging: True - - path: /logs - - crash_log_directory: - - # Directory where CPAC should write crash logs. - path: /crash - - system_config: - - # Select Off if you intend to run CPAC on a single machine. - # If set to On, CPAC will attempt to submit jobs through the job scheduler / resource manager selected below. - on_grid: - - run: Off - - # Sun Grid Engine (SGE), Portable Batch System (PBS), or Simple Linux Utility for Resource Management (SLURM). - # Only applies if you are running on a grid or compute cluster. - resource_manager: SGE - - SGE: - # SGE Parallel Environment to use when running CPAC. - # Only applies when you are running on a grid or compute cluster using SGE. - parallel_environment: mpi_smp - - # SGE Queue to use when running CPAC. - # Only applies when you are running on a grid or compute cluster using SGE. - queue: all.q - - # The maximum amount of memory each participant's workflow can allocate. - # Use this to place an upper bound of memory usage. - # - Warning: 'Memory Per Participant' multiplied by 'Number of Participants to Run Simultaneously' - # must not be more than the total amount of RAM. - # - Conversely, using too little RAM can impede the speed of a pipeline run. - # - It is recommended that you set this to a value that when multiplied by - # 'Number of Participants to Run Simultaneously' is as much RAM you can safely allocate. - maximum_memory_per_participant: 1 - - # The maximum amount of cores (on a single machine) or slots on a node (on a cluster/grid) - # to allocate per participant. - # - Setting this above 1 will parallelize each participant's workflow where possible. - # If you wish to dedicate multiple cores to ANTS-based anatomical registration (below), - # this value must be equal or higher than the amount of cores provided to ANTS. - # - The maximum number of cores your run can possibly employ will be this setting multiplied - # by the number of participants set to run in parallel (the 'Number of Participants to Run - # Simultaneously' setting). - max_cores_per_participant: 1 - - # The number of cores to allocate to ANTS-based anatomical registration per participant. - # - Multiple cores can greatly speed up this preprocessing step. - # - This number cannot be greater than the number of cores per participant. - num_ants_threads: 1 - - # The number of cores to allocate to processes that use OpenMP. - num_OMP_threads: 1 - - # The number of participant workflows to run at the same time. - # - The maximum number of cores your run can possibly employ will be this setting - # multiplied by the number of cores dedicated to each participant (the 'Maximum Number of Cores Per Participant' setting). - num_participants_at_once: 1 - - # Full path to the FSL version to be used by CPAC. - # If you have specified an FSL path in your .bashrc file, this path will be set automatically. - FSLDIR: /usr/share/fsl/5.0 - - Amazon-AWS: - - # If setting the 'Output Directory' to an S3 bucket, insert the path to your AWS credentials file here. - aws_output_bucket_credentials: - - # Enable server-side 256-AES encryption on data to the S3 bucket - s3_encryption: False - - Debugging: - - # Verbose developer messages. - verbose: Off - - -# PREPROCESSING -# ------------- -surface_analysis: - - # Will run Freesurfer for surface-based analysis. Will output traditional Freesurfer derivatives. - # If you wish to employ Freesurfer outputs for brain masking or tissue segmentation in the voxel-based pipeline, - # select those 'Freesurfer-' labeled options further below in anatomical_preproc. - run_freesurfer: Off - - -longitudinal_template_generation: - - # If you have multiple T1w's, you can generate your own run-specific custom - # T1w template to serve as an intermediate to the standard template for - # anatomical registration. - - # This runs before the main pipeline as it requires multiple T1w sessions - # at once. - run: Off - - # Freesurfer longitudinal template algorithm using FSL FLIRT - # Method to average the dataset at each iteration of the template creation - # Options: median, mean or std - average_method: median - - # Degree of freedom for FLIRT in the template creation - # Options: 12 (affine), 9 (traditional), 7 (global rescale) or 6 (rigid body) - dof: 12 - - # Interpolation parameter for FLIRT in the template creation - # Options: trilinear, nearestneighbour, sinc or spline - interp: trilinear - - # Cost function for FLIRT in the template creation - # Options: corratio, mutualinfo, normmi, normcorr, leastsq, labeldiff or bbr - cost: corratio - - # Number of threads used for one run of the template generation algorithm - thread_pool: 2 - - # Threshold of transformation distance to consider that the loop converged - # (-1 means numpy.finfo(np.float64).eps and is the default) - convergence_threshold: -1 - - -anatomical_preproc: - - run: On - - # Non-local means filtering via ANTs DenoiseImage - non_local_means_filtering: False - - # N4 bias field correction via ANTs - n4_bias_field_correction: False - - acpc_alignment: - - run: Off - - # Run ACPC alignment before non-local means filtering or N4 bias - # correction - run_before_preproc: True - - # ACPC size of brain in z-dimension in mm. - # Default: 150mm for human data. - brain_size: 150 - - # ACPC Target - # options: 'brain' or 'whole-head' - # note: 'brain' requires T1w_brain_ACPC_template below to be populated - acpc_target: 'whole-head' - - # ACPC aligned template - T1w_ACPC_template: /usr/share/fsl/5.0/data/standard/MNI152_T1_1mm.nii.gz - T1w_brain_ACPC_template: None - - brain_extraction: - - # using: ['3dSkullStrip', 'BET', 'UNet', 'niworkflows-ants'] - # this is a fork option - using: ['3dSkullStrip'] - - # option parameters - AFNI-3dSkullStrip: - - # Output a mask volume instead of a skull-stripped volume. The mask volume containes 0 to 6, which represents voxel's postion. If set to True, C-PAC will use this output to generate anatomical brain mask for further analysis. - mask_vol: False - - # Set the threshold value controlling the brain vs non-brain voxels. Default is 0.6. - shrink_factor: 0.6 - - # Vary the shrink factor at every iteration of the algorithm. This prevents the likelihood of surface getting stuck in large pools of CSF before reaching the outer surface of the brain. Default is On. - var_shrink_fac: True - - # The shrink factor bottom limit sets the lower threshold when varying the shrink factor. Default is 0.4, for when edge detection is used (which is On by default), otherwise the default value is 0.65. - shrink_factor_bot_lim: 0.4 - - # Avoids ventricles while skullstripping. - avoid_vent: True - - # Set the number of iterations. Default is 250.The number of iterations should depend upon the density of your mesh. - n_iterations: 250 - - # While expanding, consider the voxels above and not only the voxels below - pushout: True - - # Perform touchup operations at the end to include areas not covered by surface expansion. - touchup: True - - # Give the maximum number of pixels on either side of the hole that can be filled. The default is 10 only if 'Touchup' is On - otherwise, the default is 0. - fill_hole: 10 - - # Perform nearest neighbor coordinate interpolation every few iterations. Default is 72. - NN_smooth: 72 - - # Perform final surface smoothing after all iterations. Default is 20. - smooth_final: 20 - - # Avoid eyes while skull stripping. Default is On. - avoid_eyes: True - - # Use edge detection to reduce leakage into meninges and eyes. Default is On. - use_edge: True - - # Speed of expansion. - exp_frac: 0.1 - - # Perform aggressive push to edge. This might cause leakage. Default is Off. - push_to_edge: False - - # Use outer skull to limit expansion of surface into the skull in case of very strong shading artifacts. Use this only if you have leakage into the skull. - use_skull: Off - - # Percentage of segments allowed to intersect surface. It is typically a number between 0 and 0.1, but can include negative values (which implies no testing for intersection). - perc_int: 0 - - # Number of iterations to remove intersection problems. With each iteration, the program automatically increases the amount of smoothing to get rid of intersections. Default is 4. - max_inter_iter: 4 - - # Multiply input dataset by FAC if range of values is too small. - fac: 1 - - # Blur dataset after spatial normalization. Recommended when you have lots of CSF in brain and when you have protruding gyri (finger like). If so, recommended value range is 2-4. Otherwise, leave at 0. - blur_fwhm: 0 - - # Set it as True if processing monkey data with AFNI - monkey: False - - FSL-BET: - - # Set the threshold value controling the brain vs non-brain voxels, default is 0.5 - frac: 0.5 - - # Mask created along with skull stripping. It should be `On`, if selected functionalMasking : ['Anatomical_Refined'] and `FSL` as skull-stripping method. - mask_boolean: On - - # Mesh created along with skull stripping - mesh_boolean: Off - - # Create a surface outline image - outline: Off - - # Add padding to the end of the image, improving BET.Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - padding: Off - - # Integer value of head radius - radius: 0 - - # Reduce bias and cleanup neck. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - reduce_bias: Off - - # Eyes and optic nerve cleanup. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - remove_eyes: Off - - # Robust brain center estimation. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - robust: Off - - # Create a skull image - skull: Off - - # Gets additional skull and scalp surfaces by running bet2 and betsurf. This is mutually exclusive with reduce_bias, robust, padding, remove_eyes - surfaces: Off - - # Apply thresholding to segmented brain image and mask - threshold: Off - - # Vertical gradient in fractional intensity threshold (-1,1) - vertical_gradient : 0.0 - - UNet: - - # UNet model - unet_model : s3://fcp-indi/resources/cpac/resources/Site-All-T-epoch_36.model - - niworkflows-ants: - - # Template to be used during niworkflows-ants. - # It is not necessary to change this path unless you intend to use a non-standard template. - - # niworkflows-ants Brain extraction template - template_path : /ants_template/oasis/T_template0.nii.gz - - # niworkflows-ants probability mask - mask_path : /ants_template/oasis/T_template0_BrainCerebellumProbabilityMask.nii.gz - - # niworkflows-ants registration mask (can be optional) - regmask_path : /ants_template/oasis/T_template0_BrainCerebellumRegistrationMask.nii.gz - - -segmentation: - - # Automatically segment anatomical images into white matter, gray matter, - # and CSF based on prior probability maps. - run: On - - tissue_segmentation: - - # using: ['FSL-FAST', 'Template_Based', 'FreeSurfer', 'ANTs_Prior_Based'] - # this is a fork point - using: ['FSL-FAST'] - - # option parameters - FSL-FAST: - - thresholding: - - # thresholding of the tissue segmentation probability maps - # options: 'Auto', 'Custom' - use: 'Auto' - - Custom: - # Set the threshold value for the segmentation probability masks (CSF, White Matter, and Gray Matter) - # The values remaining will become the binary tissue masks. - # A good starting point is 0.95. - - # CSF (cerebrospinal fluid) threshold. - CSF_threshold_value : 0.95 - - # White matter threshold. - WM_threshold_value : 0.95 - - # Gray matter threshold. - GM_threshold_value : 0.95 - - use_priors: - - # Use template-space tissue priors to refine the binary tissue masks generated by segmentation. - run: On - - # Full path to a directory containing binarized prior probability maps. - # These maps are included as part of the 'Image Resource Files' package available on the Install page of the User Guide. - # It is not necessary to change this path unless you intend to use non-standard priors. - priors_path: $FSLDIR/data/standard/tissuepriors/2mm - - # Full path to a binarized White Matter prior probability map. - # It is not necessary to change this path unless you intend to use non-standard priors. - WM_path: $priors_path/avg152T1_white_bin.nii.gz - - # Full path to a binarized Gray Matter prior probability map. - # It is not necessary to change this path unless you intend to use non-standard priors. - GM_path: $priors_path/avg152T1_gray_bin.nii.gz - - # Full path to a binarized CSF prior probability map. - # It is not necessary to change this path unless you intend to use non-standard priors. - CSF_path: $priors_path/avg152T1_csf_bin.nii.gz - - Template_Based: - - # These masks should be in the same space of your registration template, e.g. if - # you choose 'EPI Template' , below tissue masks should also be EPI template tissue masks. - # - # Options: ['T1_Template', 'EPI_Template'] - template_for_segmentation: ['T1_Template'] - - # These masks are included as part of the 'Image Resource Files' package available - # on the Install page of the User Guide. - - # Full path to a binarized White Matter mask. - WHITE: $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_white_bin.nii.gz - - # Full path to a binarized Gray Matter mask. - GRAY: $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_gray_bin.nii.gz - - # Full path to a binarized CSF mask. - CSF: $FSLDIR/data/standard/tissuepriors/2mm/avg152T1_csf_bin.nii.gz - - ANTs_Prior_Based: - - # Generate white matter, gray matter, CSF masks based on antsJointLabelFusion - # ANTs Prior-based Segmentation workflow that has shown optimal results for non-human primate data. - - # The atlas image assumed to be used in ANTs Prior-based Segmentation. - template_brain_list : - - /monkey_seg/templates/JointLabelCouncil/MacaqueYerkes19_T1w_0.5mm/T1w_brain.nii.gz - - /monkey_seg/templates/JointLabelCouncil/J_Macaque_11mo_atlas_nACQ_194x252x160space_0.5mm/T1w_brain.nii.gz - - # The atlas segmentation images. - # For performing ANTs Prior-based segmentation method - # the number of specified segmentations should be identical to the number of atlas brain image sets. - # eg. - # ANTs_prior_seg_template_brain_list : - # - atlas1.nii.gz - # - atlas2.nii.gz - # ANTs_prior_seg_template_segmentation_list: - # - segmentation1.nii.gz - # - segmentation1.nii.gz - template_segmentation_list: - - /monkey_seg/templates/JointLabelCouncil/MacaqueYerkes19_T1w_0.5mm/Segmentation.nii.gz - - /monkey_seg/templates/JointLabelCouncil/J_Macaque_11mo_atlas_nACQ_194x252x160space_0.5mm/Segmentation.nii.gz - - # Label values corresponding to CSF/GM/WM in atlas file - # It is not necessary to change this values unless your CSF/GM/WM label values are different from Freesurfer Color Lookup Table. - # https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/AnatomicalROI/FreeSurferColorLUT - - # Label value corresponding to CSF in multiatlas file - CSF_label : 24 - - # Label value corresponding to Left Gray Matter in multiatlas file - left_GM_label : 3 - - # Label value corresponding to Right Gray Matter in multiatlas file - right_GM_label : 42 - - # Label value corresponding to Left White Matter in multiatlas file - left_WM_label : 2 - - # Label value corresponding to Right White Matter in multiatlas file - right_WM_label : 41 - - -registration_workflows: - - anatomical_registration: - - run: On - - # The resolution to which anatomical images should be transformed during registration. - # This is the resolution at which processed anatomical files will be output. - resolution_for_anat: 2mm - - # Template to be used during registration. - # It is not necessary to change this path unless you intend to use a non-standard template. - T1w_brain_template: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}_brain.nii.gz - - # Template to be used during registration. - # It is not necessary to change this path unless you intend to use a non-standard template. - T1w_template: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}.nii.gz - - # Template to be used during registration. - # It is not necessary to change this path unless you intend to use a non-standard template. - T1w_brain_template_mask: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask.nii.gz - - # Register skull-on anatomical image to a template. - reg_with_skull: True - - registration: - - # using: ['ANTS', 'FSL', 'FSL-linear'] - # this is a fork point - # selecting both ['ANTS', 'FSL'] will run both and fork the pipeline - using: ['ANTS'] - - # option parameters - ANTs: - - # If a lesion mask is available for a T1w image, use it to improve the ANTs' registration - # ANTS registration only. - use_lesion_mask: False - - # ANTs parameters for T1-template-based registration - T1_registration: - - - collapse-output-transforms: 0 - - dimensionality: 3 - - initial-moving-transform : - initializationFeature: 0 - - - transforms: - - Rigid: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - Affine: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - SyN: - gradientStep : 0.1 - updateFieldVarianceInVoxelSpace : 3.0 - totalFieldVarianceInVoxelSpace : 0.0 - metric: - type : CC - metricWeight: 1 - radius : 4 - convergence: - iteration : 100x100x70x20 - convergenceThreshold : 1e-09 - convergenceWindowSize : 15 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 6x4x2x1 - use-histogram-matching : True - winsorize-image-intensities : - lowerQuantile : 0.01 - upperQuantile : 0.99 - - # Interpolation method for writing out transformed anatomical images. - # Possible values: Linear, BSpline, LanczosWindowedSinc - interpolation: LanczosWindowedSinc - - FSL-FNIRT: - - # Configuration file to be used by FSL to set FNIRT parameters. - # It is not necessary to change this path unless you intend to use custom FNIRT parameters or a non-standard template. - fnirt_config: T1_2_MNI152_2mm - - # Reference mask for FSL registration. - ref_mask: /usr/share/fsl/5.0/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask_dil.nii.gz - - # Interpolation method for writing out transformed anatomical images. - # Possible values: trilinear, sinc, spline - interpolation: sinc - - # Identity matrix used during FSL-based resampling of anatomical-space data throughout the pipeline. - # It is not necessary to change this path unless you intend to use a different template. - identity_matrix: /usr/share/fsl/5.0/etc/flirtsch/ident.mat - - functional_registration: - - coregistration: - # functional (BOLD/EPI) registration to anatomical (structural/T1) - - run: On - - func_input_prep: - - # Choose whether to use the mean of the functional/EPI as the input to functional-to-anatomical registration or one of the volumes from the functional 4D timeseries that you choose. - # input: ['Mean Functional', 'Selected_Functional_Volume'] - input: ['Mean_Functional'] - - Mean Functional: - - # Run ANTs’ N4 Bias Field Correction on the input BOLD (EPI) - # this can increase tissue contrast which may improve registration quality in some data - n4_correct_func: False - - Selected Functional Volume: - - # Only for when 'Use as Functional-to-Anatomical Registration Input' is set to 'Selected Functional Volume'. - #Input the index of which volume from the functional 4D timeseries input file you wish to use as the input for functional-to-anatomical registration. - func_reg_input_volume: 0 - - boundary_based_registration: - # this is a fork point - # run: [On, Off] - this will run both and fork the pipeline - run: [On] - - # Standard FSL 5.0 Scheduler used for Boundary Based Registration. - # It is not necessary to change this path unless you intend to use non-standard MNI registration. - bbr_schedule: /usr/share/fsl/5.0/etc/flirtsch/bbr.sch - - EPI_registration: - - # directly register the mean functional to an EPI template - # instead of applying the anatomical T1-to-template transform to the functional data that has been - # coregistered to anatomical/T1 space - run: Off - - # using: ['ANTS', 'FSL', 'FSL-linear'] - # this is a fork point - # ex. selecting both ['ANTS', 'FSL'] will run both and fork the pipeline - using: ['ANTS'] - - # EPI template for direct functional-to-template registration - # (bypassing coregistration and the anatomical-to-template transforms) - EPI_template: s3://fcp-indi/resources/cpac/resources/epi_hbn.nii.gz - - # EPI template mask. - EPI_template_mask: None - - ANTs: - - # EPI registration configuration - synonymous with T1_registration - # parameters under anatomical registration above - parameters: - - - collapse-output-transforms: 0 - - dimensionality: 3 - - initial-moving-transform : - initializationFeature: 0 - - - transforms: - - Rigid: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - Affine: - gradientStep : 0.1 - metric : - type : MI - metricWeight: 1 - numberOfBins : 32 - samplingStrategy : Regular - samplingPercentage : 0.25 - convergence: - iteration : 1000x500x250x100 - convergenceThreshold : 1e-08 - convergenceWindowSize : 10 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 8x4x2x1 - use-histogram-matching : True - - - SyN: - gradientStep : 0.1 - updateFieldVarianceInVoxelSpace : 3.0 - totalFieldVarianceInVoxelSpace : 0.0 - metric: - type : CC - metricWeight: 1 - radius : 4 - convergence: - iteration : 100x100x70x20 - convergenceThreshold : 1e-09 - convergenceWindowSize : 15 - smoothing-sigmas : 3.0x2.0x1.0x0.0 - shrink-factors : 6x4x2x1 - use-histogram-matching : True - winsorize-image-intensities : - lowerQuantile : 0.01 - upperQuantile : 0.99 - - # Interpolation method for writing out transformed EPI images. - # Possible values: Linear, BSpline, LanczosWindowedSinc - interpolation: LanczosWindowedSinc - - FSL-FNIRT: - - # Configuration file to be used by FSL to set FNIRT parameters. - # It is not necessary to change this path unless you intend to use custom FNIRT parameters or a non-standard template. - fnirt_config: T1_2_MNI152_2mm - - # Interpolation method for writing out transformed EPI images. - # Possible values: trilinear, sinc, spline - interpolation: sinc - - # Identity matrix used during FSL-based resampling of BOLD-space data throughout the pipeline. - # It is not necessary to change this path unless you intend to use a different template. - identity_matrix: /usr/share/fsl/5.0/etc/flirtsch/ident.mat - - func_registration_to_template: - - # these options modify the application (to the functional data), not the calculation, of the - # T1-to-template and EPI-to-template transforms calculated earlier during registration - run: On - - output_resolution: - - # The resolution (in mm) to which the preprocessed, registered functional timeseries outputs are written into. - # NOTE: - # selecting a 1 mm or 2 mm resolution might substantially increase your RAM needs- these resolutions should be selected with caution. - # for most cases, 3 mm or 4 mm resolutions are suggested. - # NOTE: - # this also includes the single-volume 3D preprocessed functional data, - # such as the mean functional (mean EPI) in template space - func_preproc_outputs: 3mm - - # The resolution (in mm) to which the registered derivative outputs are written into. - # NOTE: - # this is for the single-volume functional-space outputs (i.e. derivatives) - # thus, a higher resolution may not result in a large increase in RAM needs as above - func_derivative_outputs: 3mm - - target_template: - - # using: ['T1_template', 'EPI_template'] - # this is a fork point - # NOTE: - # this will determine which registration transform to use to warp the functional - # outputs and derivatives to template space - using: ['T1_template'] - - # option parameters - T1_template: - - # Standard Skull Stripped Template. Used as a reference image for functional registration. - # This can be different than the template used as the reference/fixed for T1-to-template registration. - T1w_brain_template_funcreg: /usr/share/fsl/5.0/data/standard/MNI152_T1_${func_resolution}_brain.nii.gz - - # Standard Anatomical Brain Image with Skull. - # This can be different than the template used as the reference/fixed for T1-to-template registration. - T1w_template_funcreg: /usr/share/fsl/5.0/data/standard/MNI152_T1_${func_resolution}.nii.gz - - # Template to be used during registration. - # It is not necessary to change this path unless you intend to use a non-standard template. - T1w_brain_template_mask_funcreg: /usr/share/fsl/5.0/data/standard/MNI152_T1_${func_resolution}_brain_mask.nii.gz - - # a standard template for resampling if using float resolution - T1w_template_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz - - EPI_template: - - # EPI template for direct functional-to-template registration - # (bypassing coregistration and the anatomical-to-template transforms) - EPI_template_funcreg: s3://fcp-indi/resources/cpac/resources/epi_hbn.nii.gz - - # EPI template mask. - EPI_template_mask_funcreg: None - - # a standard template for resampling if using float resolution - EPI_template_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain.nii.gz - - ANTs_pipelines: - - # Interpolation method for writing out transformed functional images. - # Possible values: Linear, BSpline, LanczosWindowedSinc - interpolation: LanczosWindowedSinc - - FNIRT_pipelines: - - # Interpolation method for writing out transformed functional images. - # Possible values: trilinear, sinc, spline - interpolation: sinc - - # Identity matrix used during FSL-based resampling of functional-space data throughout the pipeline. - # It is not necessary to change this path unless you intend to use a different template. - identity_matrix: /usr/share/fsl/5.0/etc/flirtsch/ident.mat - - -functional_preproc: - - run: On - - truncation: - - # First timepoint to include in analysis. - # Default is 0 (beginning of timeseries). - # First timepoint selection in the scan parameters in the data configuration file, if present, will over-ride this selection. - # Note: the selection here applies to all scans of all participants. - start_tr: 0 - - # Last timepoint to include in analysis. - # Default is None or End (end of timeseries). - # Last timepoint selection in the scan parameters in the data configuration file, if present, will over-ride this selection. - # Note: the selection here applies to all scans of all participants. - stop_tr: None - - scaling: - - # Scale functional raw data, usually used in rodent pipeline - run: Off - - # Scale the size of the dataset voxels by the factor. - scaling_factor: 10 - - despiking: - - # Run AFNI 3dDespike - # this is a fork point - # run: [On, Off] - this will run both and fork the pipeline - run: [Off] - - slice_timing_correction: - - # Interpolate voxel time courses so they are sampled at the same time points. - # this is a fork point - # run: [On, Off] - this will run both and fork the pipeline - run: [On] - - motion_estimates_and_correction: - - # calculate motion statistics BEFORE slice-timing correction - calculate_motion_first: Off - - motion_correction: - - # using: ['3dvolreg', 'mcflirt'] - # this is a fork point - using: ['3dvolreg'] - - # option parameters - AFNI-3dvolreg: - - # This option is useful when aligning high-resolution datasets that may need more alignment than a few voxels. - functional_volreg_twopass: On - - # Choose motion correction reference. Options: mean, median, selected_volume - motion_correction_reference: ['mean'] - - # Choose motion correction reference volume - motion_correction_reference_volume: 0 - - motion_estimate_filter: - - # Filter physiological (respiration) artifacts from the head motion estimates. - # Adapted from DCAN Labs filter. - # https://www.ohsu.edu/school-of-medicine/developmental-cognition-and-neuroimaging-lab - # https://www.biorxiv.org/content/10.1101/337360v1.full.pdf - # this is a fork point - # run: [On, Off] - this will run both and fork the pipeline - run: [Off] - - # options: "notch", "lowpass" - filter_type: "notch" - - # Number of filter coefficients. - filter_order: 4 - - # Dataset-wide respiratory rate data from breathing belt. - # Notch filter requires either: - # "breathing_rate_min" and "breathing_rate_max" - # or - # "center_frequency" and "filter_bandwitdh". - # Lowpass filter requires either: - # "breathing_rate_min" - # or - # "lowpass_cutoff". - # If "breathing_rate_min" (for lowpass and notch filter) - # and "breathing_rate_max" (for notch filter) are set, - # the values set in "lowpass_cutoff" (for lowpass filter), - # "center_frequency" and "filter_bandwidth" (for notch filter) - # options are ignored. - - # Lowest Breaths-Per-Minute in dataset. - # For both notch and lowpass filters. - breathing_rate_min: - - # Highest Breaths-Per-Minute in dataset. - # For notch filter. - breathing_rate_max: - - # notch filter direct customization parameters - - # mutually exclusive with breathing_rate options above. - # If breathing_rate_min and breathing_rate_max are provided, - # the following parameters will be ignored. - - # the center frequency of the notch filter - center_frequency: - - # the width of the notch filter - filter_bandwidth: - - # lowpass filter direct customization parameter - - # mutually exclusive with breathing_rate options above. - # If breathing_rate_min is provided, the following - # parameter will be ignored. - - # the frequency cutoff of the filter - lowpass_cutoff: - - distortion_correction: - - # this is a fork point - # run: [On, Off] - this will run both and fork the pipeline - run: [On] - - # using: ['PhaseDiff', 'Blip'] - # PhaseDiff - Perform field map correction using a single phase difference image, a subtraction of the two phase images from each echo. Default scanner for this method is SIEMENS. - # Blip - Uses AFNI 3dQWarp to calculate the distortion unwarp for EPI field maps of opposite/same phase encoding direction. - # NOTE: - # this is NOT a fork point - instead, the technique used will depend on what type of distortion correction field data accompanies the dataset - # for example, phase-difference field maps will lead to phase-difference distortion correction, and phase-encoding direction field maps will lead to blip-up/blip-down - using: ['PhaseDiff', 'Blip'] - - # option parameters - PhaseDiff: - - # Since the quality of the distortion heavily relies on the skull-stripping step, we provide a choice of method ('AFNI' for AFNI 3dSkullStrip or 'BET' for FSL BET). - # Options: 'BET' or 'AFNI' - fmap_skullstrip_option: 'BET' - - # Set the fraction value for the skull-stripping of the magnitude file. Depending on the data, a tighter extraction may be necessary in order to prevent noisy voxels from interfering with preparing the field map. - # The default value is 0.5. - fmap_skullstrip_BET_frac: 0.5 - - # Set the threshold value for the skull-stripping of the magnitude file. Depending on the data, a tighter extraction may be necessary in order to prevent noisy voxels from interfering with preparing the field map. - # The default value is 0.6. - fmap_skullstrip_AFNI_threshold: 0.6 - - func_masking: - - # using: ['AFNI', 'FSL', 'FSL_AFNI', 'Anatomical_Refined', 'Anatomical_Based'] - # this is a fork point - using: ['AFNI'] - - FSL-BET: - - # Apply to 4D FMRI data, if bold_bet_functional_mean_boolean : Off. - # Mutually exclusive with functional, reduce_bias, robust, padding, remove_eyes, surfaces - # It must be 'on' if select 'reduce_bias', 'robust', 'padding', 'remove_eyes', or 'bet_surfaces' on - functional_mean_boolean: Off - - # Set the threshold value controling the brain vs non-brain voxels. - frac: 0.3 - - # Mesh created along with skull stripping - mesh_boolean: Off - - # Create a surface outline image - outline: Off - - # Add padding to the end of the image, improving BET.Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - padding: Off - - # Integer value of head radius - radius: 0 - - # Reduce bias and cleanup neck. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - reduce_bias: Off - - # Eyes and optic nerve cleanup. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - remove_eyes: Off - - # Robust brain center estimation. Mutually exclusive with functional,reduce_bias,robust,padding,remove_eyes,surfaces - robust: Off - - # Create a skull image - skull: Off - - # Gets additional skull and scalp surfaces by running bet2 and betsurf. This is mutually exclusive with reduce_bias, robust, padding, remove_eyes - surfaces: Off - - # Apply thresholding to segmented brain image and mask - threshold: Off - - # Vertical gradient in fractional intensity threshold (-1,1) - vertical_gradient: 0.0 - - Anatomical_Refined: - - # Choose whether or not to dilate the anatomical mask if you choose 'Anatomical_Refined' as the functional masking option. It will dilate one voxel if enabled. - anatomical_mask_dilation: False - - -nuisance_corrections: - - 1-ICA-AROMA: - - # this is a fork point - # run: [On, Off] - this will run both and fork the pipeline - run: [Off] - - # Types of denoising strategy: - # nonaggr: nonaggressive-partial component regression - # aggr: aggressive denoising - denoising_type: nonaggr - - 2-nuisance_regression: - - # this is a fork point - # run: [On, Off] - this will run both and fork the pipeline - run: [On] - - # Select which nuisance signal corrections to apply - Regressors: - - - Name: 'default' - - Motion: - include_delayed: true - include_squared: true - include_delayed_squared: true - - aCompCor: - summary: - method: DetrendPC - components: 5 - tissues: - - WhiteMatter - - CerebrospinalFluid - extraction_resolution: 2 - - CerebrospinalFluid: - summary: Mean - extraction_resolution: 2 - erode_mask: true - - GlobalSignal: - summary: Mean - - PolyOrt: - degree: 2 - - Bandpass: - bottom_frequency: 0.01 - top_frequency: 0.1 - method: default - - - Name: 'defaultNoGSR' - - Motion: - include_delayed: true - include_squared: true - include_delayed_squared: true - - aCompCor: - summary: - method: DetrendPC - components: 5 - tissues: - - WhiteMatter - - CerebrospinalFluid - extraction_resolution: 2 - - CerebrospinalFluid: - summary: Mean - extraction_resolution: 2 - erode_mask: true - - PolyOrt: - degree: 2 - - Bandpass: - bottom_frequency: 0.01 - top_frequency: 0.1 - method: default - - # Standard Lateral Ventricles Binary Mask - # used in CSF mask refinement for CSF signal-related regressions - lateral_ventricles_mask: $FSLDIR/data/atlases/HarvardOxford/HarvardOxford-lateral-ventricles-thr25-2mm.nii.gz - - # Whether to run frequency filtering before or after nuisance regression. - # Options: 'After' or 'Before' - bandpass_filtering_order: 'After' - - # Process and refine masks used to produce regressors and time series for - # regression. - regressor_masks: - - erode_anatomical_brain_mask: - - # Erode binarized anatomical brain mask. If choosing True, please also set seg_csf_use_erosion: True; regOption: niworkflows-ants. - run: Off - - # Erosion proportion, if using erosion. - # Default proportion is 0 for anatomical brain mask. - # Recommend that do not use erosion in both proportion and millimeter method. - brain_mask_erosion_prop : 0 - - # Erode brain mask in millimeter, default of brain is 30 mm - # brain erosion default is using millimeter erosion method when use erosion for brain. - brain_mask_erosion_mm : 30 - - # Erode binarized brain mask in millimeter - brain_erosion_mm: 0 - - erode_csf: - - # Erode binarized csf tissue mask. - run: Off - - # Erosion proportion, if use erosion. - # Default proportion is 0 for CSF (cerebrospinal fluid) mask. - # Recommend to do not use erosion in both proportion and millimeter method. - csf_erosion_prop : 0 - - # Erode brain mask in millimeter, default of csf is 30 mm - # CSF erosion default is using millimeter erosion method when use erosion for CSF. - csf_mask_erosion_mm: 30 - - # Erode binarized CSF (cerebrospinal fluid) mask in millimeter - csf_erosion_mm: 0 - - erode_wm: - - # Erode WM binarized tissue mask. - run: Off - - # Erosion proportion, if use erosion. - # Default proportion is 0.6 for White Matter mask. - # Recommend to do not use erosion in both proportion and millimeter method. - # White Matter erosion default is using proportion erosion method when use erosion for White Matter. - wm_erosion_prop : 0.6 - - # Erode brain mask in millimeter, default of White Matter is 0 mm - wm_mask_erosion_mm: 0 - - # Erode binarized White Matter mask in millimeter - wm_erosion_mm: 0 - - erode_gm: - - # Erode GM binarized tissue mask. - run: Off - - # Erosion proportion, if use erosion. - # Recommend to do not use erosion in both proportion and millimeter method. - gm_erosion_prop : 0.6 - - # Erode brain mask in millimeter, default of csf is 30 mm - gm_mask_erosion_mm: 30 - - # Erode binarized White Matter mask in millimeter - gm_erosion_mm: 0 - - -# OUTPUTS AND DERIVATIVES -# ----------------------- -post_processing: - - spatial_smoothing: - - # Smooth the derivative outputs. - # Set as ['nonsmoothed'] to disable smoothing. Set as both to get both. - # - # Options: - # ['smoothed', 'nonsmoothed'] - output: ['smoothed'] - - # Tool to use for smoothing. - # 'FSL' for FSL MultiImageMaths for FWHM provided - # 'AFNI' for AFNI 3dBlurToFWHM for FWHM provided - smoothing_method: ['FSL'] - - # Full Width at Half Maximum of the Gaussian kernel used during spatial smoothing. - # this is a fork point - # i.e. multiple kernels - fwhm: [4,6,8] - fwhm: [4] - - z-scoring: - - # z-score standardize the derivatives. This may be needed for group-level analysis. - # Set as ['raw'] to disable z-scoring. Set as both to get both. - # - # Options: - # ['z-scored', 'raw'] - output: ['z-scored'] - - -timeseries_extraction: - - run: On - - # Enter paths to region-of-interest (ROI) NIFTI files (.nii or .nii.gz) to be used for time-series extraction, and then select which types of analyses to run. - # Denote which analyses to run for each ROI path by listing the names below. For example, if you wish to run Avg and SpatialReg, you would enter: '/path/to/ROI.nii.gz': Avg, SpatialReg - # available analyses: - # /path/to/atlas.nii.gz: Avg, Voxel, SpatialReg, PearsonCorr, PartialCorr - tse_roi_paths: - /cpac_templates/CC400.nii.gz: Avg - /cpac_templates/aal_mask_pad.nii.gz: Avg - /cpac_templates/CC200.nii.gz: Avg - /cpac_templates/tt_mask_pad.nii.gz: Avg - /cpac_templates/PNAS_Smith09_rsn10.nii.gz: SpatialReg - /cpac_templates/ho_mask_pad.nii.gz: Avg - /cpac_templates/rois_3mm.nii.gz: Avg - /ndmg_atlases/label/Human/AAL_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/CAPRSC_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/DKT_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/DesikanKlein_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/HarvardOxfordcort-maxprob-thr25_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/HarvardOxfordsub-maxprob-thr25_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Juelich_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/MICCAI_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Schaefer1000_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Schaefer200_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Schaefer300_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Schaefer400_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Talairach_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Brodmann_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Desikan_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Glasser_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Slab907_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Yeo-17-liberal_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Yeo-17_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Yeo-7-liberal_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - /ndmg_atlases/label/Human/Yeo-7_space-MNI152NLin6_res-1x1x1.nii.gz: Avg - - # Functional time-series and ROI realignment method: ['ROI_to_func'] or ['func_to_ROI'] - # 'ROI_to_func' will realign the atlas/ROI to functional space (fast) - # 'func_to_ROI' will realign the functional time series to the atlas/ROI space - # - # NOTE: in rare cases, realigning the ROI to the functional space may - # result in small misalignments for very small ROIs - please double - # check your data if you see issues - realignment: 'ROI_to_func' - - -seed_based_correlation_analysis: - - # SCA - Seed-Based Correlation Analysis - # For each extracted ROI Average time series, CPAC will generate a whole-brain correlation map. - # It should be noted that for a given seed/ROI, SCA maps for ROI Average time series will be the same. - run: On - - # Enter paths to region-of-interest (ROI) NIFTI files (.nii or .nii.gz) to be used for seed-based correlation analysis, and then select which types of analyses to run. - # Denote which analyses to run for each ROI path by listing the names below. For example, if you wish to run Avg and MultReg, you would enter: '/path/to/ROI.nii.gz': Avg, MultReg - # available analyses: - # /path/to/atlas.nii.gz: Avg, DualReg, MultReg - sca_roi_paths: - /cpac_templates/PNAS_Smith09_rsn10.nii.gz: DualReg - /cpac_templates/CC400.nii.gz: Avg, MultReg - /cpac_templates/ez_mask_pad.nii.gz: Avg, MultReg - /cpac_templates/aal_mask_pad.nii.gz: Avg, MultReg - /cpac_templates/CC200.nii.gz: Avg, MultReg - /cpac_templates/tt_mask_pad.nii.gz: Avg, MultReg - /cpac_templates/ho_mask_pad.nii.gz: Avg, MultReg - /cpac_templates/rois_3mm.nii.gz: Avg, MultReg - - # Normalize each time series before running Dual Regression SCA. - norm_timeseries_for_DR: True - - -amplitude_low_frequency_fluctuation: - - # ALFF & f/ALFF - # Calculate Amplitude of Low Frequency Fluctuations (ALFF) and and fractional ALFF (f/ALFF) for all voxels. - run: On - - # Frequency cutoff (in Hz) for the high-pass filter used when calculating f/ALFF. - highpass_cutoff: [0.01] - - # Frequency cutoff (in Hz) for the low-pass filter used when calculating f/ALFF - lowpass_cutoff: [0.1] - - -regional_homogeneity: - - # ReHo - # Calculate Regional Homogeneity (ReHo) for all voxels. - run: On - - # Number of neighboring voxels used when calculating ReHo - # 7 (Faces) - # 19 (Faces + Edges) - # 27 (Faces + Edges + Corners) - cluster_size: 27 - - -voxel_mirrored_homotopic_connectivity: - - # VMHC - # Calculate Voxel-mirrored Homotopic Connectivity (VMHC) for all voxels. - run: On - - symmetric_registration: - - # Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. - # It is not necessary to change this path unless you intend to use a non-standard symmetric template. - T1w_brain_template_symmetric: $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain_symmetric.nii.gz - - # A reference symmetric brain template for resampling - T1w_brain_template_symmetric_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain_symmetric.nii.gz - - # Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. - # It is not necessary to change this path unless you intend to use a non-standard symmetric template. - T1w_template_symmetric: $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_symmetric.nii.gz - - # A reference symmetric skull template for resampling - T1w_template_symmetric_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_symmetric.nii.gz - - # Included as part of the 'Image Resource Files' package available on the Install page of the User Guide. - # It is not necessary to change this path unless you intend to use a non-standard symmetric template. - dilated_symmetric_brain_mask: $FSLDIR/data/standard/MNI152_T1_${resolution_for_anat}_brain_mask_symmetric_dil.nii.gz - - # A reference symmetric brain mask template for resampling - dilated_symmetric_brain_mask_for_resample: $FSLDIR/data/standard/MNI152_T1_1mm_brain_mask_symmetric_dil.nii.gz - - -network_centrality: - - # Calculate Degree, Eigenvector Centrality, or Functional Connectivity Density. - run: On - - # Maximum amount of RAM (in GB) to be used when calculating Degree Centrality. - # Calculating Eigenvector Centrality will require additional memory based on the size of the mask or number of ROI nodes. - memory_allocation: 1.0 - - # Full path to a NIFTI file describing the mask. Centrality will be calculated for all voxels within the mask. - template_specification_file: /cpac_templates/Mask_ABIDE_85Percent_GM.nii.gz - - degree_centrality: - - # Enable/Disable degree centrality by selecting the connectivity weights - # weight_options: ['Binarized', 'Weighted'] - # disable this type of centrality with: - # weight_options: [] - weight_options: ['Binarized', 'Weighted'] - - # Select the type of threshold used when creating the degree centrality adjacency matrix. - # options: - # 'Significance threshold', 'Sparsity threshold', 'Correlation threshold' - correlation_threshold_option: 'Sparsity threshold' - - # Based on the Threshold Type selected above, enter a Threshold Value. - # P-value for Significance Threshold - # Sparsity value for Sparsity Threshold - # Pearson's r value for Correlation Threshold - correlation_threshold: 0.001 - - eigenvector_centrality: - - # Enable/Disable eigenvector centrality by selecting the connectivity weights - # weight_options: ['Binarized', 'Weighted'] - # disable this type of centrality with: - # weight_options: [] - weight_options: ['Weighted'] - - # Select the type of threshold used when creating the eigenvector centrality adjacency matrix. - # options: - # 'Significance threshold', 'Sparsity threshold', 'Correlation threshold' - correlation_threshold_option: 'Sparsity threshold' - - # Based on the Threshold Type selected above, enter a Threshold Value. - # P-value for Significance Threshold - # Sparsity value for Sparsity Threshold - # Pearson's r value for Correlation Threshold - correlation_threshold: 0.001 - - local_functional_connectivity_density: - - # Enable/Disable lFCD by selecting the connectivity weights - # weight_options: ['Binarized', 'Weighted'] - # disable this type of centrality with: - # weight_options: [] - weight_options: ['Binarized', 'Weighted'] - - # Select the type of threshold used when creating the lFCD adjacency matrix. - # options: - # 'Significance threshold', 'Correlation threshold' - correlation_threshold_option: 'Correlation threshold' - - # Based on the Threshold Type selected above, enter a Threshold Value. - # P-value for Significance Threshold - # Sparsity value for Sparsity Threshold - # Pearson's r value for Correlation Threshold - correlation_threshold: 0.6 - - -# PACKAGE INTEGRATIONS -# -------------------- -PyPEER: - - # Training of eye-estimation models. Commonly used for movies data/naturalistic viewing. - run: Off - - # PEER scan names to use for training - # Example: ['peer_run-1', 'peer_run-2'] - eye_scan_names: [] - - # Naturalistic viewing data scan names to use for eye estimation - # Example: ['movieDM'] - data_scan_names: [] - - # Template-space eye mask - eye_mask_path: $FSLDIR/data/standard/MNI152_T1_${func_resolution}_eye_mask.nii.gz - - # PyPEER Stimulus File Path - # This is a file describing the stimulus locations from the calibration sequence. - stimulus_path: None - - minimal_nuisance_correction: - - # PyPEER Minimal nuisance regression - # Note: PyPEER employs minimal preprocessing - these choices do not reflect what runs in the main pipeline. - # PyPEER uses non-nuisance-regressed data from the main pipeline. - - # Global signal regression (PyPEER only) - peer_gsr: True - - # Motion scrubbing (PyPEER only) - peer_scrub: False - - # Motion scrubbing threshold (PyPEER only) - scrub_thresh: 0.2 From f57836b006c4a4ae30b21bc65875fa2b5fd8e018 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Thu, 15 Jul 2021 17:36:27 -0400 Subject: [PATCH 55/66] :memo: Add docstrings for new components --- app/components/404.jsx | 1 + app/components/Help.js | 2 +- app/components/List.jsx | 88 +++++- app/components/OnOffSwitch.jsx | 83 +++-- app/components/PipelineCard.js | 58 +++- app/components/PipelineStep.jsx | 24 -- app/components/PropTypes.js | 60 ++++ app/components/RoiPaths.jsx | 293 +++++++++++++----- app/components/TextField.jsx | 61 ++-- .../pipeline/parts/PipelinePart.jsx | 18 +- app/sagas/config.js | 1 - c-pac/pipeline.js | 1 - package.json | 2 +- yarn.lock | 2 +- 14 files changed, 513 insertions(+), 181 deletions(-) delete mode 100644 app/components/PipelineStep.jsx create mode 100644 app/components/PropTypes.js diff --git a/app/components/404.jsx b/app/components/404.jsx index 3793a921..77b68612 100644 --- a/app/components/404.jsx +++ b/app/components/404.jsx @@ -2,6 +2,7 @@ import React, { Component } from 'react'; import Treachery from 'resources/treachery.jpg'; import { withRouter } from 'react-router-dom'; +/** Custom 404 component */ class NotFound extends Component { render() { return( diff --git a/app/components/Help.js b/app/components/Help.js index f8784a62..91dbf899 100644 --- a/app/components/Help.js +++ b/app/components/Help.js @@ -15,7 +15,7 @@ import { HelpIcon } from './icons' - +/** TODO: Refactor for 1.8+ syntax */ class Help extends PureComponent { state = { open: false, diff --git a/app/components/List.jsx b/app/components/List.jsx index a40fc28a..6b237a26 100644 --- a/app/components/List.jsx +++ b/app/components/List.jsx @@ -1,4 +1,5 @@ import React, { PureComponent } from 'react'; +import PropTypes from 'prop-types'; import Grid from '@material-ui/core/Grid'; import Immutable, { fromJS } from 'immutable'; @@ -16,11 +17,31 @@ import { DeleteIcon, DuplicateIcon } from 'components/icons'; +import CustomPropTypes from 'components/PropTypes'; import OnOffSwitch from 'components/OnOffSwitch'; import PipelinePart, { formatLabel } from 'containers/pipeline/parts/PipelinePart'; -import { PipelineTextField } from 'components/TextField'; +import PipelineTextField from 'components/TextField'; +/** A Boolean toggle component within a list. */ class OnOffSwitchListItem extends PureComponent { + static propTypes = { + /** Text label to display by switch. */ + label: PropTypes.string, + /** This list's specific key, this entire list. */ + entry: CustomPropTypes.entryList.isRequired, + /** Sequence of keys from the top of the overall pipeline configuration to this list (array). */ + chain: PropTypes.arrayOf(PropTypes.string).isRequired, + /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this list (array). */ + name: PropTypes.string.isRequired, + /** This field's index in this list (array). */ + i: PropTypes.number.isRequired, + /** On or off? (true == on) */ + item: PropTypes.bool.isRequired, + /** Function to call on change. */ + onChange: PropTypes.func.isRequired, + /** Regular expression for help field (deprecated). */ + regex: PropTypes.instanceOf(RegExp) + } render() { const { @@ -50,12 +71,30 @@ class OnOffSwitchListItem extends PureComponent { } } +/** A TextField component within a list. */ class CpacTextListItem extends PureComponent { + static propTypes = { + /** Text label to display by switch. */ + label: PropTypes.string, + /** Sequence of keys from the top of the overall pipeline configuration to this list (array). */ + chain: PropTypes.arrayOf(PropTypes.string).isRequired, + /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this list (array). */ + name: PropTypes.string.isRequired, + /** This field's index in this list (array). */ + i: PropTypes.number.isRequired, + /** On or off? (true == on) */ + item: PropTypes.oneOfType([ + PropTypes.number, + PropTypes.string + ]).isRequired, + /** Functions to call on change. */ + onChange: PropTypes.func.isRequired, + handlers: PropTypes.objectOf(PropTypes.func).isRequired + } state = { item: this.props.item }; render() { - const { chain, handlers, i, inputType, item, label, name, onChange } = this.props; @@ -93,10 +132,38 @@ class CpacTextListItem extends PureComponent { } +/** Editable item in a list within a pipeline configuration. */ class CpacListItem extends PureComponent { + static propTypes = { + /** Sequence of keys from the top of the overall pipeline configuration to this list (array). */ + chain: PropTypes.arrayOf(PropTypes.string).isRequired, + /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this list (array). */ + name: PropTypes.string.isRequired, + /** Text label to display by TextField. */ + label: PropTypes.string, + /** Sequence of keys from the top of the overall pipeline configuration to this Map. */ + parents: PropTypes.array.isRequired, + /** Current depth level (integer). */ + level: PropTypes.number.isRequired, + /** This list's specific key, this entire list. */ + entry: CustomPropTypes.entryList.isRequired, + /** This field's index in this list (array). */ + i: PropTypes.number.isRequired, + /** On or off? (true == on) */ + item: PropTypes.oneOfType([ + PropTypes.bool, + PropTypes.number, + PropTypes.string + ]).isRequired, + /** Change methods */ + handleDelete: PropTypes.func.isRequired, + handleDuplicate: PropTypes.func.isRequired, + onChange: PropTypes.func.isRequired, + /** Inherited style */ + classes: PropTypes.object + } render() { - const { chain, classes, entry, handleDelete, handleDuplicate, i, item, label, level, name, onChange, parents @@ -150,7 +217,22 @@ class CpacListItem extends PureComponent { } } +/** List of editable items within a pipeline configuration. */ class CpacList extends PureComponent { + static propTypes = { + /** This list's specific key, this entire list. */ + entry: CustomPropTypes.entryList.isRequired, + /** The Immutable Map containing this list. */ + configuration: PropTypes.instanceOf(Immutable.Map), + /** Sequence of keys from the top of the overall pipeline configuration to this Map. */ + parents: PropTypes.array.isRequired, + /** Current depth level (integer). */ + level: PropTypes.number.isRequired, + /** Change method */ + onChange: PropTypes.func.isRequired, + /** Inherited style */ + classes: PropTypes.object + } state = { fullList: this.props.entry[1] }; diff --git a/app/components/OnOffSwitch.jsx b/app/components/OnOffSwitch.jsx index 62d0a96c..fdf9680b 100644 --- a/app/components/OnOffSwitch.jsx +++ b/app/components/OnOffSwitch.jsx @@ -1,4 +1,5 @@ import React, { PureComponent } from 'react'; +import PropTypes from 'prop-types'; import FormControl from '@material-ui/core/FormControl'; import FormControlLabelled from 'components/FormControlLabelled'; import FormGroup from '@material-ui/core/FormGroup'; @@ -7,49 +8,63 @@ import Help from 'components/Help'; import Switch from '@material-ui/core/Switch'; import { withRouter } from 'react-router-dom'; +/** A Boolean toggle component. */ class OnOffSwitch extends PureComponent { - render() { - const { checked, key, label, name, onChange, regex } = this.props; + static propTypes = { + /** Text label to display by switch. */ + label: PropTypes.string, + /** On or off? (true == On). */ + checked: PropTypes.bool.isRequired, + /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this field. */ + name: PropTypes.string.isRequired, + /** Function to call on change. */ + onChange: PropTypes.func.isRequired, + /** Regular expression for help field (deprecated). */ + regex: PropTypes.instanceOf(RegExp) + } + + render() { + const { checked, label, name, onChange, regex } = this.props; - switch (regex) { - case null: - return ( - - - + switch (regex) { + case null: + return ( + + + + + + + + ) + default: + return ( + + + + - - - - ) - default: - return ( - - - - - - - - - - ) - } + + + + + ) } } +} export default withRouter(OnOffSwitch); diff --git a/app/components/PipelineCard.js b/app/components/PipelineCard.js index f3425f76..80d10375 100644 --- a/app/components/PipelineCard.js +++ b/app/components/PipelineCard.js @@ -1,13 +1,15 @@ -import React, { Component } from 'react' -import { connect } from 'react-redux' -import { withRouter, Link } from 'react-router-dom' +import React, { Component } from 'react'; +import { connect } from 'react-redux'; +import { withRouter, Link } from 'react-router-dom'; +import Immutable from 'immutable'; +import PropTypes from 'prop-types'; import clsx from 'clsx' -import { formatMs, withStyles } from '@material-ui/core/styles' +import { formatMs, withStyles } from '@material-ui/core/styles'; import { Map } from 'immutable'; -import Grid from '@material-ui/core/Grid' +import Grid from '@material-ui/core/Grid'; import Card from '@material-ui/core/Card'; import CardHeader from '@material-ui/core/CardHeader'; @@ -27,8 +29,6 @@ import IconButton from '@material-ui/core/IconButton'; import Button from '@material-ui/core/Button'; import Tooltip from '@material-ui/core/Tooltip'; -import PipelineStep from './PipelineStep'; - import { EnvironmentIcon, PipelineIcon, @@ -46,11 +46,24 @@ import { DeleteIcon, DuplicateIcon, } from './icons'; -import { formatLabel } from '../containers/pipeline/parts/PipelinePart' -import { isADefault } from '../containers/PipelinePage' - +import { formatLabel } from '../containers/pipeline/parts/PipelinePart'; +import { isADefault } from '../containers/PipelinePage'; +/** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ class PipelineCard extends Component { + static propTypes = { + /** Inherited style */ + classes: PropTypes.object, + /** Methods for mutating array of pipelines */ + onDelete: PropTypes.func.isRequired, + onDuplicate: PropTypes.func.isRequired, + /** A pipeline configuration */ + pipeline: PropTypes.instanceOf(Immutable.Map).isRequired, + /** Routing props */ + history: PropTypes.object, + location: PropTypes.object, + match: PropTypes.object + } static styles = theme => ({ card: { @@ -181,4 +194,29 @@ class PipelineCard extends Component { } } +/** A row to indicate s broad pipeline step on a pipeline card */ +class PipelineStep extends Component { + static propTypes = { + /** Whether the step is On in the pipeline configuration */ + stepKey: PropTypes.bool.isRequired, + /** Text to display for step */ + label: PropTypes.string, + /** Inherited style */ + classes: PropTypes.object + } + + render() { + const { stepKey, label, classes } = this.props; + const enabledStyle = {root: stepKey ? classes.featEnabled : classes.featDisabled}; + return ( + + + + + + + ) + } +} + export default withRouter(withStyles(PipelineCard.styles)(PipelineCard)) diff --git a/app/components/PipelineStep.jsx b/app/components/PipelineStep.jsx deleted file mode 100644 index 4245f6f1..00000000 --- a/app/components/PipelineStep.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React, { Component } from 'react'; -import ListItem from '@material-ui/core/ListItem'; -import ListItemIcon from '@material-ui/core/ListItemIcon'; -import ListItemText from '@material-ui/core/ListItemText'; -import { PipelineStepIcon } from './icons'; - -import { withRouter } from 'react-router-dom'; - -class PipelineStep extends Component { - render() { - const { stepKey, label, classes } = this.props; - const enabledStyle = {root: stepKey ? classes.featEnabled : classes.featDisabled} - return ( - - - - - - - ) - } -} - -export default withRouter(PipelineStep); \ No newline at end of file diff --git a/app/components/PropTypes.js b/app/components/PropTypes.js new file mode 100644 index 00000000..5277556e --- /dev/null +++ b/app/components/PropTypes.js @@ -0,0 +1,60 @@ +import PropTypes from 'prop-types'; +import Immutable from 'immutable'; + +/** Give consistent validation error information + * @param {string} propName + * @param {string} componentName + * @returns {string} + */ +const ValidationError = (propName, componentName) => { + return new Error( + `Invalid prop ${propName} supplied to ${componentName}. Validation failed.` + ); +} + +/** DRY in creating optional & required variants. + * @param {bool} isRequired + * @returns {function} + */ +const PropTypeFactory = (isRequired, propType) => { + const OptionalCustomPropTypes = { + entryList: (props, propName, componentName) => { + const prop = props.propName; + if (prop != null || !isRequired) { + if ( + typeof(prop[0]) != 'string' || + !Immutable.List.isList(prop[1]) + ) { return ValidationError(propName, componentName); } + } + return null; + }, + roiPaths: (props, propName, componentName) => { + const prop = props.propName; + if (prop != null || !isRequired) { + if ( + !Immutable.Map.isMap(prop) || + Object.entries(roiPaths).flat().filter( + element => typeof(element) !== 'string' + ).length // if anything in this map is not a string, returns true + ) { return ValidationError(propName, componentName); } + } + } + } + + return OptionalCustomPropTypes[propType]; +} + +/** Specify custom PropType keys */ +const customPropTypesKeys = [ + 'entryList', + 'roiPaths' +] + +/** Set all custom PropTypes via PropTypeFactory */ +const CustomPropTypes = {}; +customPropTypesKeys.map(k => { + CustomPropTypes[k] = PropTypeFactory(false, k) + CustomPropTypes[k].isRequired = PropTypeFactory(true, k) +}) + +export default CustomPropTypes; diff --git a/app/components/RoiPaths.jsx b/app/components/RoiPaths.jsx index c6418dab..3dd81edf 100644 --- a/app/components/RoiPaths.jsx +++ b/app/components/RoiPaths.jsx @@ -1,10 +1,13 @@ import React, { PureComponent } from 'react'; +import PropTypes from 'prop-types'; +import CustomPropTypes from 'components/PropTypes'; import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid' import Paper from '@material-ui/core/Paper'; import MenuItem from '@material-ui/core/MenuItem'; -import ROITextField from 'components/TextField'; +import { CustomTextField } from 'components/TextField'; +import TextField from '@material-ui/core/TextField'; import Switch from '@material-ui/core/Switch'; import Checkbox from '@material-ui/core/Checkbox'; import InputAdornment from '@material-ui/core/InputAdornment'; @@ -33,18 +36,41 @@ import Immutable from 'immutable'; import { AddIcon, DeleteIcon } from 'components/icons'; +/** A Material Checkbox component to include in a table with ROI path keys and analysis headers. */ class RoiCheckbox extends PureComponent { + static propTypes = { + /** Map of strings like {path: comma-separated analyeses} */ + config: CustomPropTypes.roiPaths.isRequired, + /** Dot-delimited sequence of keys from top of pipeline configuration leading up to but not including `configKey`. */ + fullKey: PropTypes.string.isRequired, + /** Method to handle changes. */ + onChange: PropTypes.func.isRequired, + /** The analysis the checkbox indiciates */ + option: PropTypes.string.isRequired, + /** The path to the specified ROI image */ + roiPath: PropTypes.string.isRequired, + /** Method to update the state of the checkbox's parent table */ + updateState: PropTypes.func.isRequired + } keyArray = this.props.fullKey.split('.'); - entry = this.props.entries.getIn([this.props.roiPath]); + entry = this.props.config.getIn([this.props.roiPath]); state = { - entries: this.props.entries, - checked: this.entry.split(',').map(item => item.trim()).includes(this.props.option) + checked: this.entry.split(',').map(item => item.trim()).includes(this.props.option), + disabled: this.props.disabled + } + + componentDidUpdate(prevProps) { + if (prevProps.config !== this.props.config) { + this.setState({ + disabled: this.props.disabled + }); + } } handleChangedOption = (values, config, option, roiPath, handleChange) => { - const entry = this.props.entries.getIn([this.props.roiPath]); + const entry = this.props.config.getIn([this.props.roiPath]); const fullOptionset = new Set(entry.split(',').map(s => s.trim())); let checked = !this.state.checked; let keyParts = values.target.name.split('['); @@ -74,20 +100,89 @@ class RoiCheckbox extends PureComponent { } render() { - const { config, roiPath, fullKey, option, onChange } = this.props; + const { config, disabled, roiPath, fullKey, option, onChange } = this.props; + const { checked } = this.state; return ( this.handleChangedOption(e, config, option, roiPath, onChange)} - checked={this.state.checked} + checked={checked} + disabled={disabled} /> ) } } +/** A Material TextField with custom handling (to rerender less frequently) for strings that are editable keys in a pipeline config. */ +class ROITextField extends CustomTextField { + static propTypes = { + /** Passed through to Material TextField */ + fullWidth: PropTypes.bool, + helperText: PropTypes.string, + label: PropTypes.string, + margin: PropTypes.string, + variant: PropTypes.string, + /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this field. */ + fullKey: PropTypes.string.isRequired, + /** Function to call on change completion (pressing `Enter` or leaving field). */ + handleChange: PropTypes.func.isRequired, + /** 2-element array: editable text to display, comma-delimited analyses */ + entry: PropTypes.arrayOf(PropTypes.string).isRequired, + /** Method to enable and disable checkboxes in parent table */ + disableCheckboxes: PropTypes.func.isRequired + } + + state = { path: this.props.entry[0] }; + + roiKeydown = (e, disableCheckboxes, entry, handleChange, config) => { + disableCheckboxes(false); + this.handleKeyDown(e, entry, handleChange, config); + } + + exitTextBox = (e, disableCheckboxes, entry, handleChange, config) => { + disableCheckboxes(false); + this.handleChangedPath(e, entry, handleChange, config); + } + + render() { + const { + config, disableCheckboxes, entry, fullKey, fullWidth, handleChange, + helperText + } = this.props; + + return ( + this.changePath(e) } + onKeyDown={ (e) => this.roiKeydown(e, disableCheckboxes, entry, handleChange, config) } + onBlur={ (e) => this.exitTextBox(e, disableCheckboxes, entry, handleChange, config) } + onFocus={ () => disableCheckboxes(true) } + value={ this.state.path } + { ...{ helperText } } + /> + ) + } +} + +/** List of editable TextField keys and checkbox values for region-of-interest analyses */ class RoiPaths extends PureComponent { + static propTypes = { + /** Map of strings like {path: comma-separated analyeses} */ + configuration: CustomPropTypes.roiPaths.isRequired, + /** Specific key of configuration map within its parent in the pipeline config */ + configKey: PropTypes.string.isRequired, + /** Sequence of keys from top of pipeline configuration leading up to but not including `configKey`. */ + parents: PropTypes.arrayOf(PropTypes.string).isRequired, + /** Headings for the checkboxes in the table of ROI paths */ + validOptions: PropTypes.arrayOf(PropTypes.string).isRequired + } - sortPaths = (config) => { // put new mask at end of list; + /** Put new masks at the end of GUI list + * @param {Immutable.Map} config + * @returns {array} + */ + sortPaths = (config) => { let paths = Array.from(config.keySeq()); paths.sort(); if (paths.includes('')) { @@ -97,10 +192,25 @@ class RoiPaths extends PureComponent { } state = { + checkboxesDisabled: false, // when keys change, the list resorts, so we disable changes to the rest of an entry while the path is in edit mode sortedPaths: this.sortPaths(this.props.config), // so the sequence is relatively consistent entries: this.props.config }; + componentDidUpdate(prevProps) { + if (prevProps.config !== this.props.config) { + this.setState({ + sortedPaths: this.sortPaths(this.props.config), + entries: this.props.config + }); + } + } + + /** Adds a new row to the GUI list. + * @param {string} fullKey Dot-delimited sequence of keys to this array + * @param {Immutable.Map} config This pipeline configuration + * @param {function} handleChange Function to handle changes to this pipeline config + */ addMask = (fullKey, config, handleChange) => { const newConfig = config.setIn([""], ""); handleChange({ @@ -109,10 +219,15 @@ class RoiPaths extends PureComponent { value:newConfig } }); - this.updateState(newConfig); } + /** Removes a specified row from the GUI list. + * @param {string} fullKey Dot-delimited sequence of keys to this array + * @param {Immutable.Map} config This pipeline configuration + * @param {array} entry 2 elements: key, comma-delimited analyses + * @param {function} handleChange Function to handle changes to this pipeline config + */ removeMask = (fullKey, config, entry, handleChange) => { const newConfig = config.delete(entry[0]); handleChange({ @@ -121,10 +236,19 @@ class RoiPaths extends PureComponent { value: newConfig } }); - this.updateState(newConfig); } + /** Enable or disable checkboxes in GUI list. */ + disableCheckboxes = (newStatus) => { + this.setState({ + checkboxesDisabled: newStatus + }); + } + + /** Applies a change to the GUI list. + * @param {Immutable.Map} newConfig + */ updateState = (newConfig) => { this.setState({ entries: newConfig, @@ -138,81 +262,90 @@ class RoiPaths extends PureComponent { const fullKey = [...parents, configKey].join('.'); return ( - - - - - - - - - - ROI Image - { validOptions.map((option) => ( - { option } - ))} - - - - { this.state.entries.size ? this.state.sortedPaths.map((roiPath, i) => { - let entries = this.state.entries; - let updateState = this.updateState; - const entry = [roiPath, this.state.entries.getIn([roiPath])]; - return ( - - - this.removeMask(fullKey, config, entry, onChange)}> - - - - - + + + +
+ + + + + + ROI Image + { validOptions.map((option) => ( + { option } + ))} + + + + { this.state.entries.size ? this.state.sortedPaths.map((roiPath, i) => { + let entries = this.state.entries; + let updateState = this.updateState; + const entry = [roiPath, this.state.entries.getIn([roiPath])]; + return ( + + + this.removeMask( + fullKey, config, entry, onChange + ) + } + disabled={ this.state.checkboxesDisabled } + > + + + + + + + { validOptions.map((option) => ( + + + + ))} + + ) + }) : ( + + + Add new rows with the "+" below. - { validOptions.map((option) => ( - - - - ))} - + ) - }) : ( + } + + { this.state.sortedPaths.includes('') ? null : ( - - Add new rows with the "+" below. + + this.addMask(fullKey, config, onChange)}> + + - ) - } - - { this.state.sortedPaths.includes('') ? null : ( - - - this.addMask(fullKey, config, onChange)}> - - - - - ) } -
-
-
+ ) } + + +
) } diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index 8935e25b..ffd9c040 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -1,11 +1,25 @@ import React, { PureComponent } from 'react'; +import PropTypes from 'prop-types'; import TextField from '@material-ui/core/TextField'; +/** Text field that updates on exiting the field or on pressing `Enter` rather than on every keystroke. */ class CustomTextField extends PureComponent { + /** Manages the value in local state until user presses `Enter` or leaves the field. + * @param {object} values The event object + * @param {string} values.target.value The current value of the text field (not stored yet) + */ changePath = (values) => { this.setState({ path: values.target.value }); } + /** Change the value in the stored pipeline configuration. + * @param {object} values The event object + * @param {string} values.target.name + * @param {string} values.target.value The current value of the text field (not stored yet) + * @param {array} entry exactly 2 entries: key, comma-separated csv analyses + * @param {function} handleChange + * @param {config} config + */ handleChangedPath = (values, entry, handleChange, config) => { switch (config) { case null: @@ -34,32 +48,31 @@ class CustomTextField extends PureComponent { if (event.key === 'Enter') { this.handleChangedPath(event, entry, handleChange, config); } else { + console.log(event); + console.log(this.state); this.changePath(event); } } } -class ROITextField extends CustomTextField { - - state = { path: this.props.entry[0] }; - - render() { - const { config, entry, fullKey, handleChange, helperText, value } = this.props; - return ( - this.changePath(e) } - onKeyDown={ (e) => this.handleKeyDown(e, entry, handleChange, config) } - onBlur={ (e) => this.handleChangedPath(e, entry, handleChange, config) } - value={ this.state.path } - helperText={ helperText } - /> - ) - } -} - +/** A Material TextField with custom handling (to rerender less frequently) */ class PipelineTextField extends CustomTextField { + static propTypes = { + /** Passed through to Material TextField */ + fullWidth: PropTypes.bool, + label: PropTypes.string, + margin: PropTypes.string, + variant: PropTypes.string, + /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this field. */ + name: PropTypes.string.isRequired, + /** Function to call on change completion (pressing `Enter` or leaving field). */ + onChange: PropTypes.func.isRequired, + /** Editable text or number to display */ + value: PropTypes.oneOfType([ + PropTypes.number, + PropTypes.string + ]) + } state = { path: this.props.value }; @@ -70,12 +83,12 @@ class PipelineTextField extends CustomTextField { } render() { - const { config, onChange } = this.props; + const { name, onChange } = this.props; return ( this.changePath(e) } onKeyDown={ (e) => this.handleKeyDown(e, this.state.path, onChange) } @@ -85,5 +98,5 @@ class PipelineTextField extends CustomTextField { } } -export default ROITextField; -export { PipelineTextField }; \ No newline at end of file +export default PipelineTextField; +export { CustomTextField }; \ No newline at end of file diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index d030e291..aaa654ac 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -1,4 +1,5 @@ import React, { PureComponent } from 'react'; +import PropTypes from 'prop-types'; import Immutable from 'immutable'; import { withStyles, Typography } from '@material-ui/core'; import Grid from '@material-ui/core/Grid'; @@ -8,7 +9,7 @@ import AccordionDetails from '@material-ui/core/AccordionDetails'; import AccordionSummary from '@material-ui/core/AccordionSummary'; import FormGroup from '@material-ui/core/FormGroup'; import MenuItem from '@material-ui/core/MenuItem'; -import { PipelineTextField } from 'components/TextField'; +import PipelineTextField from 'components/TextField'; import CpacList from 'components/List'; import Help from 'components/Help'; @@ -43,7 +44,22 @@ export const formatLabel = (label) => { }).join(" "); } +/** + * Recursive component to convert YAML structure to GUI. + */ class PipelinePart extends PureComponent { + static propTypes = { + /** Inherited style. */ + classes: PropTypes.object.isRequired, + /** Current-depth Immutable Map to render. */ + configuration: PropTypes.instanceOf(Immutable.Map).isRequired, + /** Function to handle changes to this component. */ + onChange: PropTypes.func.isRequired, + /** Sequence of keys from the top of the overall pipeline configuration to this Map. */ + parents: PropTypes.array.isRequired, + /** Current depth level (integer). */ + level: PropTypes.number.isRequired + } static styles = theme => ({ fullWidth: { diff --git a/app/sagas/config.js b/app/sagas/config.js index a8b26a52..5869b378 100644 --- a/app/sagas/config.js +++ b/app/sagas/config.js @@ -201,7 +201,6 @@ function* loadConfig (action) { // Update default if necessary if(!fromJS(template).equals(fromJS(initialState.pipelines[0]))) { const pipelineIds = initialState.pipelines.map((p)=>p.id); - console.log(pipelineIds); let oldDefault = initialState.pipelines[0]; oldDefault.id = `default-${oldDefault.versions[0].version}`; if (!pipelineIds.includes(template.id)) { diff --git a/c-pac/pipeline.js b/c-pac/pipeline.js index 48722bb5..495e74ac 100644 --- a/c-pac/pipeline.js +++ b/c-pac/pipeline.js @@ -7,7 +7,6 @@ const versionRe = new RegExp('(?<=\# Version:? \s*).*'); function setVersion(rawTemplate) { let version = versionRe.exec(rawTemplate); version = (version && version.length) ? version[0] : 'unspecified'; - console.log(version); return ({ "id": `default-${version}`, "name": "Default", diff --git a/package.json b/package.json index 5883af67..254d4d73 100644 --- a/package.json +++ b/package.json @@ -162,7 +162,7 @@ "immutable": "^4.0.0-rc.12", "ini": "^1.3.6", "memoize-one": "^5.2.1", - "prop-types": "^15.6.0", + "prop-types": "^15.7.2", "react": "^16.8.6", "react-dom": "^16.8.6", "react-ga": "^3.3.0", diff --git a/yarn.lock b/yarn.lock index 0b850c18..ea14f031 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7953,7 +7953,7 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== From 5124dcbc7fe50ce9b1b80272d21614179d914eb7 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Jul 2021 11:15:15 -0400 Subject: [PATCH 56/66] :children_crossing: Set tab sequence --- .../{PipelineCard.js => PipelineCard.jsx} | 7 +++++-- app/containers/pipeline/PipelineEditor.js | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) rename app/components/{PipelineCard.js => PipelineCard.jsx} (98%) diff --git a/app/components/PipelineCard.js b/app/components/PipelineCard.jsx similarity index 98% rename from app/components/PipelineCard.js rename to app/components/PipelineCard.jsx index 80d10375..d5c140cb 100644 --- a/app/components/PipelineCard.js +++ b/app/components/PipelineCard.jsx @@ -49,6 +49,8 @@ import { import { formatLabel } from '../containers/pipeline/parts/PipelinePart'; import { isADefault } from '../containers/PipelinePage'; +const cardSteps = ['anatomical_preproc', 'functional_preproc', 'surface_analysis']; + /** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ class PipelineCard extends Component { static propTypes = { @@ -103,7 +105,7 @@ class PipelineCard extends Component { const version = versions.get(versionId) const configuration = version.getIn(['configuration', ]); - const cardSteps = ['anatomical_preproc', 'functional_preproc', 'surface_analysis']; + let derivatives = []; Object.keys(configuration.toJS()).forEach(step => { if (step === 'FROM') { @@ -219,4 +221,5 @@ class PipelineStep extends Component { } } -export default withRouter(withStyles(PipelineCard.styles)(PipelineCard)) +export default withRouter(withStyles(PipelineCard.styles)(PipelineCard)); +export { cardSteps }; \ No newline at end of file diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 128c47be..57216d4d 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -25,6 +25,7 @@ import { } from 'components/icons'; import { formatLabel, PipelinePart } from 'containers/pipeline/parts'; +import { cardSteps } from 'components/PipelineCard'; import Button from '@material-ui/core/Button'; import IconButton from '@material-ui/core/IconButton' @@ -33,7 +34,6 @@ import Switch from '@material-ui/core/Switch'; import Collapse from '@material-ui/core/Collapse'; class PipelineEditor extends Component { - constructor(props) { super(props); this.state = { @@ -63,6 +63,7 @@ class PipelineEditor extends Component { [name, value] ] + // @TODO: Restore toggles on tabs // if (name == "functional.enabled") { // this.setState({ tab: value ? 1 : 0 }); // props.push(["derivatives.enabled", value]) @@ -71,14 +72,23 @@ class PipelineEditor extends Component { this.props.onChange(props) } + render() { - const { classes, onChange, configuration } = this.props - const { tab } = this.state + const { classes, onChange, configuration } = this.props; + const { tab } = this.state; + + // Set the sequence of tabs to display. + const tabSequence = Array.from(new Set([ + 'pipeline_setup', // general setup first + ...cardSteps, // the steps shown on the cards + ...configuration.keySeq().toJS() // all the rest of the steps + ])); const disable = (event) => { event.stopPropagation() } const entry = configuration.getIn([tab]); + return ( <> { - configuration.keySeq().toJS().map((k) => ( + tabSequence.map((k) => ( )) } From 0de534e66d6af0d88917cab0f268f4766ffd8134 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Jul 2021 12:40:25 -0400 Subject: [PATCH 57/66] :adhesive_bandage: Keep values immutable while modifying keys --- app/components/RoiPaths.jsx | 5 +++-- app/components/TextField.jsx | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/components/RoiPaths.jsx b/app/components/RoiPaths.jsx index 3dd81edf..6866644d 100644 --- a/app/components/RoiPaths.jsx +++ b/app/components/RoiPaths.jsx @@ -135,8 +135,9 @@ class ROITextField extends CustomTextField { state = { path: this.props.entry[0] }; roiKeydown = (e, disableCheckboxes, entry, handleChange, config) => { - disableCheckboxes(false); - this.handleKeyDown(e, entry, handleChange, config); + this.handleKeyDown( + e, entry, handleChange, config, disableCheckboxes + ); } exitTextBox = (e, disableCheckboxes, entry, handleChange, config) => { diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index ffd9c040..b5128576 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -44,12 +44,23 @@ class CustomTextField extends PureComponent { } - handleKeyDown = (event, entry, handleChange, config) => { + /** Handle keydowns in TextFields. Enter saves, everything else modifies local state. + * @param {object} event + * @param {array} entry + * @param {function} handleChange + * @param {Immutable.Map} config + * @param {function} checkboxesCallback + */ + handleKeyDown = (event, entry, handleChange, config, checkboxesCallback) => { if (event.key === 'Enter') { this.handleChangedPath(event, entry, handleChange, config); + if (checkboxesCallback != undefined) { + checkboxesCallback(false); + } } else { - console.log(event); - console.log(this.state); + if (checkboxesCallback != undefined) { + checkboxesCallback(true); + } this.changePath(event); } } From c0b5f1c48868a9cbbf58b5f7b269881136487ab9 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Jul 2021 13:54:39 -0400 Subject: [PATCH 58/66] :bug: Prevent local state from being reverted on save --- app/components/RoiPaths.jsx | 2 +- app/components/TextField.jsx | 23 ++++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/components/RoiPaths.jsx b/app/components/RoiPaths.jsx index 6866644d..0022ac0a 100644 --- a/app/components/RoiPaths.jsx +++ b/app/components/RoiPaths.jsx @@ -156,7 +156,7 @@ class ROITextField extends CustomTextField { fullWidth={ fullWidth || true } name={ `${fullKey}` } onChange={ (e) => this.changePath(e) } - onKeyDown={ (e) => this.roiKeydown(e, disableCheckboxes, entry, handleChange, config) } + onKeyDown={ (e) => this.roiKeydown(e, disableCheckboxes, entry, config) } onBlur={ (e) => this.exitTextBox(e, disableCheckboxes, entry, handleChange, config) } onFocus={ () => disableCheckboxes(true) } value={ this.state.path } diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index b5128576..fe606ac7 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -16,7 +16,7 @@ class CustomTextField extends PureComponent { * @param {object} values The event object * @param {string} values.target.name * @param {string} values.target.value The current value of the text field (not stored yet) - * @param {array} entry exactly 2 entries: key, comma-separated csv analyses + * @param {array|string} entry exactly 2 entries (for ROI entries): key, comma-separated csv analyses, or just a string (for other text entries) * @param {function} handleChange * @param {config} config */ @@ -46,17 +46,16 @@ class CustomTextField extends PureComponent { /** Handle keydowns in TextFields. Enter saves, everything else modifies local state. * @param {object} event - * @param {array} entry - * @param {function} handleChange + * @param {array|string} entry * @param {Immutable.Map} config * @param {function} checkboxesCallback */ - handleKeyDown = (event, entry, handleChange, config, checkboxesCallback) => { + handleKeyDown = (event, entry, config, checkboxesCallback) => { if (event.key === 'Enter') { - this.handleChangedPath(event, entry, handleChange, config); if (checkboxesCallback != undefined) { checkboxesCallback(false); } + event.target.blur(event); } else { if (checkboxesCallback != undefined) { checkboxesCallback(true); @@ -87,14 +86,20 @@ class PipelineTextField extends CustomTextField { state = { path: this.props.value }; - componentDidUpdate(prevProps) { + /** Make sure we our local change isn't reverted by the save. */ + getSnapshotBeforeUpdate(prevProps, prevState) { + return prevState.path; + } + + /** Update the text in the TextField when the config is updated. */ + componentDidUpdate(prevProps, prevState, snapshot) { if (prevProps.value !== this.props.value) { - this.setState({ path: this.props.value }); + this.setState({ path: snapshot }); } } render() { - const { name, onChange } = this.props; + const { name, onChange, value } = this.props; return ( this.changePath(e) } - onKeyDown={ (e) => this.handleKeyDown(e, this.state.path, onChange) } + onKeyDown={ (e) => this.handleKeyDown(e, this.state.path) } onBlur={ (e) => this.handleChangedPath(e, this.state.path, onChange) } /> ) From 7af3bab182b6df0c36bd6be0367dba933f0a3803 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Jul 2021 15:57:11 -0400 Subject: [PATCH 59/66] :children_crossing: Disable fields in default pipelines --- app/components/List.jsx | 91 ++++++++++++------- app/components/OnOffSwitch.jsx | 4 +- app/components/RoiPaths.jsx | 50 +++++++--- app/components/TextField.jsx | 28 +++++- app/components/TristateSwitch.js | 2 - app/containers/PipelinePage.js | 14 +-- app/containers/pipeline/PipelineEditor.js | 28 +++++- .../pipeline/parts/PipelinePart.jsx | 55 ++++++++--- 8 files changed, 198 insertions(+), 74 deletions(-) diff --git a/app/components/List.jsx b/app/components/List.jsx index 6b237a26..e75882fa 100644 --- a/app/components/List.jsx +++ b/app/components/List.jsx @@ -40,17 +40,20 @@ class OnOffSwitchListItem extends PureComponent { /** Function to call on change. */ onChange: PropTypes.func.isRequired, /** Regular expression for help field (deprecated). */ - regex: PropTypes.instanceOf(RegExp) + regex: PropTypes.instanceOf(RegExp), + /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool } render() { const { - chain, entry, handleDelete, i, item, label, name, onChange, regex + chain, entry, handleDelete, i, isDefault, item, label, name, onChange, + regex } = this.props; return ( this.togglePair(e, onChange)} @@ -58,11 +61,14 @@ class OnOffSwitchListItem extends PureComponent { checked={ item } /> - { - handleDelete( - chain, name, i, onChange - ); - }}> + { + handleDelete( + chain, name, i, onChange + ); + } } + disabled={ isDefault } + > @@ -89,14 +95,16 @@ class CpacTextListItem extends PureComponent { ]).isRequired, /** Functions to call on change. */ onChange: PropTypes.func.isRequired, - handlers: PropTypes.objectOf(PropTypes.func).isRequired + handlers: PropTypes.objectOf(PropTypes.func).isRequired, + /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool } state = { item: this.props.item }; render() { const { - chain, handlers, i, inputType, item, label, name, onChange + chain, handlers, i, inputType, isDefault, item, label, name, onChange } = this.props; return ( @@ -106,23 +114,29 @@ class CpacTextListItem extends PureComponent { name={`${name}.${i}`} type={inputType} value={item} - onChange={onChange} + { ...{ isDefault, onChange } } /> { item == '' ? null : ( - { - handlers.handleDuplicate( - chain, name, i, onChange - ); - }}> + { + handlers.handleDuplicate( + chain, name, i, onChange + ); + } } + > ) } - { - handlers.handleDelete( - chain, name, i, onChange - ); - }}> + { + handlers.handleDelete( + chain, name, i, onChange + ); + }} + > @@ -153,20 +167,23 @@ class CpacListItem extends PureComponent { item: PropTypes.oneOfType([ PropTypes.bool, PropTypes.number, - PropTypes.string + PropTypes.string, + PropTypes.instanceOf(Immutable.Map) ]).isRequired, /** Change methods */ handleDelete: PropTypes.func.isRequired, handleDuplicate: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired, /** Inherited style */ - classes: PropTypes.object + classes: PropTypes.object, + /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool } render() { const { - chain, classes, entry, handleDelete, handleDuplicate, i, item, label, - level, name, onChange, parents + chain, classes, entry, handleDelete, handleDuplicate, i, isDefault, + item, label, level, name, onChange, parents } = this.props; const handlers = { handleDelete: handleDelete, @@ -179,7 +196,8 @@ class CpacListItem extends PureComponent { return ( @@ -187,14 +205,18 @@ class CpacListItem extends PureComponent { case "number": return ( ) case "string": return ( ) @@ -206,7 +228,7 @@ class CpacListItem extends PureComponent { return ( = 2) ) ? null : (<> diff --git a/app/components/OnOffSwitch.jsx b/app/components/OnOffSwitch.jsx index fdf9680b..c7d98cee 100644 --- a/app/components/OnOffSwitch.jsx +++ b/app/components/OnOffSwitch.jsx @@ -24,7 +24,7 @@ class OnOffSwitch extends PureComponent { } render() { - const { checked, label, name, onChange, regex } = this.props; + const { checked, isDefault, label, name, onChange, regex } = this.props; switch (regex) { case null: @@ -37,6 +37,7 @@ class OnOffSwitch extends PureComponent { checked={checked} onChange={onChange} color="primary" + disabled={ isDefault } /> @@ -57,6 +58,7 @@ class OnOffSwitch extends PureComponent { checked={checked} onChange={onChange} color="primary" + disabled={ isDefault } /> diff --git a/app/components/RoiPaths.jsx b/app/components/RoiPaths.jsx index 0022ac0a..2d21d1c6 100644 --- a/app/components/RoiPaths.jsx +++ b/app/components/RoiPaths.jsx @@ -50,7 +50,11 @@ class RoiCheckbox extends PureComponent { /** The path to the specified ROI image */ roiPath: PropTypes.string.isRequired, /** Method to update the state of the checkbox's parent table */ - updateState: PropTypes.func.isRequired + updateState: PropTypes.func.isRequired, + /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool, + /** Should this checkbox be disabled now? */ + disabled: PropTypes.bool } keyArray = this.props.fullKey.split('.'); @@ -58,7 +62,7 @@ class RoiCheckbox extends PureComponent { state = { checked: this.entry.split(',').map(item => item.trim()).includes(this.props.option), - disabled: this.props.disabled + disabled: this.props.isDefault || this.props.disabled } componentDidUpdate(prevProps) { @@ -100,14 +104,16 @@ class RoiCheckbox extends PureComponent { } render() { - const { config, disabled, roiPath, fullKey, option, onChange } = this.props; + const { config, disabled, fullKey, isDefault, option, onChange, roiPath } = this.props; const { checked } = this.state; return ( this.handleChangedOption(e, config, option, roiPath, onChange)} - checked={checked} - disabled={disabled} + name={ `${fullKey}["${this.state.entry}"]` } + onChange={ (e) => this.handleChangedOption( + e, config, option, roiPath, onChange + ) } + checked={ checked } + disabled={ isDefault || disabled } /> ) } @@ -129,7 +135,9 @@ class ROITextField extends CustomTextField { /** 2-element array: editable text to display, comma-delimited analyses */ entry: PropTypes.arrayOf(PropTypes.string).isRequired, /** Method to enable and disable checkboxes in parent table */ - disableCheckboxes: PropTypes.func.isRequired + disableCheckboxes: PropTypes.func.isRequired, + /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool } state = { path: this.props.entry[0] }; @@ -148,7 +156,7 @@ class ROITextField extends CustomTextField { render() { const { config, disableCheckboxes, entry, fullKey, fullWidth, handleChange, - helperText + isDefault, helperText } = this.props; return ( @@ -160,6 +168,7 @@ class ROITextField extends CustomTextField { onBlur={ (e) => this.exitTextBox(e, disableCheckboxes, entry, handleChange, config) } onFocus={ () => disableCheckboxes(true) } value={ this.state.path } + disabled={ isDefault } { ...{ helperText } } /> ) @@ -176,7 +185,14 @@ class RoiPaths extends PureComponent { /** Sequence of keys from top of pipeline configuration leading up to but not including `configKey`. */ parents: PropTypes.arrayOf(PropTypes.string).isRequired, /** Headings for the checkboxes in the table of ROI paths */ - validOptions: PropTypes.arrayOf(PropTypes.string).isRequired + validOptions: PropTypes.arrayOf(PropTypes.string).isRequired, /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool + } + + static defaultProps = { + classes: {}, + help: '', + regex: '' } /** Put new masks at the end of GUI list @@ -258,7 +274,10 @@ class RoiPaths extends PureComponent { } render() { - const { config, configKey, parents, onChange, validOptions, classes={}, help="", regex="" } = this.props; + const { + classes, config, configKey, help, isDefault, onChange, parents, + regex, validOptions + } = this.props; const fullKey = [...parents, configKey].join('.'); return ( @@ -297,14 +316,16 @@ class RoiPaths extends PureComponent { fullKey, config, entry, onChange ) } - disabled={ this.state.checkboxesDisabled } + disabled={ + isDefault || this.state.checkboxesDisabled + } > @@ -316,6 +337,7 @@ class RoiPaths extends PureComponent { config, roiPath, fullKey, + isDefault, onChange, option, updateState @@ -335,7 +357,7 @@ class RoiPaths extends PureComponent { ) } - { this.state.sortedPaths.includes('') ? null : ( + { isDefault || this.state.sortedPaths.includes('') ? null : ( this.addMask(fullKey, config, onChange)}> diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index fe606ac7..04b97078 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -4,6 +4,25 @@ import TextField from '@material-ui/core/TextField'; /** Text field that updates on exiting the field or on pressing `Enter` rather than on every keystroke. */ class CustomTextField extends PureComponent { + static propTypes = { + /** Passed through to Material TextField */ + fullWidth: PropTypes.bool, + label: PropTypes.string, + margin: PropTypes.string, + variant: PropTypes.string, + /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this field. */ + name: PropTypes.string.isRequired, + /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool, + /** Function to call on change completion (pressing `Enter` or leaving field). */ + onChange: PropTypes.func.isRequired, + /** Editable text or number to display */ + value: PropTypes.oneOfType([ + PropTypes.number, + PropTypes.string + ]) + } + /** Manages the value in local state until user presses `Enter` or leaves the field. * @param {object} values The event object * @param {string} values.target.value The current value of the text field (not stored yet) @@ -75,6 +94,8 @@ class PipelineTextField extends CustomTextField { variant: PropTypes.string, /** Dot-delimited sequence of keys from the top of the overall pipeline configuration to this field. */ name: PropTypes.string.isRequired, + /** Is this a default, immutable pipeline? */ + isDefault: PropTypes.bool, /** Function to call on change completion (pressing `Enter` or leaving field). */ onChange: PropTypes.func.isRequired, /** Editable text or number to display */ @@ -99,11 +120,14 @@ class PipelineTextField extends CustomTextField { } render() { - const { name, onChange, value } = this.props; + const { name, isDefault, onChange, value } = this.props; + const passthrough = { ...this.props }; + delete passthrough.isDefault; return ( this.changePath(e) } diff --git a/app/components/TristateSwitch.js b/app/components/TristateSwitch.js index 9b0e0dc0..a1a89fac 100644 --- a/app/components/TristateSwitch.js +++ b/app/components/TristateSwitch.js @@ -71,8 +71,6 @@ class TriSwitchBase extends React.Component { handleInputChange = event => { const checked = event.target.checked; - console.log(event) - if (!this.isControlled) { this.setState({ checked }); } diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index 3a228142..aee18f97 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -81,7 +81,7 @@ class PipelinePage extends Component { this.state = { dirty, version, - default: isADefault(pipeline.get('id')), + isDefault: isADefault(pipeline.get('id')), configuration: pipeline.getIn(['versions', version, 'configuration']) } } @@ -146,7 +146,7 @@ class PipelinePage extends Component { handleChangedValue = memoizeOne(this.changedValue); handleChange = (values) => { - if (this.state.default) { + if (this.state.isDefault) { return } @@ -196,7 +196,7 @@ class PipelinePage extends Component { } handleTitleClick = () => { - if (this.state.default) { + if (this.state.isDefault) { return } this.setState({ @@ -217,7 +217,7 @@ class PipelinePage extends Component { } toggleTitleHoverState(state) { - if (this.state.default) { + if (this.state.isDefault) { return } return { @@ -250,7 +250,7 @@ class PipelinePage extends Component { onMouseLeave={this.handleTitleHover} onClick={this.handleTitleClick} style={{ - cursor: this.state.default ? '' : 'pointer', + cursor: this.state.isDefault ? '' : 'pointer', }} > { @@ -301,12 +301,12 @@ class PipelinePage extends Component { this.state.configuration ? ( - { this.state.default ? + { this.state.isDefault ?

You cannot change the default template! Please, duplicate it to create your own pipeline.
: null } - + ) : diff --git a/app/containers/pipeline/PipelineEditor.js b/app/containers/pipeline/PipelineEditor.js index 57216d4d..e4084520 100644 --- a/app/containers/pipeline/PipelineEditor.js +++ b/app/containers/pipeline/PipelineEditor.js @@ -1,4 +1,6 @@ import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import Immutable from 'immutable'; import { withStyles } from '@material-ui/core'; @@ -33,7 +35,24 @@ import Switch from '@material-ui/core/Switch'; import Collapse from '@material-ui/core/Collapse'; +/** An interactive component to view/edit a pipeline configuration. */ class PipelineEditor extends Component { + static propTypes = { + /** Inherited style. */ + classes: PropTypes.object.isRequired, + /** Immutable Map of configuration to render. */ + configuration: PropTypes.instanceOf(Immutable.Map).isRequired, + /** Functions to handle changes to this component. */ + onChange: PropTypes.func.isRequired, + onSave: PropTypes.func, + /** Is this a default pipeline that should not be editable? */ + isDefault: PropTypes.bool + } + + static defaultProps = { + isDefault: false + } + constructor(props) { super(props); this.state = { @@ -74,7 +93,7 @@ class PipelineEditor extends Component { render() { - const { classes, onChange, configuration } = this.props; + const { classes, configuration, isDefault, onChange } = this.props; const { tab } = this.state; // Set the sequence of tabs to display. @@ -105,7 +124,12 @@ class PipelineEditor extends Component { } - + ); diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index aaa654ac..ddd7e436 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -72,7 +72,9 @@ class PipelinePart extends PureComponent { }); render() { - const { classes, configuration, onChange, parents, level } = this.props; + const { + classes, configuration, isDefault, level, onChange, parents + } = this.props; switch (Immutable.Map.isMap(configuration)) { case true: @@ -82,17 +84,33 @@ class PipelinePart extends PureComponent { switch (entry[0]) { // handle objects with custom keys case "tse_roi_paths": return ( - + ) case "sca_roi_paths": return ( - + ) default: // all others if (Immutable.List.isList(entry[1])) { return ( @@ -109,7 +127,12 @@ class PipelinePart extends PureComponent { - + @@ -122,7 +145,7 @@ class PipelinePart extends PureComponent { case 'boolean': return ( @@ -137,10 +160,13 @@ class PipelinePart extends PureComponent { help="" fullWidth > @@ -156,11 +182,14 @@ class PipelinePart extends PureComponent { help="" fullWidth > @@ -184,10 +213,10 @@ class PipelinePart extends PureComponent { case 'FROM': return ( ) From 8ab22c4116e2372fea9e28b9b9313f2432113250 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Jul 2021 16:06:57 -0400 Subject: [PATCH 60/66] :bug: default empty lists to strings --- app/components/List.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/components/List.jsx b/app/components/List.jsx index e75882fa..fd77f1cd 100644 --- a/app/components/List.jsx +++ b/app/components/List.jsx @@ -288,15 +288,16 @@ class CpacList extends PureComponent { handleNew = (chain, name, onChange) => { let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); switch (typeof(newList[0])) { - case 'string': - newList.push(''); - break; case 'boolean': newList.push(!newList[0]); break; case 'number': newList.push(0); break; + case 'string': + default: + newList.push(''); + break; } this.updateList(name, newList, onChange); } From 5031134f202f1390947340232ebb04d2d9aea198 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Jul 2021 17:25:31 -0400 Subject: [PATCH 61/66] :construction: (WIP) Handle Regressors --- app/components/List.jsx | 19 ++++---- app/components/Regressor.jsx | 92 ++++++++++++++++++++++++++++++++++++ app/components/icons.js | 1 + 3 files changed, 104 insertions(+), 8 deletions(-) create mode 100644 app/components/Regressor.jsx diff --git a/app/components/List.jsx b/app/components/List.jsx index fd77f1cd..64e419e9 100644 --- a/app/components/List.jsx +++ b/app/components/List.jsx @@ -21,6 +21,7 @@ import CustomPropTypes from 'components/PropTypes'; import OnOffSwitch from 'components/OnOffSwitch'; import PipelinePart, { formatLabel } from 'containers/pipeline/parts/PipelinePart'; import PipelineTextField from 'components/TextField'; +import RegressorCard, { emptyRegressor } from 'components/Regressor'; /** A Boolean toggle component within a list. */ class OnOffSwitchListItem extends PureComponent { @@ -226,14 +227,11 @@ class CpacListItem extends PureComponent { } } else { return ( - - - + ) } } @@ -288,6 +286,9 @@ class CpacList extends PureComponent { handleNew = (chain, name, onChange) => { let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); switch (typeof(newList[0])) { + case 'object': + newList.push(emptyRegressor); + break; case 'boolean': newList.push(!newList[0]); break; @@ -310,6 +311,8 @@ class CpacList extends PureComponent { const chain = [...parents, entry[0]]; const name = chain.join('.'); + console.log(this.props.configuration.getIn([chain[chain.length - 1]]).toJS()[0]) + return ( diff --git a/app/components/Regressor.jsx b/app/components/Regressor.jsx new file mode 100644 index 00000000..0376748b --- /dev/null +++ b/app/components/Regressor.jsx @@ -0,0 +1,92 @@ +import React, { PureComponent } from 'react'; +import PropTypes from 'prop-types'; + +import Avatar from '@material-ui/core/Avatar'; +import Card from '@material-ui/core/Card'; +import CardContent from '@material-ui/core/CardContent'; +import CardHeader from '@material-ui/core/CardHeader'; + +import { + FilterBWIcon +} from './icons'; + +const emptyRegressor = { + 'Name': '', + 'Motion': { + 'include_delayed': false, + 'include_squared': false, + 'include_delayed_squared': false + }, + 'aCompCor': { + 'summary': { + 'method': '', + 'components': 0 + }, + 'tissues': [''], + 'extraction_resolution': 0 + }, + 'CerebrospinalFluid': { + 'summary': '', + 'extraction_resolution': 0, + 'erode_mask': false + }, + 'GlobalSignal': { + 'summary': '' + }, + 'PolyOrt': { + 'degree': 0 + }, + 'Bandpass': { + 'bottom_frequency': 0.0, + 'top_frequency': 0., + 'method': '' + } +} + +/** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ +class RegressorCard extends PureComponent { + // static propTypes = { + // /** Inherited style */ + // classes: PropTypes.object, + // /** Methods for mutating array of pipelines */ + // onDelete: PropTypes.func.isRequired, + // onDuplicate: PropTypes.func.isRequired, + // /** A pipeline configuration */ + // pipeline: PropTypes.instanceOf(Immutable.Map).isRequired, + // /** Routing props */ + // history: PropTypes.object, + // location: PropTypes.object, + // match: PropTypes.object + // } + + // handleOpen = (pipeline) => { + // this.props.history.push(`/pipelines/${pipeline}`) + // } + + render() { + const { chain, classes, level, isDefault, item, onChange, parents } = this.props + console.log(chain); + console.log(item); + console.log(parents); + + return ( + + + + + } + title={ item.getIn(['Name']) } + subheader={'Regressor'} + /> + + {JSON.stringify(item.toJS())} + + + ) + } +} + +export default RegressorCard; +export { emptyRegressor }; \ No newline at end of file diff --git a/app/components/icons.js b/app/components/icons.js index 4d1c24d0..7008e7c1 100644 --- a/app/components/icons.js +++ b/app/components/icons.js @@ -46,6 +46,7 @@ export { default as AdvancedConfigIcon } from '@material-ui/icons/SettingsApplic export { default as FeedbackIcon } from '@material-ui/icons/Feedback'; export { default as GroupIcon } from '@material-ui/icons/Group'; export { default as BulletIcon } from '@material-ui/icons/Lens'; +export { default as FilterBWIcon } from '@material-ui/icons/FilterBAndW'; // import createSvgIcon from '../utils/createSvgIcon' // export const BrainIcon = createSvgIcon( From a5a5d4188ac94be9301e6c3ad52e45477d9fd1ad Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Mon, 19 Jul 2021 17:19:51 -0400 Subject: [PATCH 62/66] fixup! :construction: (WIP) Handle Regressors --- app/components/List.jsx | 4 +- app/components/Regressor.jsx | 92 -- app/containers/PipelinePage.js | 10 +- .../pipeline/parts/PipelinePart.jsx | 9 + app/containers/pipeline/parts/Regressor.jsx | 1018 +++++++++++++++++ 5 files changed, 1037 insertions(+), 96 deletions(-) delete mode 100644 app/components/Regressor.jsx create mode 100644 app/containers/pipeline/parts/Regressor.jsx diff --git a/app/components/List.jsx b/app/components/List.jsx index 64e419e9..a92522f7 100644 --- a/app/components/List.jsx +++ b/app/components/List.jsx @@ -21,7 +21,7 @@ import CustomPropTypes from 'components/PropTypes'; import OnOffSwitch from 'components/OnOffSwitch'; import PipelinePart, { formatLabel } from 'containers/pipeline/parts/PipelinePart'; import PipelineTextField from 'components/TextField'; -import RegressorCard, { emptyRegressor } from 'components/Regressor'; +import RegressorCard, { emptyRegressor } from 'containers/pipeline/parts/Regressor'; /** A Boolean toggle component within a list. */ class OnOffSwitchListItem extends PureComponent { @@ -311,8 +311,6 @@ class CpacList extends PureComponent { const chain = [...parents, entry[0]]; const name = chain.join('.'); - console.log(this.props.configuration.getIn([chain[chain.length - 1]]).toJS()[0]) - return ( diff --git a/app/components/Regressor.jsx b/app/components/Regressor.jsx deleted file mode 100644 index 0376748b..00000000 --- a/app/components/Regressor.jsx +++ /dev/null @@ -1,92 +0,0 @@ -import React, { PureComponent } from 'react'; -import PropTypes from 'prop-types'; - -import Avatar from '@material-ui/core/Avatar'; -import Card from '@material-ui/core/Card'; -import CardContent from '@material-ui/core/CardContent'; -import CardHeader from '@material-ui/core/CardHeader'; - -import { - FilterBWIcon -} from './icons'; - -const emptyRegressor = { - 'Name': '', - 'Motion': { - 'include_delayed': false, - 'include_squared': false, - 'include_delayed_squared': false - }, - 'aCompCor': { - 'summary': { - 'method': '', - 'components': 0 - }, - 'tissues': [''], - 'extraction_resolution': 0 - }, - 'CerebrospinalFluid': { - 'summary': '', - 'extraction_resolution': 0, - 'erode_mask': false - }, - 'GlobalSignal': { - 'summary': '' - }, - 'PolyOrt': { - 'degree': 0 - }, - 'Bandpass': { - 'bottom_frequency': 0.0, - 'top_frequency': 0., - 'method': '' - } -} - -/** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ -class RegressorCard extends PureComponent { - // static propTypes = { - // /** Inherited style */ - // classes: PropTypes.object, - // /** Methods for mutating array of pipelines */ - // onDelete: PropTypes.func.isRequired, - // onDuplicate: PropTypes.func.isRequired, - // /** A pipeline configuration */ - // pipeline: PropTypes.instanceOf(Immutable.Map).isRequired, - // /** Routing props */ - // history: PropTypes.object, - // location: PropTypes.object, - // match: PropTypes.object - // } - - // handleOpen = (pipeline) => { - // this.props.history.push(`/pipelines/${pipeline}`) - // } - - render() { - const { chain, classes, level, isDefault, item, onChange, parents } = this.props - console.log(chain); - console.log(item); - console.log(parents); - - return ( - - - - - } - title={ item.getIn(['Name']) } - subheader={'Regressor'} - /> - - {JSON.stringify(item.toJS())} - - - ) - } -} - -export default RegressorCard; -export { emptyRegressor }; \ No newline at end of file diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index aee18f97..26058b24 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -112,7 +112,14 @@ class PipelinePage extends Component { changedValue = (key, value) => { if (typeof key == "string") { key = key.split('.') - } + } + + console.log(key); + console.log(value); + + if (isImmutable(value)) { + console.log(value.toJS()); + } let configuration = this.state.configuration; // Toggle both if there are two entries in a Boolean list @@ -146,6 +153,7 @@ class PipelinePage extends Component { handleChangedValue = memoizeOne(this.changedValue); handleChange = (values) => { + console.log(values); if (this.state.isDefault) { return } diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index ddd7e436..7caaf787 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -16,6 +16,8 @@ import Help from 'components/Help'; import OnOffSwitch from 'components/OnOffSwitch'; import RoiPaths from 'components/RoiPaths'; +import NuisanceRegression from './Regressor'; + export const formatLabel = (label) => { const specialCasings = { afni: "AFNI", @@ -82,6 +84,13 @@ class PipelinePart extends PureComponent { <> { configuration.entrySeq().map((entry) => { switch (entry[0]) { // handle objects with custom keys + case "Regressors": + return ( + + ) case "tse_roi_paths": return ( + + + + { name } + + + + + { summary ? ( + <> + + + + Cosine + + + + + + PC + Detrended PC + Mean + Norm Mean + Detrended Norm Mean + + + + { + regressor.getIn([key, 'summary', 'method']) == 'PC' || + regressor.getIn([key, 'summary', 'method']) == 'DetrendPC' + ? ( + + + + ) : null } + + ) : null } + + {custom} + + { extraction ? ( + <> + + mm, + }} + /> + + + + + + + + ) : null } + + { derivatives ? ( + <> + + + + + + + + + + + + + + + + + ) : null } + + + + ) + } +} + + +/** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ +class RegressorCard extends PureComponent { + // static propTypes = { + // /** Inherited style */ + // classes: PropTypes.object, + // /** Methods for mutating array of pipelines */ + // onDelete: PropTypes.func.isRequired, + // onDuplicate: PropTypes.func.isRequired, + // /** A pipeline configuration */ + // pipeline: PropTypes.instanceOf(Immutable.Map).isRequired, + // /** Routing props */ + // history: PropTypes.object, + // location: PropTypes.object, + // match: PropTypes.object + // } + + // handleOpen = (pipeline) => { + // this.props.history.push(`/pipelines/${pipeline}`) + // } + + render() { + const { chain, classes, level, isDefault, item, onChange, parents } = this.props + console.log(chain); + console.log(item); + console.log(parents); + + return ( + + + + + } + title={ item.getIn(['Name']) } + subheader={'Regressor'} + /> + + {JSON.stringify(item.toJS())} + + + ) + } +} + +class RegressorListItem extends PureComponent { + + render() { + const { handlers, i, regressor } = this.props; + const regressorName = regressor.getIn(['Name']); + const regressorFormula = ({ + handlers.getRegressorLabel(regressor.toJS()).reduce((result, child, index, children) => { + if (index < children.length - 1) { + return result.concat([child, , ]) + } + return result.concat(child) + }, []) + }) + + return ( + () => handlers.handleEdit(regi))(i)}> + { regressorName ? + : + + } + + () => handlers.handleEdit(regi))(i)}> + + + () => handlers.handleDuplicate(regi))(i)}> + + + () => handlers.handleDelete(regi))(i)}> + + + + + ) + } + +} + +/** Nusiance Regression component ported forward from 1.6+ with minimal changes. This component was more specific than the documentation in the default pipeline at the time of the GUI refactor from 1.6 to 1.8. */ +class NuisanceRegression extends PureComponent { + static propTypes = { + //** Pipelin configuration */ + configuration: PropTypes.instanceOf(Immutable.Map), + // /** Regressor to render */ + // regressor: PropTypes.object, + // /** Regresor index */ + // i: PropTypes.number.isRequired, + // /** Key for rendered regressor */ + // regressorKey: PropTypes.string.isRequired, + // /** Text to display for regressor name */ + // name: PropTypes.string.isRequired, + // /** */ + // derivatives: PropTypes.bool, + // summary: PropTypes.bool, + // extraction: PropTypes.bool, + // /** */ + // custom: PropTypes.node, + // /** Inherited style */ + // classes: PropTypes.object, + /** Method for mutating regressor in pipeline config */ + onChange: PropTypes.func.isRequired, + } + + state = { + editRegressor: null + } + + static styles = theme => ({ + header: { padding: 0, minHeight: 10 }, + content: { padding: 0, minHeight: 10, margin: 0 }, + details: { padding: '0 10px 0 10px', minHeight: 10 }, + details_box: { margin: 0 }, + footer: { textAlign: 'right', padding: theme.spacing(2) } + }); + + /** Helper to pass key, value to updater. + * @param {Immtable.List} change updated list of regressors + * @param {function} onChange + */ + handleChange = ((change, onChange) => { + onChange({ + target: { + name: regressorsInPipelineKey, + value: change + } + }); + }); + + handleEdit = (regi) => { + this.setState({ editRegressor: regi }); + }; + + handleNew = () => { + const { classes, configuration, onChange } = this.props + console.log(configuration.toJS()) + let regressors = configuration.getIn(['Regressors']); + regressors = regressors.push(fromJS({ + ...original.toJS(), + name: `Regressor ${regressors.size}` + })); + console.log(regressors.toJS()); + console.log(onChange); + console.log(this); + console.log(this.props); + + this.handleChange(regressors, onChange); + this.setState({ editRegressor: regressors.size - 1 }); + }; + + handleDuplicate = (regi) => { + const { classes, configuration, onChange } = this.props + const regressors = + configuration.getIn(['Regressors']).push( + configuration.getIn([...regressorsInPipelineKey, regi]) + ) + + this.handleChange(regressors, onChange); + }; + + handleDelete = (regi) => { + const { classes, configuration, onChange } = this.props + const regressors = configuration.getIn(['Regressors']).delete(regi) + + this.handleChange(regressors, onChange); + }; + + handleClose = () => { + this.setState({ + editRegressor: null, + deleteRegressor: null, + }); + }; + + getRegressorLabel = (regressors) => { + const renaming = { + 'WhiteMatter': 'WM', + 'CerebrospinalFluid': 'CSF', + 'GrayMatter': 'GM', + 'GlobalSignal': 'GR', + 'Motion': 'Mot', + 'Bandpass': 'BP', + } + + const censor_renaming = { + 'FD_J': 'FD Jenkinson', + 'FD_P': 'FD Power', + 'DVARS': 'DVARS', + } + + let representation = '' + + const regressor_pieces = [] + for(let reg of [ + 'Motion', 'GlobalSignal', 'WhiteMatter', 'CerebrospinalFluid', + 'GrayMatter','aCompCor', 'tCompCor', 'PolyOrt', 'Bandpass', 'Censor' + ]) { + if (regressors[reg] === undefined) { + continue + } + + if (reg == 'aCompCor') { + if (!regressors[reg]['summary']) { + regressors[reg]['summary'] = { + filter: ' ', + method: 'DetrendPC', + components: 5, + } + } + } + + if (reg == 'tCompCor') { + if (!regressors[reg]['summary']) { + regressors[reg]['summary'] = { + filter: ' ', + method: 'PC', + components: 5, + } + } + } + + const regressor = regressors[reg] + let name = reg + if (renaming[reg] !== undefined) { + name = renaming[reg] + } + + let terms = [`\\textrm{${name}}`] + + if (regressor['include_squared']) { + terms.push(`\\textrm{${name}}^{2}`) + } + if (regressor['include_delayed']) { + terms.push(`\\textrm{${name}}_{t-1}`) + } + if (regressor['include_delayed_squared']) { + terms.push(`\\textrm{${name}}_{t-1}^{2}`) + } + if (regressor['erode_mask']) { + terms.push(`\\textrm{${name}}`) + } + if (regressor['erode_mask_mm']) { + terms.push(`\\textrm{${name}}`) + } + + let regressor_terms = terms.join(' + ') + + if (regressor['tissues']) { + regressor_terms += '\\;(' + regressor_terms += regressor['tissues'].map((tissue) => `\\textrm{${renaming[tissue]}}`).reduce((t, tt) => t + " + " + tt) + regressor_terms += ')' + } + + if (regressor['summary']) { + if (typeof(regressor['summary']) == "object") { + if (regressor.summary.filter) { + regressor_terms += ` ${regressor['summary']['filter']}`; + } + regressor_terms += ` ${regressor['summary']['method']}` + if (['DetrendPC', 'PC'].indexOf(regressor['summary']['method']) > -1) { + regressor_terms += `\\;${regressor['summary']['components']}` + } + } else { + regressor_terms += `\\;\\textrm{${regressor['summary']}}` + } + } + + if (reg == 'PolyOrt') { + regressor_terms += `\\;${regressor['degree']}` + } + + if (reg == 'Bandpass') { + regressor_terms += `\\;${regressor['bottom_frequency'] || 0.00}-${regressor['top_frequency'] || 9999.00}` + } + + if (reg == 'Censor') { + regressor_terms += `\\;\\textrm{${regressor['method']}}\\;\\textrm{${censor_renaming[regressor['threshold']['type']]}}:\\;${regressor['threshold']['value']}` + } + + regressor_pieces.push(regressor_terms) + } + + representation = regressor_pieces.map((p, i) => ) + + if (!representation) { + representation = 'No regressors selected' + } + + return representation; + } + + renderDialogRegressor(regressor, i) { + const { classes, configuration, onChange } = this.props + + return ( + <> + + + + + + + + Tissues + + + + ) } + /> + + + + + + + + + + + + + + + + + + + + + + + + ) } + /> + + + + ) } + /> + + + Hz, + }} + /> + + + Hz, + }} + /> + + + ) } + /> + + + + Kill + Zero + Interpolate + Spike Regression + + + + TRs, + }} + /> + + + TRs, + }} + /> + + + + Framewise Displacement - Jenkinson + Framewise Displacement - Power + DVARS + + + + + ) } + /> + + ) + } + + render() { + const { classes, configuration, onChange } = this.props + + const regressors = configuration.getIn(['Regressors']); + + let regressor = null; + if (this.state.editRegressor !== null) { + regressor = regressors.get(this.state.editRegressor); + } + + return ( + + + + + + Regressors + + + + {`Edit Nuisance Regressor`} + + { + regressor ? + this.renderDialogRegressor(regressor, this.state.editRegressor) : + null + } + + + + + { + regressors.map((regressor, i) => ( + + )) + } + + + + this.handleNew()}> + + + + + + + + + ) + } +} + +export default withStyles(NuisanceRegression.styles)(NuisanceRegression); From a1866e9a54bff08bce7f4252ebeaf830acfff0f7 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Fri, 16 Jul 2021 17:25:31 -0400 Subject: [PATCH 63/66] :recycle: Handle Regressors --- app/components/List.jsx | 17 +- app/components/TextField.jsx | 1 - app/components/icons.js | 1 + app/containers/PipelinePage.js | 3 +- .../pipeline/parts/PipelinePart.jsx | 9 + app/containers/pipeline/parts/Regressor.jsx | 942 ++++++++++++++++++ 6 files changed, 963 insertions(+), 10 deletions(-) create mode 100644 app/containers/pipeline/parts/Regressor.jsx diff --git a/app/components/List.jsx b/app/components/List.jsx index fd77f1cd..a92522f7 100644 --- a/app/components/List.jsx +++ b/app/components/List.jsx @@ -21,6 +21,7 @@ import CustomPropTypes from 'components/PropTypes'; import OnOffSwitch from 'components/OnOffSwitch'; import PipelinePart, { formatLabel } from 'containers/pipeline/parts/PipelinePart'; import PipelineTextField from 'components/TextField'; +import RegressorCard, { emptyRegressor } from 'containers/pipeline/parts/Regressor'; /** A Boolean toggle component within a list. */ class OnOffSwitchListItem extends PureComponent { @@ -226,14 +227,11 @@ class CpacListItem extends PureComponent { } } else { return ( - - - + ) } } @@ -288,6 +286,9 @@ class CpacList extends PureComponent { handleNew = (chain, name, onChange) => { let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); switch (typeof(newList[0])) { + case 'object': + newList.push(emptyRegressor); + break; case 'boolean': newList.push(!newList[0]); break; diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index 04b97078..a3dcd567 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -123,7 +123,6 @@ class PipelineTextField extends CustomTextField { const { name, isDefault, onChange, value } = this.props; const passthrough = { ...this.props }; delete passthrough.isDefault; - return ( { if (typeof key == "string") { key = key.split('.') - } + } + let configuration = this.state.configuration; // Toggle both if there are two entries in a Boolean list diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index ddd7e436..7caaf787 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -16,6 +16,8 @@ import Help from 'components/Help'; import OnOffSwitch from 'components/OnOffSwitch'; import RoiPaths from 'components/RoiPaths'; +import NuisanceRegression from './Regressor'; + export const formatLabel = (label) => { const specialCasings = { afni: "AFNI", @@ -82,6 +84,13 @@ class PipelinePart extends PureComponent { <> { configuration.entrySeq().map((entry) => { switch (entry[0]) { // handle objects with custom keys + case "Regressors": + return ( + + ) case "tse_roi_paths": return ( { + const { i, regressor, regressorKey } = this.props; + const name = `nuisance_corrections.2-nuisance_regression.Regressors.${i}` + if (regressor.keySeq().includes(regressorKey)) { + onChange({target: { + name, + value: regressor.deleteIn([regressorKey]) + }}); + } else { + onChange({target: { + name, + value: regressor.setIn([regressorKey], {}) + }}); + } + } + + render() { + + const { + classes, configuration, custom, derivatives, extraction, i, name, + onChange, regressor, summary + } = this.props; + + if (!regressor) { + return null; + } + + const key = this.props.regressorKey; + const expanded = regressor.keySeq().includes(key); + + return ( + + + this.handleRegressorSwitch(onChange)} + color="primary" + /> + + { name } + + + + + { summary ? ( + <> + + + + Cosine + + + + + + PC + Detrended PC + Mean + Norm Mean + Detrended Norm Mean + + + + { + regressor.getIn([key, 'summary', 'method']) == 'PC' || + regressor.getIn([key, 'summary', 'method']) == 'DetrendPC' + ? ( + + + + ) : null } + + ) : null } + + {custom} + + { extraction ? ( + <> + + mm, + }} + /> + + + + + + + + ) : null } + + { derivatives ? ( + <> + + + + + + + + + + + + + + + + + ) : null } + + + + ) + } +} + +/** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ +class RegressorCard extends PureComponent { + // static propTypes = { + // /** Inherited style */ + // classes: PropTypes.object, + // /** Methods for mutating array of pipelines */ + // onDelete: PropTypes.func.isRequired, + // onDuplicate: PropTypes.func.isRequired, + // /** A pipeline configuration */ + // pipeline: PropTypes.instanceOf(Immutable.Map).isRequired, + // /** Routing props */ + // history: PropTypes.object, + // location: PropTypes.object, + // match: PropTypes.object + // } + + // handleOpen = (pipeline) => { + // this.props.history.push(`/pipelines/${pipeline}`) + // } + + render() { + const { chain, classes, level, isDefault, item, onChange, parents } = this.props; + + return ( + + + + + } + title={ item.getIn(['Name']) } + subheader={'Regressor'} + /> + + {JSON.stringify(item.toJS())} + + + ) + } +} + +class RegressorDialog extends PureComponent { + state = { + regressorName: this.props.regressor.getIn(['Name']) + } + + render() { + const { + classes, configuration, handleClose, onChange, regressor + } = this.props; + const i = this.props.editRegressor; + + return ( + + + {`Edit Nuisance Regressor`} + + + + + + + + + + + + + + + + + + Tissues + + + + ) } + /> + + + + + + + + + + + + + + + + + + + + + + + + ) } + /> + + + + ) } + /> + + + Hz, + }} + /> + + + Hz, + }} + /> + + + ) } + /> + + + + Kill + Zero + Interpolate + Spike Regression + + + + TRs, + }} + /> + + + TRs, + }} + /> + + + + Framewise Displacement - Jenkinson + Framewise Displacement - Power + DVARS + + + + + ) } + /> + + + ) + } +} + +/** One regressor in the list. */ +class RegressorListItem extends PureComponent { + + render() { + const { handlers, i, regressor } = this.props; + const regressorName = regressor.getIn(['Name']); + const regressorFormula = ({ + handlers.getRegressorLabel(regressor.toJS()).reduce((result, child, index, children) => { + if (index < children.length - 1) { + return result.concat([child, , ]) + } + return result.concat(child) + }, []) + }); + + return ( + () => handlers.handleEdit(regi))(i)}> + { regressorName ? + {regressorFormula}} + style={ { padding: '0 115px 0 0' } } + /> : + {regressorFormula}} + style={ { padding: '0 115px 0 0' } } + /> + } + + () => handlers.handleEdit(regi))(i)}> + + + () => handlers.handleDuplicate(regi))(i)}> + + + () => handlers.handleDelete(regi))(i)}> + + + + + ) + } + +} + +/** Nusiance Regression component ported forward from 1.6+ with minimal changes. This component was more specific than the documentation in the default pipeline at the time of the GUI refactor from 1.6 to 1.8. */ +class NuisanceRegression extends PureComponent { + static propTypes = { + //** Pipelin configuration */ + configuration: PropTypes.instanceOf(Immutable.Map), + // /** Regressor to render */ + // regressor: PropTypes.object, + // /** Regresor index */ + // i: PropTypes.number.isRequired, + // /** Key for rendered regressor */ + // regressorKey: PropTypes.string.isRequired, + // /** Text to display for regressor name */ + // name: PropTypes.string.isRequired, + // /** */ + // derivatives: PropTypes.bool, + // summary: PropTypes.bool, + // extraction: PropTypes.bool, + // /** */ + // custom: PropTypes.node, + // /** Inherited style */ + // classes: PropTypes.object, + /** Method for mutating regressor in pipeline config */ + onChange: PropTypes.func.isRequired, + } + + state = { + editRegressor: null + } + + static styles = theme => ({ + header: { padding: 0, minHeight: 10 }, + content: { padding: 0, minHeight: 10, margin: 0 }, + details: { padding: '0 10px 0 10px', minHeight: 10 }, + details_box: { margin: 0 }, + footer: { textAlign: 'right', padding: theme.spacing(2) } + }); + + /** Helper to pass key, value to updater. + * @param {Immtable.List} change updated list of regressors + * @param {function} onChange + */ + handleChange = ((change, onChange) => { + onChange({ + target: { + name: ['nuisance_corrections', '2-nuisance_regression', 'Regressors'], + value: change + } + }); + }); + + handleEdit = (regi) => { + this.setState({ editRegressor: regi }); + }; + + handleNew = () => { + const { classes, configuration, onChange } = this.props + let regressors = configuration.getIn(['Regressors']); + regressors = regressors.push(fromJS({ + Name: `Regressor ${regressors.size + 1}` + })); + + this.handleChange(regressors, onChange); + this.setState({ editRegressor: regressors.size - 1 }); + }; + + handleDuplicate = (regi) => { + const { classes, configuration, onChange } = this.props; + const regressors = + configuration.getIn(['Regressors']).filter(i => i).push( + configuration.getIn(['Regressors', regi]) + ); + this.handleChange(regressors, onChange); + }; + + handleDelete = (regi) => { + const { classes, configuration, onChange } = this.props + const regressors = configuration.getIn(['Regressors']).delete(regi) + + this.handleChange(regressors, onChange); + }; + + handleClose = () => { + this.setState({ + editRegressor: null, + deleteRegressor: null, + }); + }; + + getRegressorLabel = (regressors) => { + const renaming = { + 'WhiteMatter': 'WM', + 'CerebrospinalFluid': 'CSF', + 'GrayMatter': 'GM', + 'GlobalSignal': 'GR', + 'Motion': 'Mot', + 'Bandpass': 'BP', + } + + const censor_renaming = { + 'FD_J': 'FD Jenkinson', + 'FD_P': 'FD Power', + 'DVARS': 'DVARS', + } + + let representation = '' + + const regressor_pieces = [] + for(let reg of [ + 'Motion', 'GlobalSignal', 'WhiteMatter', 'CerebrospinalFluid', + 'GrayMatter','aCompCor', 'tCompCor', 'PolyOrt', 'Bandpass', 'Censor' + ]) { + if (regressors[reg] === undefined) { + continue + } + + if (reg == 'aCompCor') { + if (!regressors[reg]['summary']) { + regressors[reg]['summary'] = { + filter: '', + method: 'DetrendPC', + components: 5, + } + } + } + + if (reg == 'tCompCor') { + if (!regressors[reg]['summary']) { + regressors[reg]['summary'] = { + filter: '', + method: 'PC', + components: 5, + } + } + } + + const regressor = regressors[reg] + let name = reg + if (renaming[reg] !== undefined) { + name = renaming[reg] + } + + let terms = []; + + if (!( + regressor['include_squared'] || + regressor['include_delayed'] || + regressor['include_delayed_squared'] || + regressor['erode_mask'] || + regressor['erode_mask_mm'] + )) { + terms.push(`\\textrm{${name}}`); + } else { + if (regressor['include_squared']) { + terms.push(`\\textrm{${name}}^{2}`); + } + if (regressor['include_delayed']) { + terms.push(`\\textrm{${name}}_{t-1}`); + } + if (regressor['include_delayed_squared']) { + terms.push(`\\textrm{${name}}_{t-1}^{2}`); + } + if (regressor['erode_mask']) { + terms.push(`\\textrm{${name}}_{\\textrm{erode}}`); + } + if (regressor['erode_mask_mm']) { + terms.push(`\\textrm{${name}}_{\\textrm{erode_mm}}`); + } + } + + let regressor_terms = terms.join(' + '); + + if (regressor['tissues']) { + regressor_terms += '\\;('; + regressor_terms += regressor['tissues'].map((tissue) => `\\textrm{${renaming[tissue]}}`).reduce((t, tt) => t + " + " + tt); + regressor_terms += ')'; + } + + if (regressor['summary']) { + if (typeof(regressor['summary']) == "object") { + if (regressor.summary.filter) { + regressor_terms += ` ${regressor['summary']['filter']}`; + } + if (regressor.summary.method && regressor.summary.components) { + regressor_terms += ` ${regressor['summary']['method']}` + if (['DetrendPC', 'PC'].indexOf(regressor['summary']['method']) > -1) { + regressor_terms += `\\;${regressor['summary']['components']}` + } + } + } else { + regressor_terms += `\\;\\textrm{${regressor['summary']}}` + } + } + + if (reg == 'PolyOrt') { + regressor_terms += `\\;${regressor['degree']}` + } + + if (reg == 'Bandpass') { + regressor_terms += `\\;${regressor['bottom_frequency'] || 0.00}-${regressor['top_frequency'] || 9999.00}` + } + + if (reg == 'Censor' && regressor.method && regressor.threshold) { + regressor_terms += `\\;\\textrm{${regressor['method']}}\\;\\textrm{${censor_renaming[regressor['threshold']['type']]}}:\\;${regressor['threshold']['value']}` + } + + regressor_pieces.push(regressor_terms) + } + + representation = regressor_pieces.map((p, i) => ) + + if (!representation) { + representation = 'No regressors selected' + } + + return representation + } + + render() { + const { classes, configuration, onChange } = this.props + + const regressors = configuration.getIn(['Regressors']); + + let regressor = null; + if (this.state.editRegressor !== null) { + regressor = regressors.get(this.state.editRegressor); + } + + return ( + + + + + + Regressors + + + + {`Edit Nuisance Regressor`} + + { + regressor ? + : + null + } + + + + + { + regressors.map((regressor, i) => ( + regressor ? : null + )) + } + + + + this.handleNew()}> + + + + + + + + + ) + } +} + +export default withStyles(NuisanceRegression.styles)(NuisanceRegression); From 145abb7425d58711c16183898c9fbaf52c96c969 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 21 Jul 2021 09:27:01 -0400 Subject: [PATCH 64/66] :memo: Document Regressor GUI components --- app/containers/pipeline/parts/Regressor.jsx | 132 ++++++++------------ 1 file changed, 53 insertions(+), 79 deletions(-) diff --git a/app/containers/pipeline/parts/Regressor.jsx b/app/containers/pipeline/parts/Regressor.jsx index be3e6e54..fca8ab34 100644 --- a/app/containers/pipeline/parts/Regressor.jsx +++ b/app/containers/pipeline/parts/Regressor.jsx @@ -63,7 +63,10 @@ import { DuplicateIcon } from 'components/icons'; -class Regressor extends PureComponent { +/** One signal correction GUI component. + * @TODO This component includes configuration validation information that is not yet encoded in C-PAC. + */ +class SignalCorrection extends PureComponent { static propTypes = { /** Regressor to render */ regressor: PropTypes.object, @@ -73,11 +76,11 @@ class Regressor extends PureComponent { regressorKey: PropTypes.string.isRequired, /** Text to display for regressor name */ name: PropTypes.string.isRequired, - /** */ + /** Boolean values to indicate whether these options are part of this signal correction */ derivatives: PropTypes.bool, summary: PropTypes.bool, extraction: PropTypes.bool, - /** */ + /** Custom component to include in this signal correction */ custom: PropTypes.node, /** Inherited style */ classes: PropTypes.object, @@ -110,7 +113,7 @@ class Regressor extends PureComponent { render() { const { - classes, configuration, custom, derivatives, extraction, i, name, + classes, custom, derivatives, extraction, i, name, onChange, regressor, summary } = this.props; @@ -202,7 +205,7 @@ class Regressor extends PureComponent { ) : null } - {custom} + { custom } { extraction ? ( <> @@ -271,57 +274,30 @@ class Regressor extends PureComponent { } } -/** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ -class RegressorCard extends PureComponent { - // static propTypes = { - // /** Inherited style */ - // classes: PropTypes.object, - // /** Methods for mutating array of pipelines */ - // onDelete: PropTypes.func.isRequired, - // onDuplicate: PropTypes.func.isRequired, - // /** A pipeline configuration */ - // pipeline: PropTypes.instanceOf(Immutable.Map).isRequired, - // /** Routing props */ - // history: PropTypes.object, - // location: PropTypes.object, - // match: PropTypes.object - // } - - // handleOpen = (pipeline) => { - // this.props.history.push(`/pipelines/${pipeline}`) - // } - - render() { - const { chain, classes, level, isDefault, item, onChange, parents } = this.props; - - return ( - - - - - } - title={ item.getIn(['Name']) } - subheader={'Regressor'} - /> - - {JSON.stringify(item.toJS())} - - - ) +/** A modal in which to edit a Regressor. + * @TODO This component includes configuration validation information that is not yet encoded in C-PAC. + * @TODO This component mixes controlled and uncontrolled components. +*/ +class RegressorDialog extends PureComponent { + static propTypes = { + /** Regressor to render */ + regressor: PropTypes.object, + /** Regresor index */ + editRegressor: PropTypes.number.isRequired, + /** Inherited style */ + classes: PropTypes.object, + /** Method for mutating regressor in pipeline config */ + onChange: PropTypes.func.isRequired, + /** Method to close the modal */ + handleClose: PropTypes.func.isRequired } -} -class RegressorDialog extends PureComponent { state = { regressorName: this.props.regressor.getIn(['Name']) } render() { - const { - classes, configuration, handleClose, onChange, regressor - } = this.props; + const { classes, handleClose, onChange, regressor } = this.props; const i = this.props.editRegressor; return ( @@ -348,14 +324,14 @@ class RegressorDialog extends PureComponent { style={ { flexGrow: 1, margin: '10px 0 10px 10px', width: '95%' } } /> - - - - - - ) } /> - ) } /> - ) } /> - ) } /> - ); return ( - () => handlers.handleEdit(regi))(i)}> + () => handlers.handleEdit(regi))(i) + }> { regressorName ? : From eabf89c075c857a3294cf025fa1fb15630948b02 Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 21 Jul 2021 13:45:38 -0400 Subject: [PATCH 65/66] :bug: Fix double-render on first modification of a newly duplicated pipeline --- app/components/List.jsx | 14 ++--- app/components/TextField.jsx | 29 +++------- app/containers/PipelinePage.js | 4 +- .../pipeline/parts/PipelinePart.jsx | 2 +- app/containers/pipeline/parts/Regressor.jsx | 56 +++---------------- app/reducers/main.js | 1 - 6 files changed, 27 insertions(+), 79 deletions(-) diff --git a/app/components/List.jsx b/app/components/List.jsx index a92522f7..370f1178 100644 --- a/app/components/List.jsx +++ b/app/components/List.jsx @@ -21,7 +21,6 @@ import CustomPropTypes from 'components/PropTypes'; import OnOffSwitch from 'components/OnOffSwitch'; import PipelinePart, { formatLabel } from 'containers/pipeline/parts/PipelinePart'; import PipelineTextField from 'components/TextField'; -import RegressorCard, { emptyRegressor } from 'containers/pipeline/parts/Regressor'; /** A Boolean toggle component within a list. */ class OnOffSwitchListItem extends PureComponent { @@ -111,7 +110,7 @@ class CpacTextListItem extends PureComponent { return ( ) } @@ -287,7 +287,7 @@ class CpacList extends PureComponent { let newList = this.props.configuration.getIn([chain[chain.length - 1]]).toJS(); switch (typeof(newList[0])) { case 'object': - newList.push(emptyRegressor); + newList.push({}); break; case 'boolean': newList.push(!newList[0]); diff --git a/app/components/TextField.jsx b/app/components/TextField.jsx index a3dcd567..bfd43bba 100644 --- a/app/components/TextField.jsx +++ b/app/components/TextField.jsx @@ -1,4 +1,4 @@ -import React, { PureComponent } from 'react'; +import React, { PureComponent, useState } from 'react'; import PropTypes from 'prop-types'; import TextField from '@material-ui/core/TextField'; @@ -24,11 +24,11 @@ class CustomTextField extends PureComponent { } /** Manages the value in local state until user presses `Enter` or leaves the field. - * @param {object} values The event object - * @param {string} values.target.value The current value of the text field (not stored yet) + * @param {object} event The event object + * @param {string} event.target.value The current value of the text field (not stored yet) */ - changePath = (values) => { - this.setState({ path: values.target.value }); + changePath = (event) => { + this.setState({ path: event.target.value }); } /** Change the value in the stored pipeline configuration. @@ -40,22 +40,23 @@ class CustomTextField extends PureComponent { * @param {config} config */ handleChangedPath = (values, entry, handleChange, config) => { + const { name, value } = values.target; switch (config) { case null: case undefined: handleChange({ target: { - name: values.target.name, + name, value: entry } }) break; default: let newConfig = config.delete(entry[0]) - newConfig = newConfig.setIn([values.target.value], entry[1]) + newConfig = newConfig.setIn([value], entry[1]) handleChange({ target: { - name: values.target.name, + name, value: newConfig } }) @@ -107,18 +108,6 @@ class PipelineTextField extends CustomTextField { state = { path: this.props.value }; - /** Make sure we our local change isn't reverted by the save. */ - getSnapshotBeforeUpdate(prevProps, prevState) { - return prevState.path; - } - - /** Update the text in the TextField when the config is updated. */ - componentDidUpdate(prevProps, prevState, snapshot) { - if (prevProps.value !== this.props.value) { - this.setState({ path: snapshot }); - } - } - render() { const { name, isDefault, onChange, value } = this.props; const passthrough = { ...this.props }; diff --git a/app/containers/PipelinePage.js b/app/containers/PipelinePage.js index a10d7f2a..803cf85b 100644 --- a/app/containers/PipelinePage.js +++ b/app/containers/PipelinePage.js @@ -103,8 +103,7 @@ class PipelinePage extends Component { this.setState({ dirty, - version, - configuration: pipeline.getIn(['versions', version, 'configuration']) + version }); } } @@ -113,7 +112,6 @@ class PipelinePage extends Component { if (typeof key == "string") { key = key.split('.') } - let configuration = this.state.configuration; // Toggle both if there are two entries in a Boolean list diff --git a/app/containers/pipeline/parts/PipelinePart.jsx b/app/containers/pipeline/parts/PipelinePart.jsx index 7caaf787..e9e5e607 100644 --- a/app/containers/pipeline/parts/PipelinePart.jsx +++ b/app/containers/pipeline/parts/PipelinePart.jsx @@ -87,7 +87,7 @@ class PipelinePart extends PureComponent { case "Regressors": return ( ) diff --git a/app/containers/pipeline/parts/Regressor.jsx b/app/containers/pipeline/parts/Regressor.jsx index c0558852..1ee89891 100644 --- a/app/containers/pipeline/parts/Regressor.jsx +++ b/app/containers/pipeline/parts/Regressor.jsx @@ -274,51 +274,6 @@ class SignalCorrection extends PureComponent { } } -/** A card component to show a pipeline configuration available to view/edit, duplicate, and/or delete. */ -class RegressorCard extends PureComponent { - // static propTypes = { - // /** Inherited style */ - // classes: PropTypes.object, - // /** Methods for mutating array of pipelines */ - // onDelete: PropTypes.func.isRequired, - // onDuplicate: PropTypes.func.isRequired, - // /** A pipeline configuration */ - // pipeline: PropTypes.instanceOf(Immutable.Map).isRequired, - // /** Routing props */ - // history: PropTypes.object, - // location: PropTypes.object, - // match: PropTypes.object - // } - - // handleOpen = (pipeline) => { - // this.props.history.push(`/pipelines/${pipeline}`) - // } - - render() { - const { chain, classes, level, isDefault, item, onChange, parents } = this.props - console.log(chain); - console.log(item); - console.log(parents); - - return ( - - - - - } - title={ item.getIn(['Name']) } - subheader={'Regressor'} - /> - - {JSON.stringify(item.toJS())} - - - ) - } -} - /** A modal in which to edit a Regressor. * @TODO This component includes configuration validation information that is not yet encoded in C-PAC. * @TODO This component mixes controlled and uncontrolled components. @@ -702,7 +657,14 @@ class NuisanceRegression extends PureComponent { content: { padding: 0, minHeight: 10, margin: 0 }, details: { padding: '0 10px 0 10px', minHeight: 10 }, details_box: { margin: 0 }, - footer: { textAlign: 'right', padding: theme.spacing(2) } + footer: { textAlign: 'right', padding: theme.spacing(2) }, + fullWidth: { + width: "100%", + }, + sectionTitle: { + paddingTop: 6, + paddingLeft: 6, + } }); /** Helper to pass key, value to updater. @@ -886,7 +848,7 @@ class NuisanceRegression extends PureComponent { } render() { - const { classes, configuration, onChange } = this.props + const { classes, configuration, onChange } = this.props; const regressors = configuration.getIn(['Regressors']); diff --git a/app/reducers/main.js b/app/reducers/main.js index 98b3e6c1..a40f27fe 100644 --- a/app/reducers/main.js +++ b/app/reducers/main.js @@ -74,7 +74,6 @@ export default function main(state, action) { const { pipeline: id, configuration } = action const i = state.getIn(['config', 'pipelines']) .findIndex((p) => p.get('id') == id); - return state.setIn( ['config', 'pipelines', i, 'versions', '0'], fromJS({ From c7e4e18d4df7aab35f76a9e39581829d5bfdcecf Mon Sep 17 00:00:00 2001 From: Jon Clucas Date: Wed, 28 Jul 2021 15:43:00 -0400 Subject: [PATCH 66/66] =?UTF-8?q?:construction=5Fworker:=20'master'=20?= =?UTF-8?q?=E2=86=92=20'main'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 83e5c62f..0f23b3f6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,7 +28,7 @@ jobs: command: yarn && yarn run link - run: command: | - export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "master" ] && echo "production" || echo "development") + export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "main" ] && echo "production" || echo "development") CSC_LINK=file:///tmp/default.p12 yarn run package:mac - run: command: mv dist dist-macos @@ -48,7 +48,7 @@ jobs: command: yarn && yarn run link - run: command: | - export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "master" ] && echo "production" || echo "development") + export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "main" ] && echo "production" || echo "development") yarn run package:linux - run: command: mv dist dist-linux @@ -68,12 +68,12 @@ jobs: command: yarn && yarn run link - run: command: | - export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "master" ] && echo "production" || echo "development") + export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "main" ] && echo "production" || echo "development") TARGET=electron yarn run build:renderer mv ./app/dist dist-web-electron - run: command: | - export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "master" ] && echo "production" || echo "development") + export NODE_ENV=$([ "${CIRCLE_BRANCH}" == "main" ] && echo "production" || echo "development") TARGET=browser yarn run build:renderer mv ./app/dist dist-web-browser - persist_to_workspace: @@ -104,10 +104,10 @@ jobs: name: Deploy releases command: | VERSION=v`jq -r '.version' package.json` - TAG=$([ "${CIRCLE_BRANCH}" == "master" ] && echo "latest" || echo "nightly") + TAG=$([ "${CIRCLE_BRANCH}" == "main" ] && echo "latest" || echo "nightly") RELEASE_OPTS="" - if [ "${CIRCLE_BRANCH}" != "master" ]; then + if [ "${CIRCLE_BRANCH}" != "main" ]; then RELEASE_OPTS="--pre-release" fi @@ -122,7 +122,7 @@ jobs: git tag "${TAG}" git push origin "${TAG}" -f - if [ "${CIRCLE_BRANCH}" == "master" ]; then + if [ "${CIRCLE_BRANCH}" == "main" ]; then github-release delete -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} --tag "${VERSION}" || true github-release release -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} --tag "${VERSION}" --name "${VERSION}" ${RELEASE_OPTS} github-release upload -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} --tag "${VERSION}" --name "c-pac_gui-${VERSION}-linux-amd64.deb" --file /tmp/workspace/dist-linux/c-pac_gui_*_amd64.deb @@ -160,12 +160,12 @@ jobs: name: Deploy web-version command: | VERSION=v`jq -r '.version' package.json` - TAG=$([ "${CIRCLE_BRANCH}" == "master" ] && echo "latest" || echo "nightly") + TAG=$([ "${CIRCLE_BRANCH}" == "main" ] && echo "latest" || echo "nightly") git clone --single-branch --branch gh-pages git@github.com:${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}.git /tmp/repo cd /tmp/repo - if [ "${CIRCLE_BRANCH}" == "master" ]; then + if [ "${CIRCLE_BRANCH}" == "main" ]; then rm -Rf /tmp/repo/versions/${VERSION} 2> /dev/null | true mkdir -p /tmp/repo/versions/${VERSION} cp -Rf /tmp/workspace/dist-web-browser /tmp/repo/versions/${VERSION}/browser @@ -207,7 +207,7 @@ workflows: filters: branches: only: - - master + - main - develop requires: - build-linux @@ -217,7 +217,7 @@ workflows: filters: branches: only: - - master + - main - develop requires: - build-web \ No newline at end of file