From 6ca7e5c68a686dd6bf96e6d337007971ce806404 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 12 Nov 2019 08:52:10 -0800 Subject: [PATCH 01/54] Initial fix for PTV-1315 This is a partial fix, and forms the basis for the missing reads set viewer May form the basis of additional imrovements to set viewers. --- docs/developer/local-docker.md | 2 +- .../kbase/js/preact_components/ShowError.js | 30 ++ .../genericSets/AssemblySet.js | 72 +++++ .../genericSets/ReadsAlignmentSet.js | 128 ++++++++ .../genericSets/base/Loader.js | 204 +++++++++++++ .../genericSets/base/SetComponent.js | 262 +++++++++++++++++ .../function_output/kbaseGenericSetViewer.js | 274 ++++++++++-------- kbase-extension/static/narrative_paths.js | 16 +- 8 files changed, 860 insertions(+), 128 deletions(-) create mode 100644 kbase-extension/static/kbase/js/preact_components/ShowError.js create mode 100644 kbase-extension/static/kbase/js/preact_components/genericSets/AssemblySet.js create mode 100644 kbase-extension/static/kbase/js/preact_components/genericSets/ReadsAlignmentSet.js create mode 100644 kbase-extension/static/kbase/js/preact_components/genericSets/base/Loader.js create mode 100644 kbase-extension/static/kbase/js/preact_components/genericSets/base/SetComponent.js diff --git a/docs/developer/local-docker.md b/docs/developer/local-docker.md index 5c113ea7be..998dd489a6 100644 --- a/docs/developer/local-docker.md +++ b/docs/developer/local-docker.md @@ -18,7 +18,7 @@ The following changes are required: This script starts the narrative image using features to integrate it with local kbase-ui. ``` - env=ci bash scripts/local-dev-run.sh + env=ci mount=t bash scripts/local-dev-run.sh ``` where env sets the CONFIG_ENV environment variable for the Docker container; ci is the environment in which you are working (needs to be same as the ui is running on.) diff --git a/kbase-extension/static/kbase/js/preact_components/ShowError.js b/kbase-extension/static/kbase/js/preact_components/ShowError.js new file mode 100644 index 0000000000..94505a3b8e --- /dev/null +++ b/kbase-extension/static/kbase/js/preact_components/ShowError.js @@ -0,0 +1,30 @@ +define([ +], function ( +) { + 'use strict'; + + // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. + const { h, Component } = window.preact; + + class ShowError extends Component { + render() { + const error = this.props.error; + let message; + if (error.error && error.error.message) { + // handle errors thrown by kbase service clients + message = error.error.message; + } else if (error.message) { + // standard error objects + message = error.message; + } else { + message = error; + } + return h('div', { + className: 'alert alert-danger' + }, [ + 'Error: ', + message + ]); + } + } +}); diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/AssemblySet.js b/kbase-extension/static/kbase/js/preact_components/genericSets/AssemblySet.js new file mode 100644 index 0000000000..dbc53352fc --- /dev/null +++ b/kbase-extension/static/kbase/js/preact_components/genericSets/AssemblySet.js @@ -0,0 +1,72 @@ +define([ + './base/SetComponent', + './base/Loader', + 'bootstrap' +], function ( + SetComponent, + Loader +) { + 'use strict'; + + // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. + const { h } = window.preact; + + class AssemblySet extends SetComponent { + constructor(props) { + super(props); + } + + renderItemTable() { + const item = this.props.currentItem.value; + if (!item) { + return; + } + + const { + dna_size, gc_content, num_contigs, + base_counts: { A, C, T, G } + } = item.data; + + const rows = [ + { + label: 'DNA Size', + value: Intl.NumberFormat('en-US', {}).format(dna_size) + }, + { + label: 'Contig Count', + value: Intl.NumberFormat('en-US', {}).format(num_contigs) + }, + { + label: 'GC Content', + value: Intl.NumberFormat('en-US', { + style: 'percent', + minimumFractionDigits: 2 + }).format(gc_content), + } + ]; + return h('div', null, h('table', { + className: 'table table-bordered table-striped' + }, h('tbody', null, + rows.map(({ label, value }) => { + return h('tr', null, [ + h('th', { width: '20%', style: { textAlign: 'left' } }, label), + h('td', null, value) + ]) + })) + )); + } + } + + class AssemblySetLoader extends Loader { + constructor(props) { + props = { + ...props, + method: 'get_assembly_set_v1', + module: AssemblySet + } + super(props); + } + } + + return AssemblySetLoader; +}); diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/ReadsAlignmentSet.js b/kbase-extension/static/kbase/js/preact_components/genericSets/ReadsAlignmentSet.js new file mode 100644 index 0000000000..f4d0ae6ad7 --- /dev/null +++ b/kbase-extension/static/kbase/js/preact_components/genericSets/ReadsAlignmentSet.js @@ -0,0 +1,128 @@ +define([ + './base/SetComponent', + './base/Loader', + 'bootstrap' +], function ( + SetComponent, + Loader +) { + 'use strict'; + + // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. + const { h, Component } = window.preact; + + class ReadsAlignmentSet extends SetComponent { + constructor(props) { + super(props); + } + + renderItemTable() { + const item = this.props.currentItem.value; + if (!item) { + return; + } + + const { + aligned_using, + aligner_version, + library_type, + alignment_stats: { + total_reads, unmapped_reads, mapped_reads, multiple_alignments, + singletons + } + } = item.data; + + const rows = [ + { + label: 'Aligned Using', + value: aligned_using + }, + { + label: 'Aligner Version', + value: aligner_version + }, + { + label: 'Library Type', + value: library_type + }, + { + label: 'Total Reads', + value: Intl.NumberFormat('en-US', {}).format(total_reads) + }, + { + label: 'Unmapped Reads', + value: [ + Intl.NumberFormat('en-US', {}).format(unmapped_reads), + ' (', + Intl.NumberFormat('en-US', { + style: 'percent', + minimumFractionDigits: 2 + }).format(unmapped_reads / total_reads), + ')' + ] + }, + { + label: 'Mapped Reads', + value: [ + Intl.NumberFormat('en-US', {}).format(mapped_reads), + ' (', + Intl.NumberFormat('en-US', { + style: 'percent', + minimumFractionDigits: 2 + }).format(mapped_reads / total_reads), + ')' + ] + }, + { + label: 'Multiple Alignments', + value: [ + Intl.NumberFormat('en-US', {}).format(multiple_alignments), + ' (', + Intl.NumberFormat('en-US', { + style: 'percent', + minimumFractionDigits: 2 + }).format(multiple_alignments / mapped_reads), + ')' + ] + }, + { + label: 'Singletons', + value: [ + Intl.NumberFormat('en-US', {}).format(singletons), + ' (', + Intl.NumberFormat('en-US', { + style: 'percent', + minimumFractionDigits: 2 + }).format(singletons / mapped_reads), + ')' + ] + } + ]; + return h('div', null, h('table', { + className: 'table table-bordered table-striped' + }, h('tbody', null, + rows.map(({ label, value }) => { + return h('tr', null, [ + h('th', { width: '20%', style: { textAlign: 'left' } }, label), + h('td', null, value) + ]) + })) + )); + } + } + + class ReadsAlignmentSetLoader extends Component { + constructor(props) { + super(props); + } + render() { + return h(Loader, { + ...this.props, + method: 'get_reads_alignment_set_v1', + module: ReadsAlignmentSet + }); + } + } + + return ReadsAlignmentSetLoader; +}); diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/base/Loader.js b/kbase-extension/static/kbase/js/preact_components/genericSets/base/Loader.js new file mode 100644 index 0000000000..0c11783fd5 --- /dev/null +++ b/kbase-extension/static/kbase/js/preact_components/genericSets/base/Loader.js @@ -0,0 +1,204 @@ +define([ + 'kb_common/jsonRpc/genericClient', + 'kb_common/jsonRpc/dynamicServiceClient', + 'kb_service/utils', + '../../ShowError' +], function ( + ServiceClient, + DynamicServiceClient, + ServiceUtils, + ShowError +) { + 'use strict'; + + // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. + const { h, Component } = window.preact; + + class Loader extends Component { + constructor(props) { + super(props); + if (!props.method) { + console.error('method not supplied to Loader'); + this.state = { + state: 'error', + error: new Error('Prop "method" required for Loader Component') + }; + return; + } + + if (!props.module) { + console.error('module not supplied to Loader Component'); + this.state = { + state: 'error', + error: new Error('Prop "method" required for Loader Component') + }; + return; + } + this.method = props.method; + this.module = props.module; + this.state = { + state: null, // 'loading', 'error', 'loaded' + data: { + items: { + value: null, + error: null + }, + currentItem: { + objectRef: null, + value: null, + error: null, + loading: false + } + }, + error: null + }; + this.currentItemRef = null; + } + + componentDidMount() { + this.setState({ + state: 'loading' + }); + this.fetchSet() + .then((items) => { + if (items.length > 0) { + this.currentItemRef = items[0].ref; + } + this.setState({ + state: 'loaded', + data: { + ...this.state.data, + items: { + value: items, + error: null + } + } + }); + this.getCurrentItem(); + }) + .catch((error) => { + console.error('Error fetching the set', error); + this.setState({ + state: 'error', + error + }) + }); + } + + fetchSet() { + const setApi = new DynamicServiceClient({ + url: this.props.serviceWizardURL, + module: 'SetAPI', + token: this.props.token, + }); + return setApi.callFunc(this.method, [{ + ref: this.props.objectRef, + include_item_info: 1 + }]) + .then(([result]) => { + const { data: { description, items } } = result; + items.forEach((item) => { + item.objectInfo = ServiceUtils.objectInfoToObject(item.info); + }); + return items; + }); + } + + getCurrentItem() { + if (!this.currentItemRef) { + return; + } + this.setState({ + data: { + ...this.state.data, + currentItem: { + ...this.state.data.currentItem, + loading: true + } + } + }); + this.fetchSetElement(this.currentItemRef) + .then((item) => { + this.setState({ + data: { + ...this.state.data, + currentItem: { + value: item, + loading: false, + error: false + } + } + }) + }) + .catch((error) => { + this.setState({ + data: { + ...this.state.data, + currentItem: { + value: null, + loading: false, + error + } + } + }) + }); + } + + fetchSetElement(ref) { + const workspace = new ServiceClient({ + url: this.props.workspaceURL, + module: 'Workspace', + token: this.props.token + }); + return workspace.callFunc('get_objects2', [{ + objects: [{ + ref + }] + }]) + .then(([result]) => { + const item = result.data[0]; + item.objectInfo = ServiceUtils.objectInfoToObject(item.info); + return item; + }); + } + + selectItem(itemRef) { + this.currentItemRef = itemRef; + this.getCurrentItem(); + } + + renderError() { + return h(ShowError, { + error: this.state.error + }); + } + + renderLoading() { + return h('div', { + }, h('i', { + className: `fa fa-spinner fa-3x fa-pulse fa-fw` + })); + } + + render() { + switch (this.state.state) { + case null: + case 'loading': + return this.renderLoading(); + case 'error': + return this.renderError(); + case 'loaded': + return h(this.module, { + items: this.state.data.items, + currentItem: this.state.data.currentItem, + selectItem: (itemRef) => { + this.selectItem(itemRef); + } + }); + } + } + } + + + return Loader; +}); diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/base/SetComponent.js b/kbase-extension/static/kbase/js/preact_components/genericSets/base/SetComponent.js new file mode 100644 index 0000000000..bd1735c2eb --- /dev/null +++ b/kbase-extension/static/kbase/js/preact_components/genericSets/base/SetComponent.js @@ -0,0 +1,262 @@ +define([ + '../../ShowError', + 'bootstrap' +], function ( + ShowError +) { + 'use strict'; + + // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. + const { h, Component } = window.preact; + + const rowStyle = { + flex: '0 0 auto', + display: 'flex', + flexDirection: 'row', + marginBottom: '4px' + }; + const col1Style = { + fontWeight: 'bold', + color: 'rgba(100, 100, 100)', + flex: '0 0 15em' + }; + const col2Style = { + flex: '1 1 0px' + }; + + class SetComponent extends Component { + constructor(props) { + super(props); + this.state = { + error: null + } + this.tabsRef = null; + } + + renderError() { + return h(ShowError, { + error: this.state.error + }); + } + + selectItem(event) { + const selectControl = event.target; + this.props.selectItem(selectControl.value); + } + + renderItemType() { + const item = this.props.currentItem.value; + if (!item) { + return; + } + return h('a', { + href: `/#spec/type/${item.objectInfo.type}`, + target: '_blank' + }, item.objectInfo.type); + } + + renderSelector() { + return [ + h('div', { + style: col1Style + }, 'Select alignment to view:'), + h('div', { + className: 'form-inline', + style: col2Style + }, h('div', { className: 'form-group' }, [ + h('select', { + onChange: this.selectItem.bind(this), + className: 'form-control', + style: { + marginLeft: '0', + marginRight: '0' + } + }, this.props.items.value.map((item) => { + const { label, ref, info } = item; + return h('option', { value: item.ref }, [ + h('span', null, [ + item.objectInfo.name, + '(', label, ')' + ])]); + })) + ])) + ]; + } + + renderHeader() { + return h('div', { + style: { + display: 'flex', + flexDirection: 'column ', + marginBottom: '10px' + } + }, [ + h('div', { + style: rowStyle + }, [ + h('div', { + style: col1Style + }, 'Alignment type:'), + h('div', { + style: col2Style, + }, this.renderItemType()) + ]), + h('div', { + style: rowStyle + }, this.renderSelector()), + ]); + } + + clickTab(e) { + e.preventDefault(); + const tabID = e.target.getAttribute('href').substr(1); + const tab = e.target.parentNode; + const tabPanels = tab.parentNode.nextSibling; + const panel = tabPanels.querySelector('#' + tabID); + console.log(tabID, tab, tabPanels); + + // iterate through siblings until none are active. + const tabs = tab.parentNode; + for (let tab of [].slice.call(tabs.childNodes)) { + tab.classList.remove('active'); + } + + tab.classList.add('active'); + + // same for panels + for (let panel of [].slice.call(tabPanels.childNodes)) { + panel.classList.remove('active', 'in'); + } + panel.classList.add('active', 'in'); + } + + renderTabs() { + return h('div', { + ref: (x) => { + this.tabsRef = x; + } + }, [ + h('ul', { + className: 'nav nav-tabs', + role: "tablist" + }, [ + h('li', { + role: 'presentation', + className: 'active' + }, h('a', { + href: '#overview', + role: 'tab', + dataToggle: 'tab', + ariaControls: 'overview', + onClick: this.clickTab.bind(this) + }, 'Overview')), + // An example of a second tab. + // I have a feeling that tabs will need to move into the + // subclass if there is significant divergence. + // On the other hand, we may want to start with implementing tabs + // for common views across set types - comparison (all instances + // of a set in a table), metadata (about the set itself). + // Maybe custom visualizations can just be provided as an array + // of tab specs. + // h('li', { + // role: 'presentation' + // }, h('a', { + // href: '#info', + // role: 'tab', + // dataToggle: 'tab', + // ariaControls: 'info', + // onClick: this.clickTab.bind(this) + // }, 'Info')) + ]), + h('div', { + className: 'tab-content', + style: { + paddingTop: '10px' + } + }, [ + h('div', { + role: 'tabpanel', + className: 'tab-pane fade in active', + id: 'overview' + }, this.renderOverview()), + // An example of a second tab panel area. + // h('div', { + // role: 'tabpanel', + // className: 'tab-pane fade', + // id: 'info' + // }, 'info here') + + ]) + ]) + } + + renderOverview() { + return h('div', null, [ + this.renderHeader(), + // The item area + h('div', { + style: { + position: 'relative' + } + }, [ + h('div', { + style: { + position: 'absolute', + left: 0, + right: 0, + top: 0, + bottom: 0 + } + }, this.renderLoading()), + h('div', { + style: { + minHeight: '5em' + } + }, this.renderItemTable()) + ]) + ]); + } + + renderNoItems() { + return h('div', null, 'Sorry, no items'); + } + + renderLoading() { + if (!this.props.currentItem.loading) { + return; + } + + return h('div', { + style: { + position: 'absolute', + left: 0, + right: 0, + top: 0, + bottom: 0, + backgroundColor: 'rgba(255, 255, 255, 0.5)', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center' + } + }, h('i', { + className: `fa fa-spinner fa-3x fa-pulse fa-fw` + })); + } + + render() { + const items = this.props.items.value; + if (!items || items.length === 0) { + return this.renderNoItems(); + } else { + return this.renderViewer(); + } + } + + renderViewer() { + return this.renderTabs(); + } + } + + return SetComponent; +}); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js index 658489d2fd..e0cdf5f25e 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js @@ -1,133 +1,161 @@ - - -define ( - [ - 'kbwidget', - 'bootstrap', - 'jquery', - 'kbaseAuthenticatedWidget', - 'kbaseTabs', - 'kbaseHistogram', - 'kbase-client-api', - 'kbaseTable', - 'narrativeConfig', - 'bluebird', - 'kbase-generic-client-api', - 'kbaseTable', - ], function( - KBWidget, - bootstrap, - $, - kbaseAuthenticatedWidget, - kbaseTabs, - kbaseHistogram, - kbase_client_api, - kbaseTable, - Config, - Promise, - GenericClient, - KBaseTable - ) { - +/* +kbaseGenericSetViewer +A widget which can display a data object visualization for several types of objects +in the "KBaseSets" type module. +At present just ReadsAlignmentSet and AssemblySet are supported; others should display +an error message. + +Note that this widget is really just a wrapper, most of the implementation is in the preact +components referred two in the AMD dependencies. +*/ +define([ + 'kbwidget', + 'kbaseAuthenticatedWidget', + 'narrativeConfig', + 'kb_common/jsonRpc/genericClient', + 'kb_service/utils', + 'preact_components/genericSets/ReadsAlignmentSet', + 'preact_components/genericSets/AssemblySet', + 'preact_components/ShowError', + 'bootstrap' +], function ( + KBWidget, + kbaseAuthenticatedWidget, + Config, + ServiceClient, + ServiceUtils, + ReadsAlignmentSet, + AssemblySet, + ShowError +) { 'use strict'; - return KBWidget({ - - name: "kbaseGenericSetViewer", - parent : kbaseAuthenticatedWidget, - - methodMap : { - "KBaseSets.DifferentialExpressionMatrixSet" : 'get_differential_expression_matrix_set_v1', - "KBaseSets.FeatureSetSet" : 'get_feature_set_set_v1', - "KBaseSets.ExpressionSet" : 'get_expression_set_v1', - "KBaseSets.ReadsAlignmentSet" : 'get_reads_alignment_set_v1', - "KBaseSets.ReadsSet" : 'get_reads_set_v1', - "KBaseSets.AssemblySet" : 'get_assembly_set_v1', - "KBaseSets.GenomeSet" : 'get_genome_set_v1', - }, - - version: "1.0.0", - - init : function init(options) { - this._super(options); - - var $self = this; - if (options._obj_info) { - $self.obj_info = options._obj_info; - $self.obj_ref = $self.obj_info.ws_id + '/' + - $self.obj_info.id + '/' + - $self.obj_info.version; - $self.link_ref = $self.obj_info.ws_id + '/' + - $self.obj_info.name + '/' + - $self.obj_info.version; - //$self.update_overview_info_from_nar_info($self.obj_info); - } else { - $self.obj_ref = $self.options.wsId + '/' + - $self.options.objId; - $self.link_ref = $self.obj_ref; - $self.set_overview.name = $self.options.objId; - //$self.set_overview.link_ref = $self.link_ref; - } - - this.genericClient = new GenericClient( - Config.url('service_wizard'), - {'token': this.authToken()}); - - var bare_type = this.options._obj_info.bare_type[0]; - var method = this.methodMap[bare_type]; + // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. + const { h, Component, render } = window.preact; + + /* + Main - a preact component which primarily dispatches to the component which + matches the type of object provided by the prop 'objectRef'. + */ + class Main extends Component { + constructor(props) { + super(props); + this.state = { + setType: null, + error: null + } + this.setTypes = { + 'KBaseSets.ReadsAlignmentSet': { + module: ReadsAlignmentSet + }, + 'KBaseSets.AssemblySet': { + module: AssemblySet + } + } + } - //this.setAPI[method]({ 'ref' : $self.obj_ref, include_item_info : 1 }) - this.genericClient.sync_call('SetAPI.' + method, [{ 'ref' : $self.obj_ref, include_item_info : 1 }]) - .then(function(results) { - results = results[0].data; + componentDidMount() { + const workspace = new ServiceClient({ + url: this.props.workspaceURL, + module: 'Workspace', + token: this.props.token + }); - var $tableElem = $.jqElem('div'); - var $table = new KBaseTable($tableElem, - { - structure : { - keys : ['Description', 'Items'], - rows : { - Description : results.description, - Items : - $.jqElem('ul') - .append( - results.items.map( function(i) { - return $.jqElem('li') - .append( - $.jqElem('a') - .append(i.info[1]) - .on('click', function(e) { - alert("Will add in the viewer for this object...when it's available") - }) - ) - .append(' [' + i.info[2] + ']') - }) - ) + return workspace.callFunc('get_object_info_new', [{ + objects: [{ + ref: this.props.objectRef + }] + }]) + .then(([infos]) => { + // Get a nice object info (an object rather than array) + const objectInfo = ServiceUtils.objectInfoToObject(infos[0]); + + // Make a versionless object type id for lookup in the set of supported + // set types defined above. + const objectType = [objectInfo.typeModule, objectInfo.typeName].join('.'); + + const mapping = this.setTypes[objectType] + console.warn('about to map...', infos, this.props, this.state); + if (mapping) { + // return h(mapping.module, { + // token: this.props.token, + // workspaceURL: this.props.workspaceURL, + // serviceWizardURL: this.props.serviceWizardURL, + // objectRef: this.props.objectRef + // }); + console.log('mapping', mapping); + this.setState({ + setType: objectType, + module: mapping.module + }); + } else { + this.setState({ + error: new Error('Unsupported set type: ' + this.state.setType) + }); } - } - } - ); - $self.$elem.empty(); - $self.$elem.append($tableElem); - }) - .catch(function(e) { - $self.$elem.empty(); - $self.$elem - .addClass('alert alert-danger') - .html("Could not load object : " + e.error.error.message); - }); - ; + this.setState({ + setType: objectType + }); + }) + .catch((error) => { + console.error('Error getting object info', error); + this.setState({ + error + }); + }); + } - this.$elem - .append('Loading data...
 please wait...
') - .append( - $.jqElem('div') - .attr('align', 'center') - .append($.jqElem('i').addClass('fa fa-spinner').addClass('fa fa-spin fa fa-4x')) - ) + render() { + if (this.state.error) { + return h(ShowError, { + error: this.state.error + }); + } else { + if (!this.state.module) { + return h('div', null, 'Loading! I guess...'); + } + return h(this.state.module, { + token: this.props.token, + workspaceURL: this.props.workspaceURL, + serviceWizardURL: this.props.serviceWizardURL, + objectRef: this.props.objectRef + }); + } } + } - }); + return KBWidget({ + name: "kbaseGenericSetViewer", + parent: kbaseAuthenticatedWidget, + // Leaving this here for now, as it documents the original intention of this widget, to support + // all the following types within KBaseSets. + // methodMap: { + // "KBaseSets.DifferentialExpressionMatrixSet": 'get_differential_expression_matrix_set_v1', + // "KBaseSets.FeatureSetSet": 'get_feature_set_set_v1', + // "KBaseSets.ExpressionSet": 'get_expression_set_v1', + // "KBaseSets.ReadsAlignmentSet": 'get_reads_alignment_set_v1', + // "KBaseSets.ReadsSet": 'get_reads_set_v1', + // "KBaseSets.AssemblySet": 'get_assembly_set_v1', + // "KBaseSets.GenomeSet": 'get_genome_set_v1', + // }, + version: "1.0.0", -} ); + init: function (options) { + try { + this._super(options); + + render(h(Main, { + workspaceURL: Config.url('workspace'), + serviceWizardURL: Config.url('service_wizard'), + token: this.authToken(), + objectRef: this.options.upas.obj_ref + }), this.$elem[0]); + } catch (ex) { + return render(h(ShowError({ + error: ex + })), this.$elem[0]); + } + }, + }); +}); diff --git a/kbase-extension/static/narrative_paths.js b/kbase-extension/static/narrative_paths.js index 9b29bb2fd4..5b78493074 100644 --- a/kbase-extension/static/narrative_paths.js +++ b/kbase-extension/static/narrative_paths.js @@ -37,8 +37,8 @@ require.config({ select2: 'ext_components/select2/dist/js/select2.full.min', uuid: 'ext_components/pure-uuid/uuid', 'font-awesome': 'ext_components/font-awesome/css/font-awesome.min', - yaml : 'ext_components/require-yaml/yaml', - 'js-yaml' : 'ext_components/js-yaml/dist/js-yaml.min', + yaml: 'ext_components/require-yaml/yaml', + 'js-yaml': 'ext_components/js-yaml/dist/js-yaml.min', // not under bower control colorbrewer: 'ext_packages/colorbrewer/colorbrewer.min', @@ -89,8 +89,8 @@ require.config({ 'SetAPI-client-api': 'kbase/js/api/SetAPIClient', 'ExpressionUtils-client-api': 'kbase/js/api/ExpressionUtilsClient', 'Taxonomy-client-api': 'kbase/js/api/TaxonomyAPIClient', - 'RestAPIClient' : 'kbase/js/api/RestAPIClient', - 'StagingServiceClient' : 'kbase/js/api/StagingServiceClient', + 'RestAPIClient': 'kbase/js/api/RestAPIClient', + 'StagingServiceClient': 'kbase/js/api/StagingServiceClient', 'KBaseSearchEngineClient': 'kbase/js/api/KBaseSearchEngineClient', 'njs-wrapper-client-api': 'kbase/js/api/NarrativeJobServiceWrapper', @@ -341,6 +341,11 @@ require.config({ 'GenomeCategorizer': 'kbase/js/widgets/function_output/GenomeCategorizer', 'code-cell': 'kbase/js/widgets/function_output/codeCellLauncher', + /* + preact components + */ + preact_components: 'kbase/js/preact_components', + /*** * END CUSTOM OUTPUT WIDGETS ***/ @@ -485,6 +490,9 @@ require.config({ }, bootstrap: { deps: ['jquery', 'jqueryui'] + }, + preact: { + exports: 'preact' } } }); From acb152e55991db4c3df724d2241d5821317f2e5c Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 30 Sep 2021 15:40:31 -0700 Subject: [PATCH 02/54] add AMD support for React; tried to use the commented-out shim, but couldn't get it to work, will try again so leaving in place for now. --- .../kbase/js/react_components/globalReact.js | 5 +++++ .../js/react_components/globalReactDOM.js | 4 ++++ kbase-extension/static/narrative_paths.js | 19 +++++++++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 kbase-extension/static/kbase/js/react_components/globalReact.js create mode 100644 kbase-extension/static/kbase/js/react_components/globalReactDOM.js diff --git a/kbase-extension/static/kbase/js/react_components/globalReact.js b/kbase-extension/static/kbase/js/react_components/globalReact.js new file mode 100644 index 0000000000..bc1ab8f820 --- /dev/null +++ b/kbase-extension/static/kbase/js/react_components/globalReact.js @@ -0,0 +1,5 @@ +define([], () => { + 'use strict'; + console.log("HERE MF"); + return window.React; +}); \ No newline at end of file diff --git a/kbase-extension/static/kbase/js/react_components/globalReactDOM.js b/kbase-extension/static/kbase/js/react_components/globalReactDOM.js new file mode 100644 index 0000000000..ba34bc5983 --- /dev/null +++ b/kbase-extension/static/kbase/js/react_components/globalReactDOM.js @@ -0,0 +1,4 @@ +define([], () => { + 'use strict'; + return window.ReactDOM; +}); \ No newline at end of file diff --git a/kbase-extension/static/narrative_paths.js b/kbase-extension/static/narrative_paths.js index e8b677adee..bfb2dea33b 100644 --- a/kbase-extension/static/narrative_paths.js +++ b/kbase-extension/static/narrative_paths.js @@ -380,9 +380,11 @@ require.config({ 'code-cell': 'kbase/js/widgets/function_output/codeCellLauncher', /* - preact components + React components */ - preact_components: 'kbase/js/preact_components', + React: 'kbase/js/react_components/globalReact', + ReactDOM: 'kbase/js/react_components/globalReactDOM', + react_components: 'kbase/js/react_components', /*** * END CUSTOM OUTPUT WIDGETS @@ -527,5 +529,18 @@ require.config({ bootstrap: { deps: ['jquery', 'jqueryui'], }, + // React: { + // init: () => { + // 'use strict'; + // alert('hello?'); + // return window.React; + // } + // }, + // ReactDOM: { + // init: () => { + // 'use strict'; + // return window.ReactDOM; + // } + // } }, }); From 91ae02c902a2083e7669fac5dd42e9eaa145159e Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 30 Sep 2021 15:41:14 -0700 Subject: [PATCH 03/54] port preact components to react --- .../ShowError.js | 13 ++-- .../genericSets/AssemblySet.js | 25 +++---- .../genericSets/ReadsAlignmentSet.js | 23 +++--- .../genericSets/base/Loader.js | 24 +++---- .../genericSets/base/SetComponent.js | 71 ++++++++++--------- .../function_output/kbaseGenericSetViewer.js | 57 ++++++++------- 6 files changed, 109 insertions(+), 104 deletions(-) rename kbase-extension/static/kbase/js/{preact_components => react_components}/ShowError.js (78%) rename kbase-extension/static/kbase/js/{preact_components => react_components}/genericSets/AssemblySet.js (77%) rename kbase-extension/static/kbase/js/{preact_components => react_components}/genericSets/ReadsAlignmentSet.js (89%) rename kbase-extension/static/kbase/js/{preact_components => react_components}/genericSets/base/Loader.js (94%) rename kbase-extension/static/kbase/js/{preact_components => react_components}/genericSets/base/SetComponent.js (85%) diff --git a/kbase-extension/static/kbase/js/preact_components/ShowError.js b/kbase-extension/static/kbase/js/react_components/ShowError.js similarity index 78% rename from kbase-extension/static/kbase/js/preact_components/ShowError.js rename to kbase-extension/static/kbase/js/react_components/ShowError.js index 94505a3b8e..e58fc1b130 100644 --- a/kbase-extension/static/kbase/js/preact_components/ShowError.js +++ b/kbase-extension/static/kbase/js/react_components/ShowError.js @@ -1,10 +1,11 @@ define([ -], function ( -) { + 'React' +], ( + React +) => { 'use strict'; - // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. - const { h, Component } = window.preact; + const { createElement: e, Component } = React; class ShowError extends Component { render() { @@ -19,7 +20,7 @@ define([ } else { message = error; } - return h('div', { + return e('div', { className: 'alert alert-danger' }, [ 'Error: ', @@ -27,4 +28,6 @@ define([ ]); } } + + return ShowError; }); diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/AssemblySet.js b/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js similarity index 77% rename from kbase-extension/static/kbase/js/preact_components/genericSets/AssemblySet.js rename to kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js index dbc53352fc..34b2f05497 100644 --- a/kbase-extension/static/kbase/js/preact_components/genericSets/AssemblySet.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js @@ -1,15 +1,16 @@ define([ + 'React', './base/SetComponent', './base/Loader', 'bootstrap' -], function ( +], ( + React, SetComponent, Loader -) { +) => { 'use strict'; - // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. - const { h } = window.preact; + const { createElement: e } = React; class AssemblySet extends SetComponent { constructor(props) { @@ -24,7 +25,7 @@ define([ const { dna_size, gc_content, num_contigs, - base_counts: { A, C, T, G } + // base_counts: { A, C, T, G } } = item.data; const rows = [ @@ -44,14 +45,14 @@ define([ }).format(gc_content), } ]; - return h('div', null, h('table', { + return e('div', null, e('table', { className: 'table table-bordered table-striped' - }, h('tbody', null, + }, e('tbody', null, rows.map(({ label, value }) => { - return h('tr', null, [ - h('th', { width: '20%', style: { textAlign: 'left' } }, label), - h('td', null, value) - ]) + return e('tr', null, [ + e('th', { width: '20%', style: { textAlign: 'left' } }, label), + e('td', null, value) + ]); })) )); } @@ -63,7 +64,7 @@ define([ ...props, method: 'get_assembly_set_v1', module: AssemblySet - } + }; super(props); } } diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/ReadsAlignmentSet.js b/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js similarity index 89% rename from kbase-extension/static/kbase/js/preact_components/genericSets/ReadsAlignmentSet.js rename to kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js index f4d0ae6ad7..d71f785aa7 100644 --- a/kbase-extension/static/kbase/js/preact_components/genericSets/ReadsAlignmentSet.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js @@ -1,15 +1,16 @@ define([ + 'React', './base/SetComponent', './base/Loader', 'bootstrap' -], function ( +], ( + React, SetComponent, Loader -) { +) => { 'use strict'; - // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. - const { h, Component } = window.preact; + const { createElement: e, Component } = React; class ReadsAlignmentSet extends SetComponent { constructor(props) { @@ -98,14 +99,14 @@ define([ ] } ]; - return h('div', null, h('table', { + return e('div', null, e('table', { className: 'table table-bordered table-striped' - }, h('tbody', null, + }, e('tbody', null, rows.map(({ label, value }) => { - return h('tr', null, [ - h('th', { width: '20%', style: { textAlign: 'left' } }, label), - h('td', null, value) - ]) + return e('tr', null, [ + e('th', { width: '20%', style: { textAlign: 'left' } }, label), + e('td', null, value) + ]); })) )); } @@ -116,7 +117,7 @@ define([ super(props); } render() { - return h(Loader, { + return e(Loader, { ...this.props, method: 'get_reads_alignment_set_v1', module: ReadsAlignmentSet diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/base/Loader.js b/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js similarity index 94% rename from kbase-extension/static/kbase/js/preact_components/genericSets/base/Loader.js rename to kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js index 0c11783fd5..1e07c63da3 100644 --- a/kbase-extension/static/kbase/js/preact_components/genericSets/base/Loader.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js @@ -1,18 +1,19 @@ define([ + 'React', 'kb_common/jsonRpc/genericClient', 'kb_common/jsonRpc/dynamicServiceClient', 'kb_service/utils', '../../ShowError' -], function ( +], ( + React, ServiceClient, DynamicServiceClient, ServiceUtils, ShowError -) { +) => { 'use strict'; - // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. - const { h, Component } = window.preact; + const { createElement: e, Component } = React; class Loader extends Component { constructor(props) { @@ -81,7 +82,7 @@ define([ this.setState({ state: 'error', error - }) + }); }); } @@ -128,7 +129,7 @@ define([ error: false } } - }) + }); }) .catch((error) => { this.setState({ @@ -140,7 +141,7 @@ define([ error } } - }) + }); }); } @@ -168,14 +169,14 @@ define([ } renderError() { - return h(ShowError, { + return e(ShowError, { error: this.state.error }); } renderLoading() { - return h('div', { - }, h('i', { + return e('div', { + }, e('i', { className: `fa fa-spinner fa-3x fa-pulse fa-fw` })); } @@ -188,7 +189,7 @@ define([ case 'error': return this.renderError(); case 'loaded': - return h(this.module, { + return e(this.module, { items: this.state.data.items, currentItem: this.state.data.currentItem, selectItem: (itemRef) => { @@ -199,6 +200,5 @@ define([ } } - return Loader; }); diff --git a/kbase-extension/static/kbase/js/preact_components/genericSets/base/SetComponent.js b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js similarity index 85% rename from kbase-extension/static/kbase/js/preact_components/genericSets/base/SetComponent.js rename to kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js index bd1735c2eb..90d97b7a28 100644 --- a/kbase-extension/static/kbase/js/preact_components/genericSets/base/SetComponent.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js @@ -1,13 +1,14 @@ define([ + 'React', '../../ShowError', 'bootstrap' -], function ( +], ( + React, ShowError -) { +) => { 'use strict'; - // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. - const { h, Component } = window.preact; + const { createElement: e, Component } = React; const rowStyle = { flex: '0 0 auto', @@ -29,12 +30,12 @@ define([ super(props); this.state = { error: null - } + }; this.tabsRef = null; } renderError() { - return h(ShowError, { + return e(ShowError, { error: this.state.error }); } @@ -49,7 +50,7 @@ define([ if (!item) { return; } - return h('a', { + return e('a', { href: `/#spec/type/${item.objectInfo.type}`, target: '_blank' }, item.objectInfo.type); @@ -57,14 +58,14 @@ define([ renderSelector() { return [ - h('div', { + e('div', { style: col1Style }, 'Select alignment to view:'), - h('div', { + e('div', { className: 'form-inline', style: col2Style - }, h('div', { className: 'form-group' }, [ - h('select', { + }, e('div', { className: 'form-group' }, [ + e('select', { onChange: this.selectItem.bind(this), className: 'form-control', style: { @@ -73,8 +74,8 @@ define([ } }, this.props.items.value.map((item) => { const { label, ref, info } = item; - return h('option', { value: item.ref }, [ - h('span', null, [ + return e('option', { value: item.ref }, [ + e('span', null, [ item.objectInfo.name, '(', label, ')' ])]); @@ -84,24 +85,24 @@ define([ } renderHeader() { - return h('div', { + return e('div', { style: { display: 'flex', flexDirection: 'column ', marginBottom: '10px' } }, [ - h('div', { + e('div', { style: rowStyle }, [ - h('div', { + e('div', { style: col1Style }, 'Alignment type:'), - h('div', { + e('div', { style: col2Style, }, this.renderItemType()) ]), - h('div', { + e('div', { style: rowStyle }, this.renderSelector()), ]); @@ -113,37 +114,37 @@ define([ const tab = e.target.parentNode; const tabPanels = tab.parentNode.nextSibling; const panel = tabPanels.querySelector('#' + tabID); - console.log(tabID, tab, tabPanels); + // console.log(tabID, tab, tabPanels); // iterate through siblings until none are active. const tabs = tab.parentNode; - for (let tab of [].slice.call(tabs.childNodes)) { + for (const tab of [].slice.call(tabs.childNodes)) { tab.classList.remove('active'); } tab.classList.add('active'); // same for panels - for (let panel of [].slice.call(tabPanels.childNodes)) { + for (const panel of [].slice.call(tabPanels.childNodes)) { panel.classList.remove('active', 'in'); } panel.classList.add('active', 'in'); } renderTabs() { - return h('div', { + return e('div', { ref: (x) => { this.tabsRef = x; } }, [ - h('ul', { + e('ul', { className: 'nav nav-tabs', role: "tablist" }, [ - h('li', { + e('li', { role: 'presentation', className: 'active' - }, h('a', { + }, e('a', { href: '#overview', role: 'tab', dataToggle: 'tab', @@ -168,13 +169,13 @@ define([ // onClick: this.clickTab.bind(this) // }, 'Info')) ]), - h('div', { + e('div', { className: 'tab-content', style: { paddingTop: '10px' } }, [ - h('div', { + e('div', { role: 'tabpanel', className: 'tab-pane fade in active', id: 'overview' @@ -187,19 +188,19 @@ define([ // }, 'info here') ]) - ]) + ]); } renderOverview() { - return h('div', null, [ + return e('div', null, [ this.renderHeader(), // The item area - h('div', { + e('div', { style: { position: 'relative' } }, [ - h('div', { + e('div', { style: { position: 'absolute', left: 0, @@ -208,7 +209,7 @@ define([ bottom: 0 } }, this.renderLoading()), - h('div', { + e('div', { style: { minHeight: '5em' } @@ -218,7 +219,7 @@ define([ } renderNoItems() { - return h('div', null, 'Sorry, no items'); + return e('div', null, 'Sorry, no items'); } renderLoading() { @@ -226,7 +227,7 @@ define([ return; } - return h('div', { + return e('div', { style: { position: 'absolute', left: 0, @@ -239,7 +240,7 @@ define([ justifyContent: 'center', alignItems: 'center' } - }, h('i', { + }, e('i', { className: `fa fa-spinner fa-3x fa-pulse fa-fw` })); } diff --git a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js index 7d9ea34629..e6d5661450 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js @@ -5,20 +5,24 @@ in the "KBaseSets" type module. At present just ReadsAlignmentSet and AssemblySet are supported; others should display an error message. -Note that this widget is really just a wrapper, most of the implementation is in the preact +Note that this widget is really just a wrapper, most of the implementation is in the React components referred two in the AMD dependencies. */ define([ + 'React', + 'ReactDOM', 'kbwidget', 'kbaseAuthenticatedWidget', 'narrativeConfig', 'kb_common/jsonRpc/genericClient', 'kb_service/utils', - 'preact_components/genericSets/ReadsAlignmentSet', - 'preact_components/genericSets/AssemblySet', - 'preact_components/ShowError', + 'react_components/genericSets/ReadsAlignmentSet', + 'react_components/genericSets/AssemblySet', + 'react_components/ShowError', 'bootstrap' -], function ( +], ( + React, + ReactDOM, KBWidget, kbaseAuthenticatedWidget, Config, @@ -27,14 +31,13 @@ define([ ReadsAlignmentSet, AssemblySet, ShowError -) { +) => { 'use strict'; - // Ugly but true - preact is loaded globally by Jupyter and not as an AMD module. - const { h, Component, render } = window.preact; + const { createElement: e, Component } = React; /* - Main - a preact component which primarily dispatches to the component which + Main - a React component which primarily dispatches to the component which matches the type of object provided by the prop 'objectRef'. */ class Main extends Component { @@ -75,15 +78,7 @@ define([ const objectType = [objectInfo.typeModule, objectInfo.typeName].join('.'); const mapping = this.setTypes[objectType]; - console.warn('about to map...', infos, this.props, this.state); if (mapping) { - // return h(mapping.module, { - // token: this.props.token, - // workspaceURL: this.props.workspaceURL, - // serviceWizardURL: this.props.serviceWizardURL, - // objectRef: this.props.objectRef - // }); - console.log('mapping', mapping); this.setState({ setType: objectType, module: mapping.module @@ -108,14 +103,14 @@ define([ render() { if (this.state.error) { - return h(ShowError, { + return e(ShowError, { error: this.state.error }); } else { if (!this.state.module) { - return h('div', null, 'Loading! I guess...'); + return e('div', null, 'Loading! I guess...'); } - return h(this.state.module, { + return e(this.state.module, { token: this.props.token, workspaceURL: this.props.workspaceURL, serviceWizardURL: this.props.serviceWizardURL, @@ -130,14 +125,18 @@ define([ parent: kbaseAuthenticatedWidget, // Leaving this here for now, as it documents the original intention of this widget, to support // all the following types within KBaseSets. + // Also, see: https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_generic_set/spec.json#L21 // methodMap: { - // "KBaseSets.DifferentialExpressionMatrixSet": 'get_differential_expression_matrix_set_v1', - // "KBaseSets.FeatureSetSet": 'get_feature_set_set_v1', - // "KBaseSets.ExpressionSet": 'get_expression_set_v1', - // "KBaseSets.ReadsAlignmentSet": 'get_reads_alignment_set_v1', - // "KBaseSets.ReadsSet": 'get_reads_set_v1', - // "KBaseSets.AssemblySet": 'get_assembly_set_v1', - // "KBaseSets.GenomeSet": 'get_genome_set_v1', + // "KBaseSets.DifferentialExpressionMatrixSet": 'get_differential_expression_matrix_set_v1', DUP - https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_differential_expression_matrix_set/spec.json + // and the current viewer does not work + // "KBaseSets.FeatureSetSet": 'get_feature_set_set_v1', OK - not implemented - can't find any data, or any app which outputs this type, or accepts as input (according to the app browser) + // "KBaseSets.ExpressionSet": 'get_expression_set_v1', DUP - https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_rnaseq_sample_expression/spec.json + // and the current viewer doesn't work + // "KBaseSets.ReadsAlignmentSet": 'get_reads_alignment_set_v1', OK implemented + // "KBaseSets.ReadsSet": 'get_reads_set_v1', DUP - https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_reads_set/spec.json + // current viewer works + // "KBaseSets.AssemblySet": 'get_assembly_set_v1', OK - implemented + // "KBaseSets.GenomeSet": 'get_genome_set_v1', OK - not implemented // }, version: "1.0.0", @@ -145,14 +144,14 @@ define([ try { this._super(options); - render(h(Main, { + ReactDOM.render(e(Main, { workspaceURL: Config.url('workspace'), serviceWizardURL: Config.url('service_wizard'), token: this.authToken(), objectRef: this.options.upas.obj_ref }), this.$elem[0]); } catch (ex) { - return render(h(ShowError({ + return ReactDOM.render(e(ShowError({ error: ex })), this.$elem[0]); } From bd57026b1e70dfcdc0407fdd67038e08e15e3762 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 30 Sep 2021 15:41:42 -0700 Subject: [PATCH 04/54] remove commented-out preact from page --- kbase-extension/kbase_templates/page.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/kbase-extension/kbase_templates/page.html b/kbase-extension/kbase_templates/page.html index 4f91b43fa2..9eec3621fe 100644 --- a/kbase-extension/kbase_templates/page.html +++ b/kbase-extension/kbase_templates/page.html @@ -70,9 +70,6 @@ - From bb5445122b4450692483b94e3f2cacc35ad639b5 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 4 Oct 2021 21:58:08 -0700 Subject: [PATCH 05/54] remove unused variables, move some styles to stylesheet, refactor process state. --- .../genericSets/AssemblySet.js | 36 +-- .../genericSets/ReadsAlignmentSet.js | 15 +- .../genericSets/base/Loader.js | 203 ++++++++------- .../genericSets/base/SetComponent.css | 28 ++ .../genericSets/base/SetComponent.js | 241 ++++++++++-------- .../kbase/js/react_components/globalReact.js | 1 - 6 files changed, 298 insertions(+), 226 deletions(-) create mode 100644 kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js b/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js index 34b2f05497..20b0a5791f 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js @@ -10,23 +10,19 @@ define([ ) => { 'use strict'; - const { createElement: e } = React; + const { createElement: e, Component } = React; class AssemblySet extends SetComponent { - constructor(props) { - super(props); - } - renderItemTable() { - const item = this.props.currentItem.value; - if (!item) { - return; + const selectedItem = this.props.set.selectedItem; + if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { + return null; } const { dna_size, gc_content, num_contigs, // base_counts: { A, C, T, G } - } = item.data; + } = selectedItem.value; const rows = [ { @@ -58,16 +54,26 @@ define([ } } - class AssemblySetLoader extends Loader { - constructor(props) { - props = { - ...props, + class AssemblySetLoader extends Component { + render() { + return e(Loader, { + ...this.props, method: 'get_assembly_set_v1', module: AssemblySet - }; - super(props); + }); } } + // class AssemblySetLoader extends Loader { + // constructor(props) { + // props = { + // ...props, + // method: 'get_assembly_set_v1', + // module: AssemblySet + // }; + // super(props); + // } + // } + return AssemblySetLoader; }); diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js b/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js index d71f785aa7..d63844ad3f 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js @@ -13,14 +13,10 @@ define([ const { createElement: e, Component } = React; class ReadsAlignmentSet extends SetComponent { - constructor(props) { - super(props); - } - renderItemTable() { - const item = this.props.currentItem.value; - if (!item) { - return; + const selectedItem = this.props.set.selectedItem; + if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { + return null; } const { @@ -31,7 +27,7 @@ define([ total_reads, unmapped_reads, mapped_reads, multiple_alignments, singletons } - } = item.data; + } = selectedItem.value; const rows = [ { @@ -113,9 +109,6 @@ define([ } class ReadsAlignmentSetLoader extends Component { - constructor(props) { - super(props); - } render() { return e(Loader, { ...this.props, diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js b/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js index 1e07c63da3..b3f868fbf6 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js @@ -21,7 +21,7 @@ define([ if (!props.method) { console.error('method not supplied to Loader'); this.state = { - state: 'error', + status: 'error', error: new Error('Prop "method" required for Loader Component') }; return; @@ -30,7 +30,7 @@ define([ if (!props.module) { console.error('module not supplied to Loader Component'); this.state = { - state: 'error', + status: 'error', error: new Error('Prop "method" required for Loader Component') }; return; @@ -38,134 +38,148 @@ define([ this.method = props.method; this.module = props.module; this.state = { - state: null, // 'loading', 'error', 'loaded' - data: { - items: { - value: null, - error: null - }, - currentItem: { - objectRef: null, - value: null, - error: null, - loading: false - } - }, - error: null + status: 'ok', + set: { + status: null + } }; - this.currentItemRef = null; + this.selectedItemRef = null; + } + + async componentDidMount() { + // We wait on this so we are sure that the set is fetched before attempting + // to set the default selected item. + await this.getSet(); + + // Note that we don't catch the error for fetching an item here, + // we let it be a runaway promise. Error catching for fetching an item + // is handled separately. + this.getSelectedItem(); } - componentDidMount() { + async getSet() { this.setState({ - state: 'loading' + ...this.state, + set: { + status: 'loading' + } }); - this.fetchSet() - .then((items) => { - if (items.length > 0) { - this.currentItemRef = items[0].ref; - } - this.setState({ - state: 'loaded', - data: { - ...this.state.data, - items: { - value: items, - error: null - } + try { + const { description, items } = await this.fetchSet(); + + // Sets the first item as selected if there are any. + if (items.length > 0) { + this.selectedItemRef = items[0].ref; + } + + this.setState({ + ...this.state, + set: { + status: 'loaded', + value: { + description, + items, + }, + selectedItem: { + status: null } - }); - this.getCurrentItem(); - }) - .catch((error) => { - console.error('Error fetching the set', error); - this.setState({ - state: 'error', + + } + }); + } catch (error) { + console.error('Error fetching the set', error); + this.setState({ + ...this.state, + set: { + status: 'error', error - }); + } }); + return; + } } - fetchSet() { + async fetchSet() { const setApi = new DynamicServiceClient({ url: this.props.serviceWizardURL, module: 'SetAPI', token: this.props.token, }); - return setApi.callFunc(this.method, [{ + const [{ data: { description, items } }] = await setApi.callFunc(this.method, [{ ref: this.props.objectRef, include_item_info: 1 - }]) - .then(([result]) => { - const { data: { description, items } } = result; - items.forEach((item) => { - item.objectInfo = ServiceUtils.objectInfoToObject(item.info); - }); - return items; - }); + }]); + + // Augment the items with objectinfo in the object form (native form is an array). + items.forEach((item) => { + item.objectInfo = ServiceUtils.objectInfoToObject(item.info); + }); + return { description, items }; } - getCurrentItem() { - if (!this.currentItemRef) { + async getSelectedItem() { + if (!this.selectedItemRef) { return; } this.setState({ - data: { - ...this.state.data, - currentItem: { - ...this.state.data.currentItem, - loading: true + ...this.state, + set: { + ...this.state.set, + selectedItem: { + // note that we keep the selected item even if we are + // (re)loading. + ...this.state.set.selectedItem, + status: 'loading' } } }); - this.fetchSetElement(this.currentItemRef) - .then((item) => { - this.setState({ - data: { - ...this.state.data, - currentItem: { - value: item, - loading: false, - error: false - } + try { + const item = await this.fetchSetElement(this.selectedItemRef); + this.setState({ + ...this.state, + set: { + ...this.state.set, + selectedItem: { + status: 'loaded', + value: item } - }); - }) - .catch((error) => { - this.setState({ - data: { - ...this.state.data, - currentItem: { - value: null, - loading: false, - error - } + } + }); + } catch (error) { + this.setState({ + ...this.state, + set: { + ...this.state.set, + selectedItem: { + status: 'error', + error } - }); + } }); + } } - fetchSetElement(ref) { + async fetchSetElement(ref) { const workspace = new ServiceClient({ url: this.props.workspaceURL, module: 'Workspace', token: this.props.token }); - return workspace.callFunc('get_objects2', [{ + const [result] = await workspace.callFunc('get_objects2', [{ objects: [{ ref }] - }]) - .then(([result]) => { - const item = result.data[0]; - item.objectInfo = ServiceUtils.objectInfoToObject(item.info); - return item; - }); + }]); + + const object = result.data[0]; + const item = object.data; + item.objectInfo = ServiceUtils.objectInfoToObject(object.info); + return item; } selectItem(itemRef) { - this.currentItemRef = itemRef; - this.getCurrentItem(); + this.selectedItemRef = itemRef; + this.getSelectedItem(); } renderError() { @@ -182,20 +196,21 @@ define([ } render() { - switch (this.state.state) { + switch (this.state.status) { case null: case 'loading': return this.renderLoading(); case 'error': - return this.renderError(); - case 'loaded': + return this.renderError(this.state.error); + case 'ok': return e(this.module, { - items: this.state.data.items, - currentItem: this.state.data.currentItem, + set: this.state.set, selectItem: (itemRef) => { this.selectItem(itemRef); } }); + default: + this.renderError(new Error(`Unsupported status ${this.state.status}`)); } } } diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css new file mode 100644 index 0000000000..118fc3298f --- /dev/null +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css @@ -0,0 +1,28 @@ +.SetComponent { + +} + +.SetComponent .Table { + display: flex; + flex-direction: column; + margin-bottom: 10px; +} + +.SetComponent .Table > .Row { + flex: 0 0 auto; + display: flex; + flex-direction: row; + margin: 4px 0; + align-items: center; + height: 1.5em; +} + +.SetComponent .Table> .Row > .Col:nth-child(1) { + font-weight: bold; + color: rgba(100, 100, 100); + flex: 0 0 15em; +} + +.SetComponent .Table > .Row > .Col:nth-child(2) { + flex: 1 1 0px +} \ No newline at end of file diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js index 90d97b7a28..49a9362784 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js @@ -1,7 +1,8 @@ define([ 'React', '../../ShowError', - 'bootstrap' + 'bootstrap', + 'css!./SetComponent.css' ], ( React, ShowError @@ -10,27 +11,9 @@ define([ const { createElement: e, Component } = React; - const rowStyle = { - flex: '0 0 auto', - display: 'flex', - flexDirection: 'row', - marginBottom: '4px' - }; - const col1Style = { - fontWeight: 'bold', - color: 'rgba(100, 100, 100)', - flex: '0 0 15em' - }; - const col2Style = { - flex: '1 1 0px' - }; - class SetComponent extends Component { constructor(props) { super(props); - this.state = { - error: null - }; this.tabsRef = null; } @@ -45,38 +28,65 @@ define([ this.props.selectItem(selectControl.value); } + renderErrorMessage(error) { + return e('span', [ + e('span', { + style: { + fontWeight: 'bold' + } + }, 'Error!'), + e('span', { + }, error.message), + ]); + } + renderItemType() { - const item = this.props.currentItem.value; - if (!item) { - return; + const selectedItem = this.props.set.selectedItem; + const content = []; + if (selectedItem.status === null) { + content.push(this.renderLoading()); + } else if (selectedItem.status === 'error') { + content.push(this.renderErrorMessage(selectedItem.error)); + } else { + if (selectedItem.value) { + content.push(e('a', { + href: `/#spec/type/${selectedItem.value.objectInfo.type}`, + target: '_blank' + }, selectedItem.value.objectInfo.type)); + } + if (selectedItem.status === 'loading') { + content.push(this.renderLoading()); + } } - return e('a', { - href: `/#spec/type/${item.objectInfo.type}`, - target: '_blank' - }, item.objectInfo.type); + + return e('div', { + style: { + display: 'inline-block', + position: 'relative' + } + }, content); } renderSelector() { return [ e('div', { - style: col1Style + className: 'Col' }, 'Select alignment to view:'), e('div', { - className: 'form-inline', - style: col2Style + className: 'form-inline Col', }, e('div', { className: 'form-group' }, [ e('select', { onChange: this.selectItem.bind(this), className: 'form-control', style: { marginLeft: '0', - marginRight: '0' + marginRight: '0', + padding: '4px' } - }, this.props.items.value.map((item) => { - const { label, ref, info } = item; - return e('option', { value: item.ref }, [ + }, this.props.set.value.items.map(({ label, ref, objectInfo }) => { + return e('option', { value: ref }, [ e('span', null, [ - item.objectInfo.name, + objectInfo.name, '(', label, ')' ])]); })) @@ -86,24 +96,31 @@ define([ renderHeader() { return e('div', { - style: { - display: 'flex', - flexDirection: 'column ', - marginBottom: '10px' - } + className: 'Table' + }, [ e('div', { - style: rowStyle + className: 'Row' + }, [ + e('div', { + className: 'Col' + }, 'Description:'), + e('div', { + className: 'Col' + }, this.props.set.value.description) + ]), + e('div', { + className: 'Row' }, [ e('div', { - style: col1Style + className: 'Col' }, 'Alignment type:'), e('div', { - style: col2Style, + className: 'Col' }, this.renderItemType()) ]), e('div', { - style: rowStyle + className: 'Row' }, this.renderSelector()), ]); } @@ -114,7 +131,6 @@ define([ const tab = e.target.parentNode; const tabPanels = tab.parentNode.nextSibling; const panel = tabPanels.querySelector('#' + tabID); - // console.log(tabID, tab, tabPanels); // iterate through siblings until none are active. const tabs = tab.parentNode; @@ -131,7 +147,67 @@ define([ panel.classList.add('active', 'in'); } - renderTabs() { + renderOverview() { + const isLoading = [null, 'loading'].includes(this.props.set.selectedItem.status); + return e('div', null, [ + this.renderHeader(), + // The item area + e('div', { + style: { + position: 'relative' + } + }, [ + isLoading ? e('div', { + style: { + position: 'absolute', + left: 0, + right: 0, + top: 0, + bottom: 0 + } + }, this.renderLoading(3)) : null, + e('div', { + style: { + minHeight: '5em' + } + }, this.renderItemTable()) + ]) + ]); + } + + renderNoItems() { + return e('div', null, 'Sorry, no items'); + } + + renderLoading(size) { + const sizeClass = (() => { + if (size) { + return `fa-${size}x`; + } + return ''; + })(); + return e('div', { + style: { + position: 'absolute', + left: 0, + right: 0, + top: 0, + bottom: 0, + backgroundColor: 'rgba(255, 255, 255, 0.5)', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center' + } + }, e('i', { + style: { + color: 'rgba(150, 150, 150, 1)', + }, + className: `fa fa-spinner fa-pulse fa-fw ${sizeClass}` + })); + } + + renderViewer() { return e('div', { ref: (x) => { this.tabsRef = x; @@ -191,71 +267,26 @@ define([ ]); } - renderOverview() { - return e('div', null, [ - this.renderHeader(), - // The item area - e('div', { - style: { - position: 'relative' + renderState() { + switch (this.props.set.status) { + case null: + case 'loading': + return this.renderLoading(); + case 'error': + return this.renderError(); + case 'loaded': + if (this.props.set.value.items.length === 0) { + return this.renderNoItems(); + } else { + return this.renderViewer(); } - }, [ - e('div', { - style: { - position: 'absolute', - left: 0, - right: 0, - top: 0, - bottom: 0 - } - }, this.renderLoading()), - e('div', { - style: { - minHeight: '5em' - } - }, this.renderItemTable()) - ]) - ]); - } - - renderNoItems() { - return e('div', null, 'Sorry, no items'); - } - - renderLoading() { - if (!this.props.currentItem.loading) { - return; } - - return e('div', { - style: { - position: 'absolute', - left: 0, - right: 0, - top: 0, - bottom: 0, - backgroundColor: 'rgba(255, 255, 255, 0.5)', - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center' - } - }, e('i', { - className: `fa fa-spinner fa-3x fa-pulse fa-fw` - })); } render() { - const items = this.props.items.value; - if (!items || items.length === 0) { - return this.renderNoItems(); - } else { - return this.renderViewer(); - } - } - - renderViewer() { - return this.renderTabs(); + return e('div', { + className: 'SetComponent' + }, this.renderState()); } } diff --git a/kbase-extension/static/kbase/js/react_components/globalReact.js b/kbase-extension/static/kbase/js/react_components/globalReact.js index bc1ab8f820..6d5bf4a1a1 100644 --- a/kbase-extension/static/kbase/js/react_components/globalReact.js +++ b/kbase-extension/static/kbase/js/react_components/globalReact.js @@ -1,5 +1,4 @@ define([], () => { 'use strict'; - console.log("HERE MF"); return window.React; }); \ No newline at end of file From d1885dbf20ffd3710b37a8dbf29c56a26f1d495e Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 5 Oct 2021 06:46:06 -0700 Subject: [PATCH 06/54] update npm deps (med security warning), upgrade testing chrome to 93, build w/ nodejs14 since GHA uses that by default (new lock file). (should specify engine in GHA workflows if want 16.) Also adds stylelint (since used at github for validating css) and basic stylelint config. --- .stylelintrc.json | 3 + package-lock.json | 12130 +++++--------------------------------------- package.json | 33 +- 3 files changed, 1373 insertions(+), 10793 deletions(-) create mode 100644 .stylelintrc.json diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000000..ee85d9b182 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "stylelint-config-standard" +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 716c777b44..b92e704e52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9621 +1,39 @@ { "name": "kbase-narrative-core", - "version": "4.5.0", - "lockfileVersion": 2, + "version": "4.5.1-alpha", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "kbase-narrative-core", - "version": "4.5.0", - "hasInstallScript": true, - "devDependencies": { - "@types/puppeteer": "5.4.4", - "@wdio/browserstack-service": "7.11.1", - "@wdio/cli": "7.11.1", - "@wdio/local-runner": "7.11.1", - "@wdio/mocha-framework": "7.11.1", - "@wdio/selenium-standalone-service": "7.10.1", - "@wdio/spec-reporter": "7.10.1", - "bower": "1.8.12", - "chrome-launcher": "0.14.0", - "chromedriver": "92.0.2", - "commander": "8.1.0", - "eslint": "7.32.0", - "eslint-config-prettier": "8.3.0", - "glob": "7.1.7", - "grunt": "1.4.1", - "grunt-cli": "1.4.3", - "grunt-contrib-copy": "1.0.0", - "grunt-regex-replace": "0.4.0", - "husky": "7.0.2", - "jasmine-ajax": "4.0.0", - "jasmine-core": "3.9.0", - "jasmine-jquery": "2.1.1", - "karma": "6.3.4", - "karma-brief-reporter": "0.2.1", - "karma-chrome-launcher": "3.1.0", - "karma-coverage": "2.0.3", - "karma-es6-shim": "1.0.0", - "karma-firefox-launcher": "2.1.1", - "karma-jasmine": "4.0.1", - "karma-jasmine-html-reporter": "1.7.0", - "karma-jasmine-matchers": "4.0.2", - "karma-json-result-reporter": "1.0.0", - "karma-mocha-reporter": "2.2.5", - "karma-requirejs": "1.1.0", - "karma-safari-launcher": "1.0.0", - "lint-staged": "11.1.2", - "msw": "0.35.0", - "prettier": "2.3.2", - "puppeteer": "10.2.0", - "requirejs": "2.3.6", - "selenium-standalone": "7.1.0", - "selenium-webdriver": "3.6.0", - "string.prototype.endswith": "1.0.0", - "string.prototype.startswith": "1.0.0", - "terser": "5.7.2", - "wdio-chromedriver-service": "7.2.0", - "webdriverio": "7.11.1" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", - "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==", - "dev": true - }, - "node_modules/@babel/core": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", - "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.3", - "@babel/helper-compilation-targets": "^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.14.2", - "@babel/types": "^7.14.2", - "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" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.14.2", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", - "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", - "dev": true, - "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.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", - "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.4" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", - "dev": true - }, - "node_modules/@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", - "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", - "dev": true, - "dependencies": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^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.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.2.tgz", - "integrity": "sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@mswjs/cookies": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.6.tgz", - "integrity": "sha512-A53XD5TOfwhpqAmwKdPtg1dva5wrng2gH5xMvklzbd9WLTSVU953eCRa8rtrrm6G7Cy60BOGsBRN89YQK0mlKA==", - "dev": true, - "dependencies": { - "@types/set-cookie-parser": "^2.4.0", - "set-cookie-parser": "^2.4.6" - } - }, - "node_modules/@mswjs/interceptors": { - "version": "0.12.6", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.12.6.tgz", - "integrity": "sha512-+1jaUpKEWXP4Yed4Lj9RftroZStw0NsEvEFjwJgc941xcaiTDYyBON4kpBY32RWd7UsW/xGE1piy8qt0Gfiqyw==", - "dev": true, - "dependencies": { - "@open-draft/until": "^1.0.3", - "@xmldom/xmldom": "^0.7.2", - "debug": "^4.3.2", - "headers-utils": "^3.0.2", - "outvariant": "^1.2.0", - "strict-event-emitter": "^0.2.0" - } - }, - "node_modules/@mswjs/interceptors/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@open-draft/until": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", - "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", - "dev": true - }, - "node_modules/@sindresorhus/is": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", - "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", - "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@testim/chrome-version": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.0.7.tgz", - "integrity": "sha512-8UT/J+xqCYfn3fKtOznAibsHpiuDshCb0fwgWxRazTT19Igp9ovoXMPhXyLD6m3CKQGTMHgqoxaFfMWaL40Rnw==", - "dev": true - }, - "node_modules/@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", - "dev": true - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", - "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", - "dev": true - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "node_modules/@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", - "dev": true - }, - "node_modules/@types/diff": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/diff/-/diff-5.0.1.tgz", - "integrity": "sha512-XIpxU6Qdvp1ZE6Kr3yrkv1qgUab0fyf4mHYvW8N3Bx3PCsbN6or1q9/q72cv5jIFWolaGH08U9XyYoLLIykyKQ==", - "dev": true - }, - "node_modules/@types/easy-table": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/easy-table/-/easy-table-0.0.33.tgz", - "integrity": "sha512-/vvqcJPmZUfQwCgemL0/34G7bIQnCuvgls379ygRlcC1FqNqk3n+VZ15dAO51yl6JNDoWd8vsk+kT8zfZ1VZSw==", - "dev": true - }, - "node_modules/@types/ejs": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.0.6.tgz", - "integrity": "sha512-fj1hi+ZSW0xPLrJJD+YNwIh9GZbyaIepG26E/gXvp8nCa2pYokxUYO1sK9qjGxp2g8ryZYuon7wmjpwE2cyASQ==", - "dev": true - }, - "node_modules/@types/fs-extra": { - "version": "9.0.11", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz", - "integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", - "dev": true - }, - "node_modules/@types/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", - "dev": true, - "dependencies": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/js-levenshtein": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.0.tgz", - "integrity": "sha512-14t0v1ICYRtRVcHASzes0v/O+TIeASb8aD55cWF1PidtInhFWSXcmhzhHqGjUWf9SUq1w70cvd1cWKUULubAfQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", - "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.170", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz", - "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==", - "dev": true - }, - "node_modules/@types/lodash.flattendeep": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@types/lodash.flattendeep/-/lodash.flattendeep-4.4.6.tgz", - "integrity": "sha512-uLm2MaRVlqJSGsMK0RZpP5T3KqReq+9WbYDHCUhBhp98v56hMG/Yht52bsoTSui9xz2mUvQ9NfG3LrNGDL92Ng==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/lodash.pickby": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/@types/lodash.pickby/-/lodash.pickby-4.6.6.tgz", - "integrity": "sha512-NFa13XxlMd9eFi0UFZFWIztpMpXhozbijrx3Yb1viYZphT7jyopIFVoIRF4eYMjruWNEG1rnyrRmg/8ej9T8Iw==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/lodash.union": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/@types/lodash.union/-/lodash.union-4.6.6.tgz", - "integrity": "sha512-Wu0ZEVNcyCz8eAn6TlUbYWZoGbH9E+iOHxAZbwUoCEXdUiy6qpcz5o44mMXViM4vlPLLCPlkAubEP1gokoSZaw==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/mocha": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", - "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "15.12.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", - "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", - "dev": true - }, - "node_modules/@types/object-inspect": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/object-inspect/-/object-inspect-1.8.1.tgz", - "integrity": "sha512-0JTdf3CGV0oWzE6Wa40Ayv2e2GhpP3pEJMcrlM74vBSJPuuNkVwfDnl0SZxyFCXETcB4oKA/MpTVfuYSMOelBg==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/puppeteer": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.4.tgz", - "integrity": "sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/recursive-readdir": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/recursive-readdir/-/recursive-readdir-2.2.0.tgz", - "integrity": "sha512-HGk753KRu2N4mWduovY4BLjYq4jTOL29gV2OfGdGxHcPSWGFkC5RRIdk+VTs5XmYd7MVAD+JwKrcb5+5Y7FOCg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/selenium-standalone": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/selenium-standalone/-/selenium-standalone-7.0.0.tgz", - "integrity": "sha512-YJD+4gF0HmkN0T7Ytl1QnQ314ZKQ7Aj+es44NKOKacbjrwcAI49e6PjrTEL3byiHHQvgFYKNwvtXJWzNMxq9hw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/set-cookie-parser": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.1.tgz", - "integrity": "sha512-N0IWe4vT1w5IOYdN9c9PNpQniHS+qe25W4tj4vfhJDJ9OkvA/YA55YUhaC+HNmMMeLlOSnBW9UMno0qlt5xu3Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "node_modules/@types/stream-buffers": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.3.tgz", - "integrity": "sha512-NeFeX7YfFZDYsCfbuaOmFQ0OjSmHreKBpp7MQ4alWQBHeh2USLsj7qyMyn9t82kjqIX516CR/5SRHnARduRtbQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==", - "dev": true - }, - "node_modules/@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/which": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz", - "integrity": "sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "node_modules/@wdio/browserstack-service": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/browserstack-service/-/browserstack-service-7.11.1.tgz", - "integrity": "sha512-TC2g6Kor15uwBKvupD2GGyT3QZnYS2sQ8MSl5YZacrWXgGvYdp7JADS/gQrTVy4beH1MrN8Ae8KnalLCh/D2GQ==", - "dev": true, - "dependencies": { - "@types/node": "^15.12.5", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "browserstack-local": "^1.4.5", - "got": "^11.0.2", - "webdriverio": "7.11.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@wdio/cli": "^7.0.0" - } - }, - "node_modules/@wdio/cli": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.11.1.tgz", - "integrity": "sha512-CGFX7vy5U9i9ccsUNmcOv+LzFaoKNFPr1+mopELld/b0wUVN9yM70jfgmUMjpHQnAMl3lqxIjBQuDrxE8/qTEw==", - "dev": true, - "dependencies": { - "@types/ejs": "^3.0.5", - "@types/fs-extra": "^9.0.4", - "@types/inquirer": "^7.3.1", - "@types/lodash.flattendeep": "^4.4.6", - "@types/lodash.pickby": "^4.6.6", - "@types/lodash.union": "^4.6.6", - "@types/node": "^15.12.5", - "@types/recursive-readdir": "^2.2.0", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", - "async-exit-hook": "^2.0.1", - "chalk": "^4.0.0", - "chokidar": "^3.0.0", - "cli-spinners": "^2.1.0", - "ejs": "^3.0.1", - "fs-extra": "^10.0.0", - "inquirer": "^8.0.0", - "lodash.flattendeep": "^4.4.0", - "lodash.pickby": "^4.6.0", - "lodash.union": "^4.6.0", - "mkdirp": "^1.0.4", - "recursive-readdir": "^2.2.2", - "webdriverio": "7.11.1", - "yargs": "^17.0.0", - "yarn-install": "^1.0.0" - }, - "bin": { - "wdio": "bin/wdio.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/config": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.10.1.tgz", - "integrity": "sha512-EA+kJBNPeIxkkyilHcmiIwqjtOUcWx5FVp69kSBs4BN2fG+6CgpzoVecuTm/qPU6D0DT5KIfxVR4FRHCF99F/g==", - "dev": true, - "dependencies": { - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "deepmerge": "^4.0.0", - "glob": "^7.1.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/local-runner": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.11.1.tgz", - "integrity": "sha512-aoRQg46RMfNdFCVqtHDYhIyhLoeXyOHLLv7Teyp+FJuqVNtpQT2eZACf8sZL2IfF7ZBP6JtvoV/MJ7sMXpOV2A==", - "dev": true, - "dependencies": { - "@types/stream-buffers": "^3.0.3", - "@wdio/logger": "7.7.0", - "@wdio/repl": "7.11.0", - "@wdio/runner": "7.11.1", - "@wdio/types": "7.10.1", - "async-exit-hook": "^2.0.1", - "split2": "^3.2.2", - "stream-buffers": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@wdio/cli": "^7.0.0" - } - }, - "node_modules/@wdio/logger": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.7.0.tgz", - "integrity": "sha512-XX/OkC8NlvsBdhKsb9j7ZbuQtF/Vuo0xf38PXdqYtVezOrYbDuba0hPG++g/IGNuAF34ZbSi+49cvz4u5w92kQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "loglevel": "^1.6.0", - "loglevel-plugin-prefix": "^0.8.4", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/mocha-framework": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.11.1.tgz", - "integrity": "sha512-66P2eTOso9W9Y0IMzhHmYZ98bfBDIkwswqJzGCrAbhuFpvOnqboF8wlrfUUADJ3b2rIVmsw02FCECNPS2EnQyQ==", - "dev": true, - "dependencies": { - "@types/mocha": "^9.0.0", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", - "expect-webdriverio": "^3.0.0", - "mocha": "^9.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/protocols": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.11.0.tgz", - "integrity": "sha512-yWKmCUmbHB1AH0U3lebXRh/G3+JtsD9Tx9fevgP9qA7Hq+rHj7KqUf15k1lPPodhOms8ncPj0J6ET1E13wh2qg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/repl": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.11.0.tgz", - "integrity": "sha512-2GtWkUqepQ0QGvdo7fLWiZklf/O4eh3AB4vcafwGVKQhE8bpSh0l8/fkXOzYU7oK/PBGHJyWXxPOVf+H5DAViA==", - "dev": true, - "dependencies": { - "@wdio/utils": "7.11.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/reporter": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-7.10.1.tgz", - "integrity": "sha512-zgyHQc6j+GzlOnwlu3yhCQ8yAaTfo0MpNQG1GCiqtSKJ2c50J2HR5d9LYWrM7L8v13X4YWMxhW+3oYT+f35Gjw==", - "dev": true, - "dependencies": { - "@types/diff": "^5.0.0", - "@types/node": "^15.12.5", - "@types/object-inspect": "^1.8.0", - "@types/supports-color": "^8.1.0", - "@wdio/types": "7.10.1", - "diff": "^5.0.0", - "fs-extra": "^10.0.0", - "object-inspect": "^1.10.3", - "supports-color": "8.1.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/reporter/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@wdio/runner": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.11.1.tgz", - "integrity": "sha512-mPKqdpk/WTwpwlCg84J/Y+6ZURUSZ8jrSoBpCVsvs9NesdIkHtxLfvlA2btmXXRw5Al7VBtN/FFCBFBp5db+1Q==", - "dev": true, - "dependencies": { - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", - "deepmerge": "^4.0.0", - "gaze": "^1.1.2", - "webdriver": "7.11.0", - "webdriverio": "7.11.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/selenium-standalone-service": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-7.10.1.tgz", - "integrity": "sha512-25J1iqNpEdqhnNe6B016Mm5+38F8WTfZ5eIRttjLSACdtsWtW2DGgMMeWvwunqNSzhfK8S6jDZ+s2nOvg+gD6A==", - "dev": true, - "dependencies": { - "@types/fs-extra": "^9.0.1", - "@types/node": "^15.12.5", - "@types/selenium-standalone": "^7.0.0", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "fs-extra": "^10.0.0", - "selenium-standalone": "^7.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@wdio/cli": "^7.0.0" - } - }, - "node_modules/@wdio/spec-reporter": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-7.10.1.tgz", - "integrity": "sha512-Yo/XvBY3OkOhs3m32KcbeilJowVO4Ii0ZeNtn4KPPV6Z4pYglV8vYdTDJ/BIinuBBJWJPbS6EFLZtrsaSuuFYg==", - "dev": true, - "dependencies": { - "@types/easy-table": "^0.0.33", - "@wdio/reporter": "7.10.1", - "@wdio/types": "7.10.1", - "chalk": "^4.0.0", - "easy-table": "^1.1.1", - "pretty-ms": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@wdio/cli": "^7.0.0" - } - }, - "node_modules/@wdio/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.10.1.tgz", - "integrity": "sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==", - "dev": true, - "dependencies": { - "@types/node": "^15.12.5", - "got": "^11.8.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@wdio/utils": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.11.0.tgz", - "integrity": "sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==", - "dev": true, - "dependencies": { - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "p-iteration": "^1.1.8" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.4.tgz", - "integrity": "sha512-wdxC79cvO7PjSM34jATd/RYZuYWQ8y/R7MidZl1NYYlbpFn1+spfjkiR3ZsJfcaTs2IyslBN7VwBBJwrYKM+zw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/add-matchers": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/add-matchers/-/add-matchers-0.6.2.tgz", - "integrity": "sha512-hVO2wodMei9RF00qe+506MoeJ/NEOdCMEkSJ12+fC3hx/5Z4zmhNiP92nJEF6XhmXokeB0hOtuQrjHCx2vmXrQ==", - "dev": true - }, - "node_modules/agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/archiver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", - "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.0", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "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" - } - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "node_modules/async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.10.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/bower": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.12.tgz", - "integrity": "sha512-u1xy9SrwwoPlgjuHNjhV+YUPVdqyBj2ALBxuzeIUKXaPI2i2xypGgxqXkuHcITGdi5yBj5JuXgyMvgiWiS1S3Q==", - "dev": true, - "bin": { - "bower": "bin/bower" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/browserstack-local": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.4.8.tgz", - "integrity": "sha512-s+mc3gTOJwELdLWi4qFVKtGwMbb5JWsR+JxKlMaJkRJxoZ0gg3WREgPxAN0bm6iU5+S4Bi0sz0oxBRZT8BiNsQ==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^4.0.0", - "is-running": "^2.1.0", - "ps-tree": "=1.2.0", - "temp-fs": "^0.9.9" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cac": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/cac/-/cac-3.0.4.tgz", - "integrity": "sha1-bSTO7Dcu/lybeYgIvH9JtHJCpO8=", - "dev": true, - "dependencies": { - "camelcase-keys": "^3.0.0", - "chalk": "^1.1.3", - "indent-string": "^3.0.0", - "minimist": "^1.2.0", - "read-pkg-up": "^1.0.1", - "suffix": "^0.1.0", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cac/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cac/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cac/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cac/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/cac/node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cac/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cac/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-3.0.0.tgz", - "integrity": "sha1-/AxsNgNj9zd+N5O5oWvM8QcMHKQ=", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001236", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz", - "integrity": "sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "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.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chrome-launcher": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.0.tgz", - "integrity": "sha512-W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/chromedriver": { - "version": "92.0.2", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-92.0.2.tgz", - "integrity": "sha512-WMBQju3eJ80gdA+JggWpuGwob5dGpuFXaab8Bxs9oN3W1WuxzRShQ4dkwvtXm4lYyBIjoNbETNk0JvsqRe5mzg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@testim/chrome-version": "^1.0.7", - "axios": "^0.21.1", - "del": "^6.0.0", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.1" - }, - "bin": { - "chromedriver": "bin/chromedriver" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/chromedriver/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/chromedriver/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-color": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz", - "integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.1.1", - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "memoizee": "^0.4.14", - "timers-ext": "^0.1.5" - } - }, - "node_modules/cli-color/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "node_modules/colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/core-js-pure": { - "version": "3.17.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.2.tgz", - "integrity": "sha512-2VV7DlIbooyTI7Bh+yzOOWL9tGwLnQKHno7qATE+fqZzDKYr6llVjVQOzpD/QLZFgXDPb8T71pJokHEZHEYJhQ==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cosmiconfig/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "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" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dev": true, - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-shorthand-properties": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz", - "integrity": "sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==", - "dev": true - }, - "node_modules/css-value": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz", - "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=", - "dev": true - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/devtools": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.11.0.tgz", - "integrity": "sha512-V3mIskCVv+OrqgJf9EU4bvoOrEx+qQ+sNoyLxqzxkFgh0wwtYIhcMiqDluL8dBKlhToV16UsYDKoqa67ylNwOg==", - "dev": true, - "dependencies": { - "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", - "chrome-launcher": "^0.14.0", - "edge-paths": "^2.1.0", - "puppeteer-core": "^10.1.0", - "query-selector-shadow-dom": "^1.0.0", - "ua-parser-js": "^0.7.21", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", - "dev": true - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", - "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/easy-table": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.1.tgz", - "integrity": "sha512-C9Lvm0WFcn2RgxbMnTbXZenMIWcBtkzMr+dWqq/JsVoGFSVUVlPqeOa5LP5kM0I3zoOazFpckOEb2/0LDFfToQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "optionalDependencies": { - "wcwidth": ">=1.0.1" - } - }, - "node_modules/edge-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/edge-paths/-/edge-paths-2.2.1.tgz", - "integrity": "sha512-AI5fC7dfDmCdKo3m5y7PkYE8m6bMqR6pvVpgtrZkkhcJXFLelUgkjrhk3kXXx8Kbw2cRaTT4LkOR7hqf39KJdw==", - "dev": true, - "dependencies": { - "@types/which": "^1.3.2", - "which": "^2.0.2" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "dev": true, - "dependencies": { - "jake": "^10.6.1" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.750", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.750.tgz", - "integrity": "sha512-Eqy9eHNepZxJXT+Pc5++zvEi5nQ6AGikwFYDCYwXUFBr+ynJ6pDG7MzZmwGYCIuXShLJM0n4bq+aoKDmvSGJ8A==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", - "dev": true, - "dependencies": { - "base64-arraybuffer": "0.1.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es5-shim": { - "version": "4.5.15", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.15.tgz", - "integrity": "sha512-FYpuxEjMeDvU4rulKqFdukQyZSTpzhg4ScQHrAosrlVpR6GFyaw14f74yn2+4BugniIS0Frpg7TvwZocU4ZMTw==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-shim": { - "version": "0.35.6", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", - "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "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.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.2.tgz", - "integrity": "sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==", - "dev": true, - "dependencies": { - "@jest/types": "^27.0.2", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.1", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-regex-util": "^27.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect-webdriverio": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-3.1.0.tgz", - "integrity": "sha512-Kn4Rtu5vKbDo95WNcjZ9XVz/qTPGZzumP9w7VSV4OxY5z6BAqSI2jb85EsqPxpavs33P+9Qse4Z+d5ilDD/dQw==", - "dev": true, - "dependencies": { - "expect": "^27.0.2", - "jest-matcher-utils": "^27.0.2" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-sync-cmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", - "dev": true - }, - "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", - "dev": true, - "dependencies": { - "glob": "~5.0.0" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/findup-sync/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fun-map": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fun-map/-/fun-map-3.3.1.tgz", - "integrity": "sha1-ZBX947k61Y+e6VZiNs/z48ZLlMs=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/getobject": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.1.tgz", - "integrity": "sha512-tj18lLe+917AACr6BdVoUuHnBPTVd9BEJp1vxnMZ58ztNvuxz9Ufa+wf3g37tlGITH35jggwZ2d9lcgHJJgXfQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/globule": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", - "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", - "dev": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/got": { - "version": "11.8.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", - "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/graphql": { - "version": "15.5.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.1.tgz", - "integrity": "sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw==", - "dev": true, - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/grunt": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.1.tgz", - "integrity": "sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA==", - "dev": true, - "dependencies": { - "dateformat": "~3.0.3", - "eventemitter2": "~0.4.13", - "exit": "~0.1.2", - "findup-sync": "~0.3.0", - "glob": "~7.1.6", - "grunt-cli": "~1.4.2", - "grunt-known-options": "~2.0.0", - "grunt-legacy-log": "~3.0.0", - "grunt-legacy-util": "~2.0.1", - "iconv-lite": "~0.4.13", - "js-yaml": "~3.14.0", - "minimatch": "~3.0.4", - "mkdirp": "~1.0.4", - "nopt": "~3.0.6", - "rimraf": "~3.0.2" - }, - "bin": { - "grunt": "bin/grunt" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/grunt-cli": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", - "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", - "dev": true, - "dependencies": { - "grunt-known-options": "~2.0.0", - "interpret": "~1.1.0", - "liftup": "~3.0.1", - "nopt": "~4.0.1", - "v8flags": "~3.2.0" - }, - "bin": { - "grunt": "bin/grunt" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/grunt-cli/node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/grunt-contrib-copy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", - "dev": true, - "dependencies": { - "chalk": "^1.1.1", - "file-sync-cmp": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-contrib-copy/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/grunt-known-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", - "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/grunt-legacy-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", - "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", - "dev": true, - "dependencies": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.19" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/grunt-legacy-log-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", - "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", - "dev": true, - "dependencies": { - "chalk": "~4.1.0", - "lodash": "~4.17.19" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/grunt-legacy-util": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", - "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", - "dev": true, - "dependencies": { - "async": "~3.2.0", - "exit": "~0.1.2", - "getobject": "~1.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.21", - "underscore.string": "~3.3.5", - "which": "~2.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/grunt-regex-replace": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/grunt-regex-replace/-/grunt-regex-replace-0.4.0.tgz", - "integrity": "sha1-SXO+vVSjF8tjCWSsKMmxcTAighw=", - "dev": true, - "bin": { - "grunt-regex-replace": "bin/grunt-regex-replace" - }, - "engines": { - "node": "*" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/headers-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz", - "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==", - "dev": true - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", - "dev": true, - "dependencies": { - "agent-base": "5", - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/husky": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.2.tgz", - "integrity": "sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.2.tgz", - "integrity": "sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.3.0", - "run-async": "^2.4.0", - "rxjs": "^7.2.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/node_modules/rxjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.2.0.tgz", - "integrity": "sha512-aX8w9OpKrQmiPKfT1bqETtUr9JygIz6GZ+gql8v7CijClsP0laoFUdKzxFAoWuRdSlOdU2+crss+cMf+cqMTnw==", - "dev": true, - "dependencies": { - "tslib": "~2.1.0" - } - }, - "node_modules/inquirer/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-node-process": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.0.1.tgz", - "integrity": "sha512-5IcdXuf++TTNt3oGl9EBdkvndXA8gmc4bz/Y+mdEpWh3Mcn/+kOw6hI7LD5CocqJWMzeb0I0ClndRVNdEPuJXQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-port-reachable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-3.0.0.tgz", - "integrity": "sha512-056IzLiWHdgVd6Eq1F9HtJl+cIkvi5X2MJ/A1fjQtByHkzQE1wGardnPhqrarOGDF88BOW+297X7PDvZ2vcyVg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-running": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-running/-/is-running-2.1.0.tgz", - "integrity": "sha1-MKc/9cw4VOT8JUkICen1q/jeCeA=", - "dev": true - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is2": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", - "integrity": "sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - }, - "engines": { - "node": ">=v0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dev": true, - "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "node_modules/jake/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/jake/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jake/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jasmine-ajax": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jasmine-ajax/-/jasmine-ajax-4.0.0.tgz", - "integrity": "sha512-htTxNw38BSHxxmd8RRMejocdPqLalGHU6n3HWFbzp/S8AuTQd1MYjkSH3dYDsbZ7EV1Xqx/b94m3tKaVSVBV2A==", - "dev": true - }, - "node_modules/jasmine-core": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.9.0.tgz", - "integrity": "sha512-Tv3kVbPCGVrjsnHBZ38NsPU3sDOtNa0XmbG2baiyJqdb5/SPpDO6GVwJYtUryl6KB4q1Ssckwg612ES9Z0dreQ==", - "dev": true - }, - "node_modules/jasmine-expect": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jasmine-expect/-/jasmine-expect-4.0.2.tgz", - "integrity": "sha512-VpHLwpBE1chVIhiJ7kJHBbdsm2GVvBli5bem4pGqkbiuvIW2mxghPNhYrKyoHBQKVmlq+xLUTGlrWMC/Ovn+2g==", - "dev": true, - "dependencies": { - "add-matchers": "0.6.2" - } - }, - "node_modules/jasmine-jquery": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/jasmine-jquery/-/jasmine-jquery-2.1.1.tgz", - "integrity": "sha1-1AleZGlEomdjI1dpqwGNnzDw1Hs=", - "dev": true - }, - "node_modules/jest-diff": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.2.tgz", - "integrity": "sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.1", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz", - "integrity": "sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.0.2", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.2.tgz", - "integrity": "sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.0.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.0.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/jest-regex-util": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.1.tgz", - "integrity": "sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jszip": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz", - "integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==", - "dev": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "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" - } - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/karma": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.4.tgz", - "integrity": "sha512-hbhRogUYIulfkBTZT7xoPrCYhRBnBoqbbL4fszWD0ReFGUxU+LYBr3dwKdAluaDQ/ynT9/7C+Lf7pPNW4gSx4Q==", - "dev": true, - "dependencies": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.3.0", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^3.1.0", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.28", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-brief-reporter": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/karma-brief-reporter/-/karma-brief-reporter-0.2.1.tgz", - "integrity": "sha512-At7qOaVbj9Co2sl5Esvmn6ZGz7L3ZmUtER3jcBdN+N3IoxVTvqvLnThK6qJa2tExsl1A7sEGQL3+AgSs6TsLvw==", - "dev": true, - "dependencies": { - "cli-color": "1.4.0", - "mkdirp": "0.5.1", - "pad-left": "2.1.0", - "pad-right": "0.2.2" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "karma": ">=4.3" - } - }, - "node_modules/karma-brief-reporter/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/karma-brief-reporter/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-chrome-launcher/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/karma-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", - "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.1", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/karma-es6-shim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/karma-es6-shim/-/karma-es6-shim-1.0.0.tgz", - "integrity": "sha1-qutTCGK895NA69WI9PnlfehCtHk=", - "dev": true, - "dependencies": { - "es5-shim": "~4.5.8", - "es6-shim": "~0.35.0" - } - }, - "node_modules/karma-firefox-launcher": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.1.tgz", - "integrity": "sha512-VzDMgPseXak9DtfyE1O5bB2BwsMy1zzO1kUxVW1rP0yhC4tDNJ0p3JoFdzvrK4QqVzdqUMa9Rx9YzkdFp8hz3Q==", - "dev": true, - "dependencies": { - "is-wsl": "^2.2.0", - "which": "^2.0.1" - } - }, - "node_modules/karma-jasmine": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", - "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", - "dev": true, - "dependencies": { - "jasmine-core": "^3.6.0" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "karma": "*" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", - "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true, - "peerDependencies": { - "jasmine-core": ">=3.8", - "karma": ">=0.9", - "karma-jasmine": ">=1.1" - } - }, - "node_modules/karma-jasmine-matchers": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-matchers/-/karma-jasmine-matchers-4.0.2.tgz", - "integrity": "sha512-NJjJ0UI7TH2Nw1kEnc3uFv//TkELlq6Z+O/Z9KScl49MCItFs8xaRthZxzDEKlwKtMAclhzbFAP9f0RHtI9g1A==", - "dev": true, - "dependencies": { - "jasmine-expect": "4.0.2" - } - }, - "node_modules/karma-json-result-reporter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/karma-json-result-reporter/-/karma-json-result-reporter-1.0.0.tgz", - "integrity": "sha1-m/qhfWEEcNCFVuSMy69k15UMclU=", - "dev": true, - "dependencies": { - "fun-map": "^3.3.1" - } - }, - "node_modules/karma-mocha-reporter": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz", - "integrity": "sha1-FRIAlejtgZGG5HoLAS8810GJVWA=", - "dev": true, - "dependencies": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "strip-ansi": "^4.0.0" - }, - "peerDependencies": { - "karma": ">=0.13" - } - }, - "node_modules/karma-mocha-reporter/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/karma-mocha-reporter/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/karma-mocha-reporter/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/karma-mocha-reporter/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/karma-mocha-reporter/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/karma-mocha-reporter/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/karma-mocha-reporter/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/karma-mocha-reporter/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/karma-requirejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz", - "integrity": "sha1-/driy4fX68FvsCIok1ZNf+5Xh5g=", - "dev": true, - "peerDependencies": { - "karma": ">=0.9", - "requirejs": "^2.1.0" - } - }, - "node_modules/karma-safari-launcher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz", - "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=", - "dev": true, - "peerDependencies": { - "karma": ">=0.9" - } - }, - "node_modules/karma/node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/karma/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ky": { - "version": "0.28.5", - "resolved": "https://registry.npmjs.org/ky/-/ky-0.28.5.tgz", - "integrity": "sha512-O5gg9kF4MeyfSw+YkgPAafOPwEUU6xcdGEJKUJmKpIPbLzk3oxUtY4OdBNekG7mawofzkyZ/ZHuR9ev5uZZdAA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/ky?sponsor=1" - } - }, - "node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "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" - } - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/liftup": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", - "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", - "dev": true, - "dependencies": { - "extend": "^3.0.2", - "findup-sync": "^4.0.0", - "fined": "^1.2.0", - "flagged-respawn": "^1.0.1", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.1", - "rechoir": "^0.7.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/liftup/node_modules/findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/lighthouse-logger": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", - "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", - "dev": true, - "dependencies": { - "debug": "^2.6.8", - "marky": "^1.2.0" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "node_modules/lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/lint-staged/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.11.0.tgz", - "integrity": "sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^1.2.2", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.7", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - } - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "node_modules/lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "node_modules/lodash.mapvalues": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.pickby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", - "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, - "node_modules/lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/log-symbols/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dev": true, - "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/log4js/node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loglevel-plugin-prefix": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", - "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", - "dev": true - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "dev": true - }, - "node_modules/marky": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.2.tgz", - "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/memoizee/node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "dependencies": { - "mime-db": "1.48.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.0.1.tgz", - "integrity": "sha512-9zwsavlRO+5csZu6iRtl3GHImAbhERoDsZwdRkdJ/bE+eVplmoxNKE901ZJ9LdSchYBjSCPbjKc5XvcAri2ylw==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.23", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.4", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/mocha/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/msw": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/msw/-/msw-0.35.0.tgz", - "integrity": "sha512-V7A6PqaS31F1k//fPS0OnO7vllfaqBUFsMEu3IpYixyWpiUInfyglodnbXhhtDyytkQikpkPZv8TZi/CvZzv/w==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@mswjs/cookies": "^0.1.6", - "@mswjs/interceptors": "^0.12.6", - "@open-draft/until": "^1.0.3", - "@types/cookie": "^0.4.1", - "@types/inquirer": "^7.3.3", - "@types/js-levenshtein": "^1.1.0", - "chalk": "^4.1.1", - "chokidar": "^3.4.2", - "cookie": "^0.4.1", - "graphql": "^15.5.1", - "headers-utils": "^3.0.2", - "inquirer": "^8.1.1", - "is-node-process": "^1.0.1", - "js-levenshtein": "^1.1.6", - "node-fetch": "^2.6.1", - "node-match-path": "^0.6.3", - "statuses": "^2.0.0", - "strict-event-emitter": "^0.2.0", - "type-fest": "^1.2.2", - "yargs": "^17.0.1" - }, - "bin": { - "msw": "cli/index.js" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mswjs" - } - }, - "node_modules/msw/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/msw/node_modules/type-fest": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.2.2.tgz", - "integrity": "sha512-pfkPYCcuV0TJoo/jlsUeWNV8rk7uMU6ocnYNvca1Vu+pyKi8Rl8Zo2scPt9O72gCsXIm+dMxOOWuA3VFDSdzWA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-match-path": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz", - "integrity": "sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q==", - "dev": true - }, - "node_modules/node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", - "dev": true - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz", - "integrity": "sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/outvariant": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.2.1.tgz", - "integrity": "sha512-bcILvFkvpMXh66+Ubax/inxbKRyWTUiiFIW2DWkiS79wakrLGn3Ydy+GvukadiyfZjaL6C7YhIem4EZSM282wA==", - "dev": true - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-iteration": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/p-iteration/-/p-iteration-1.1.8.tgz", - "integrity": "sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pad-left": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", - "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=", - "dev": true, - "dependencies": { - "repeat-string": "^1.5.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pad-right": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", - "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", - "dev": true, - "dependencies": { - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "dependencies": { - "through": "~2.3" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-format": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.2.tgz", - "integrity": "sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==", - "dev": true, - "dependencies": { - "@jest/types": "^27.0.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-ms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dev": true, - "dependencies": { - "parse-ms": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true, - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/ps-tree": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", - "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", - "dev": true, - "dependencies": { - "event-stream": "=3.3.4" - }, - "bin": { - "ps-tree": "bin/ps-tree.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/puppeteer": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.2.0.tgz", - "integrity": "sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "engines": { - "node": ">=10.18.1" - } - }, - "node_modules/puppeteer-core": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-10.2.0.tgz", - "integrity": "sha512-c1COxSnfynsE6Mtt+dW0t3TITjF9Ku4dnJbFMDDVhLQuMTYSpz4rkSP37qvzcSo3k02/Ac3GYWk0/ncp6DKZNA==", - "dev": true, - "dependencies": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "engines": { - "node": ">=10.18.1" - } - }, - "node_modules/puppeteer-core/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/puppeteer-core/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/puppeteer-core/node_modules/progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/puppeteer/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/puppeteer/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/puppeteer/node_modules/progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true, - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-selector-shadow-dom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.0.tgz", - "integrity": "sha512-bK0/0cCI+R8ZmOF1QjT7HupDUYCxbf/9TJgAmSXQxZpftXmTAeil9DRoCnTDkWbvOyZzhcMBwKpptWcdkGFIMg==", - "dev": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz", - "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", - "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dev": true, - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true, - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.2.tgz", - "integrity": "sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA==", - "dev": true - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/resq": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resq/-/resq-1.10.1.tgz", - "integrity": "sha512-zhp1iyUH02MLciv3bIM2bNtTFx/fqRsK4Jk73jcPqp00d/sMTTjOtjdTMAcgjrQKGx5DvQ/HSpeqaMW0atGRJA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1" - } - }, - "node_modules/resq/node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rgb2hex": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.5.tgz", - "integrity": "sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/selenium-standalone": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-7.1.0.tgz", - "integrity": "sha512-Pc7U48qwB4LVy/XczBrPPXwUhEPl3XQSik8SjLfj2qzBEtZqrjyzOlnnXq4aVCdr5wH9FiFJm8LwheJbK2+/oQ==", - "dev": true, - "dependencies": { - "commander": "^7.2.0", - "cross-spawn": "^7.0.3", - "debug": "^4.3.1", - "fs-extra": "^10.0.0", - "got": "^11.8.2", - "is-port-reachable": "^3.0.0", - "lodash.mapvalues": "^4.6.0", - "lodash.merge": "^4.6.2", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "progress": "2.0.3", - "tar-stream": "2.2.0", - "which": "^2.0.2", - "yauzl": "^2.10.0" - }, - "bin": { - "selenium-standalone": "bin/selenium-standalone" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/selenium-standalone/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "node_modules/serialize-error": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz", - "integrity": "sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", - "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==", - "dev": true - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/socket.io": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", - "dev": true, - "dependencies": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", - "dev": true - }, - "node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "dev": true, - "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "node_modules/split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1" - } - }, - "node_modules/streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dev": true, - "dependencies": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/streamroller/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/strict-event-emitter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.0.tgz", - "integrity": "sha512-zv7K2egoKwkQkZGEaH8m+i2D0XiKzx5jNsiSul6ja2IYFvil10A59Z9Y7PPAAe5OW53dQUf9CfsHKzjZzKkm1w==", - "dev": true, - "dependencies": { - "events": "^3.3.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.endswith": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.endswith/-/string.prototype.endswith-1.0.0.tgz", - "integrity": "sha512-nEkeFVGxS0+qKRndjEx+qPcJYAspYL/oZvVeqoCQeJlmuY8uCjyuxWBptTvlIiPgtfZkJHCgTRFKmSVVU4ZC6Q==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.startswith": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.startswith/-/string.prototype.startswith-1.0.0.tgz", - "integrity": "sha512-VHhsDkuf8gsw4JNRK9cIZjYe6r7PsVUutVohaBhqYAoPaRADoQH+mMgUg7Cs/TgQeDGEvI+PzPEMOdvdsCMvpg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/suffix": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/suffix/-/suffix-0.1.1.tgz", - "integrity": "sha1-zFgjFkag7xEC95R47zqSSP2chC8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "node_modules/tar-fs/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "dev": true, - "dependencies": { - "debug": "4.3.1", - "is2": "^2.0.6" - } - }, - "node_modules/temp-fs": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/temp-fs/-/temp-fs-0.9.9.tgz", - "integrity": "sha1-gHFzBDeHByDpQxUy/igUNk+IA9c=", - "dev": true, - "dependencies": { - "rimraf": "~2.5.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/temp-fs/node_modules/rimraf": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", - "dev": true, - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/terser": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", - "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/underscore.string": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", - "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", - "dev": true, - "dependencies": { - "sprintf-js": "^1.0.3", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/wdio-chromedriver-service": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.0.tgz", - "integrity": "sha512-0N/mEE0Bk/aoc7YZNwS5sbzzGrPWb7Lo4nA+t/bF9BwQRAokeHl/70vD2JKe/D4Wo05J2X0C1RxRS7e4iwW6KQ==", - "dev": true, - "dependencies": { - "@wdio/logger": "^7.5.3", - "fs-extra": "^9.1.0", - "split2": "^3.2.2" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@wdio/cli": "^7.0.0", - "chromedriver": "*" - } - }, - "node_modules/wdio-chromedriver-service/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/webdriver": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.11.0.tgz", - "integrity": "sha512-Sd4n3Hxz/6WDa4Ay8cJj/ICDbf2ndlAzd7NMj+dmhfDsDF7L77eCZYB8zrrxs2hoK63E54eyKzyycK3BB3WoYQ==", - "dev": true, - "dependencies": { - "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", - "got": "^11.0.2", - "ky": "^0.28.5", - "lodash.merge": "^4.6.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/webdriverio": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.11.1.tgz", - "integrity": "sha512-N796qZIqkfIJJtSNBcAimnVr3SrnEjbwjYSBqAhVdGSidUKb1k6bxjC223WFwpANGkxABJUrVkx+qGNOtc+yGg==", - "dev": true, - "dependencies": { - "@types/aria-query": "^4.2.1", - "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/repl": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", - "archiver": "^5.0.0", - "aria-query": "^4.2.2", - "atob": "^2.1.2", - "css-shorthand-properties": "^1.1.1", - "css-value": "^0.0.1", - "devtools": "7.11.0", - "devtools-protocol": "^0.0.915197", - "fs-extra": "^10.0.0", - "get-port": "^5.1.1", - "grapheme-splitter": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "lodash.isobject": "^3.0.2", - "lodash.isplainobject": "^4.0.6", - "lodash.zip": "^4.2.0", - "minimatch": "^3.0.4", - "puppeteer-core": "^10.1.0", - "query-selector-shadow-dom": "^1.0.0", - "resq": "^1.9.1", - "rgb2hex": "0.2.5", - "serialize-error": "^8.0.0", - "webdriver": "7.11.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/webdriverio/node_modules/devtools-protocol": { - "version": "0.0.915197", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.915197.tgz", - "integrity": "sha512-JXt4akUoL62CtxKLQBxcJlI7gsCZyAQ1Qb/0MZJOz8VETazoJB6+IjUwTkECrvye9AnNLDQyyV00kz/vWXVifQ==", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workerpool": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.4.tgz", - "integrity": "sha512-jGWPzsUqzkow8HoAvqaPWTUPCrlPJaJ5tY8Iz7n1uCz3tTp6s3CDG0FF1NsX42WNlkRSW6Mr+CDZGnNoSsKa7g==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", - "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yarn-install": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yarn-install/-/yarn-install-1.0.0.tgz", - "integrity": "sha1-V/RQULgu/VcYKzlzxUqgXLXSUjA=", - "dev": true, - "dependencies": { - "cac": "^3.0.3", - "chalk": "^1.1.3", - "cross-spawn": "^4.0.2" - }, - "bin": { - "yarn-install": "bin/yarn-install.js", - "yarn-remove": "bin/yarn-remove.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yarn-install/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yarn-install/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yarn-install/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yarn-install/node_modules/cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "node_modules/yarn-install/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/yarn-install/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/yarn-install/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yarn-install/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/yarn-install/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/yarn-install/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - } - }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.14.5" } }, "@babel/compat-data": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", - "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", "dev": true }, "@babel/core": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", - "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.3", - "@babel/helper-compilation-targets": "^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.14.2", - "@babel/types": "^7.14.2", + "version": "7.15.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", + "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.4", + "@babel/helper-compilation-targets": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.4", + "@babel/helpers": "^7.15.4", + "@babel/parser": "^7.15.5", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -9624,15 +42,6 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -9648,12 +57,12 @@ } }, "@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", + "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", "dev": true, "requires": { - "@babel/types": "^7.14.2", + "@babel/types": "^7.15.4", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -9667,13 +76,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", - "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", + "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-validator-option": "^7.12.17", + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" }, @@ -9687,128 +96,137 @@ } }, "@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "dev": true, + "requires": { + "@babel/types": "^7.15.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.15.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", + "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.15.4" } }, "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", + "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.15.4" } }, "@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz", + "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", "dev": true, "requires": { - "@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.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" + "@babel/helper-module-imports": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", + "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.15.4" } }, "@babel/helper-replace-supers": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", - "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", + "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.4" + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", + "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.15.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.15.4" } }, "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", "dev": true }, "@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", + "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -9872,77 +290,39 @@ } }, "@babel/parser": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", - "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", + "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", "dev": true }, - "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", - "dev": true, - "requires": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - } - }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - } + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "dev": true, "requires": { - "@babel/code-frame": "^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.14.2", - "@babel/types": "^7.14.2", + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -9952,12 +332,12 @@ } }, "@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", + "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } }, @@ -9976,6 +356,33 @@ "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } } }, "@humanwhocodes/config-array": { @@ -10002,9 +409,9 @@ "dev": true }, "@jest/types": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.2.tgz", - "integrity": "sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.4.tgz", + "integrity": "sha512-IDO2ezTxeMvQAHxzG/ZvEyA47q0aVfzT95rGFl7bZs/Go0aIucvfDbS2rmnoEdXxlLQhcolmoG/wvL/uKx4tKA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -10025,9 +432,9 @@ } }, "@mswjs/interceptors": { - "version": "0.12.6", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.12.6.tgz", - "integrity": "sha512-+1jaUpKEWXP4Yed4Lj9RftroZStw0NsEvEFjwJgc941xcaiTDYyBON4kpBY32RWd7UsW/xGE1piy8qt0Gfiqyw==", + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.12.7.tgz", + "integrity": "sha512-eGjZ3JRAt0Fzi5FgXiV/P3bJGj0NqsN7vBS0J0FO2AQRQ0jCKQS4lEFm4wvlSgKQNfeuc/Vz6d81VtU3Gkx/zg==", "dev": true, "requires": { "@open-draft/until": "^1.0.3", @@ -10036,17 +443,6 @@ "headers-utils": "^3.0.2", "outvariant": "^1.2.0", "strict-event-emitter": "^0.2.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } } }, "@nodelib/fs.scandir": { @@ -10066,9 +462,9 @@ "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", - "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", @@ -10082,15 +478,15 @@ "dev": true }, "@sindresorhus/is": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", - "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", "dev": true }, "@szmarczak/http-timer": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", - "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "dev": true, "requires": { "defer-to-connect": "^2.0.0" @@ -10109,9 +505,9 @@ "dev": true }, "@types/cacheable-request": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", - "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", "dev": true, "requires": { "@types/http-cache-semantics": "*", @@ -10133,9 +529,9 @@ "dev": true }, "@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, "@types/diff": { @@ -10151,34 +547,34 @@ "dev": true }, "@types/ejs": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.0.6.tgz", - "integrity": "sha512-fj1hi+ZSW0xPLrJJD+YNwIh9GZbyaIepG26E/gXvp8nCa2pYokxUYO1sK9qjGxp2g8ryZYuon7wmjpwE2cyASQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.0.tgz", + "integrity": "sha512-DCg+Ka+uDQ31lJ/UtEXVlaeV3d6t81gifaVWKJy4MYVVgvJttyX/viREy+If7fz+tK/gVxTGMtyrFPnm4gjrVA==", "dev": true }, "@types/fs-extra": { - "version": "9.0.11", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz", - "integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", "dev": true, "requires": { "@types/node": "*" } }, "@types/http-cache-semantics": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", "dev": true }, "@types/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", + "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", "dev": true, "requires": { "@types/through": "*", - "rxjs": "^6.4.0" + "rxjs": "^7.2.0" } }, "@types/istanbul-lib-coverage": { @@ -10212,18 +608,18 @@ "dev": true }, "@types/keyv": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", - "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", "dev": true, "requires": { "@types/node": "*" } }, "@types/lodash": { - "version": "4.14.170", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz", - "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==", + "version": "4.14.175", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.175.tgz", + "integrity": "sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==", "dev": true }, "@types/lodash.flattendeep": { @@ -10260,9 +656,9 @@ "dev": true }, "@types/node": { - "version": "15.12.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", - "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.2.tgz", + "integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==", "dev": true }, "@types/object-inspect": { @@ -10305,9 +701,9 @@ } }, "@types/selenium-standalone": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/selenium-standalone/-/selenium-standalone-7.0.0.tgz", - "integrity": "sha512-YJD+4gF0HmkN0T7Ytl1QnQ314ZKQ7Aj+es44NKOKacbjrwcAI49e6PjrTEL3byiHHQvgFYKNwvtXJWzNMxq9hw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@types/selenium-standalone/-/selenium-standalone-7.0.1.tgz", + "integrity": "sha512-zbKenL0fAXzPyiOaaFMrvFdMNhj5BgNJQq8bxiZfwQD9ID2J8bUG5xbcS3tQtlzIX/62z9nG5Vo45oaHWTbvbw==", "dev": true, "requires": { "@types/node": "*" @@ -10323,15 +719,15 @@ } }, "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "@types/stream-buffers": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.3.tgz", - "integrity": "sha512-NeFeX7YfFZDYsCfbuaOmFQ0OjSmHreKBpp7MQ4alWQBHeh2USLsj7qyMyn9t82kjqIX516CR/5SRHnARduRtbQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz", + "integrity": "sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w==", "dev": true, "requires": { "@types/node": "*" @@ -10359,24 +755,24 @@ "dev": true }, "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, "@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", "dev": true, "optional": true, "requires": { @@ -10390,77 +786,99 @@ "dev": true }, "@wdio/browserstack-service": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/browserstack-service/-/browserstack-service-7.11.1.tgz", - "integrity": "sha512-TC2g6Kor15uwBKvupD2GGyT3QZnYS2sQ8MSl5YZacrWXgGvYdp7JADS/gQrTVy4beH1MrN8Ae8KnalLCh/D2GQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/browserstack-service/-/browserstack-service-7.14.1.tgz", + "integrity": "sha512-4MXOZN5rs+pOsOJ5JrYAGeKmi6zN8B2+ZZXCtC9C91JQSzgOtXVK0iseZeBLxLIKkNG/nPjTeFuNRkx8Si5Mhg==", "dev": true, "requires": { "@types/node": "^15.12.5", "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@wdio/types": "7.14.1", "browserstack-local": "^1.4.5", "got": "^11.0.2", - "webdriverio": "7.11.1" + "webdriverio": "7.14.1" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + } } }, "@wdio/cli": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.11.1.tgz", - "integrity": "sha512-CGFX7vy5U9i9ccsUNmcOv+LzFaoKNFPr1+mopELld/b0wUVN9yM70jfgmUMjpHQnAMl3lqxIjBQuDrxE8/qTEw==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.14.1.tgz", + "integrity": "sha512-ydFsNlimP9W77NXRAYCn8xVtnS7/08UcaQT0iH0iCaaw+h9JJH4IIFhzIcPojG78g1ojEfBsQOqvD54elJpwzw==", "dev": true, "requires": { "@types/ejs": "^3.0.5", "@types/fs-extra": "^9.0.4", - "@types/inquirer": "^7.3.1", + "@types/inquirer": "^8.1.2", "@types/lodash.flattendeep": "^4.4.6", "@types/lodash.pickby": "^4.6.6", "@types/lodash.union": "^4.6.6", "@types/node": "^15.12.5", "@types/recursive-readdir": "^2.2.0", - "@wdio/config": "7.10.1", + "@wdio/config": "7.14.1", "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/types": "7.14.1", + "@wdio/utils": "7.14.1", "async-exit-hook": "^2.0.1", "chalk": "^4.0.0", "chokidar": "^3.0.0", "cli-spinners": "^2.1.0", "ejs": "^3.0.1", "fs-extra": "^10.0.0", - "inquirer": "^8.0.0", + "inquirer": "8.1.5", "lodash.flattendeep": "^4.4.0", "lodash.pickby": "^4.6.0", "lodash.union": "^4.6.0", "mkdirp": "^1.0.4", "recursive-readdir": "^2.2.2", - "webdriverio": "7.11.1", + "webdriverio": "7.14.1", "yargs": "^17.0.0", "yarn-install": "^1.0.0" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "@wdio/config": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.10.1.tgz", - "integrity": "sha512-EA+kJBNPeIxkkyilHcmiIwqjtOUcWx5FVp69kSBs4BN2fG+6CgpzoVecuTm/qPU6D0DT5KIfxVR4FRHCF99F/g==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.14.1.tgz", + "integrity": "sha512-Moa5ea/0so50OX+xm4sX9ty9vbVcIowSnm/SINayzg+waAAVbjHi10hZke8TaTsQ/kmZGeJv6Qjq8PTOZeaNCw==", "dev": true, "requires": { "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@wdio/types": "7.14.1", "deepmerge": "^4.0.0", "glob": "^7.1.2" } }, "@wdio/local-runner": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.11.1.tgz", - "integrity": "sha512-aoRQg46RMfNdFCVqtHDYhIyhLoeXyOHLLv7Teyp+FJuqVNtpQT2eZACf8sZL2IfF7ZBP6JtvoV/MJ7sMXpOV2A==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.14.1.tgz", + "integrity": "sha512-q/BXKN5hld1MpcABGTkurVKuNWy5GJNJvMamt0Fi5SLFDrTtndxaKFw9aciJiDqkJGCREVjYOOdMnsY+UmMKdg==", "dev": true, "requires": { "@types/stream-buffers": "^3.0.3", "@wdio/logger": "7.7.0", - "@wdio/repl": "7.11.0", - "@wdio/runner": "7.11.1", - "@wdio/types": "7.10.1", + "@wdio/repl": "7.14.1", + "@wdio/runner": "7.14.1", + "@wdio/types": "7.14.1", "async-exit-hook": "^2.0.1", "split2": "^3.2.2", "stream-buffers": "^3.0.2" @@ -10479,51 +897,57 @@ } }, "@wdio/mocha-framework": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.11.1.tgz", - "integrity": "sha512-66P2eTOso9W9Y0IMzhHmYZ98bfBDIkwswqJzGCrAbhuFpvOnqboF8wlrfUUADJ3b2rIVmsw02FCECNPS2EnQyQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.14.1.tgz", + "integrity": "sha512-VoFt8ziAH1KHDR7vKan0tT2I3new0Y/mU284nR/zHfUJyxrqi9P6pff6Y9wVTyjHYHsJfWstwk2v9wPKNUn6pQ==", "dev": true, "requires": { "@types/mocha": "^9.0.0", "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/types": "7.14.1", + "@wdio/utils": "7.14.1", "expect-webdriverio": "^3.0.0", "mocha": "^9.0.0" } }, "@wdio/protocols": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.11.0.tgz", - "integrity": "sha512-yWKmCUmbHB1AH0U3lebXRh/G3+JtsD9Tx9fevgP9qA7Hq+rHj7KqUf15k1lPPodhOms8ncPj0J6ET1E13wh2qg==", + "version": "7.13.2", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.13.2.tgz", + "integrity": "sha512-GUbYbV2IjPlPhlz457nMD6C0GA9yPfVtZQAwgqaKXf9yR2cuNGHHkidWivfXJNG3zws2uFm/9I1+K9OaYIKVkQ==", "dev": true }, "@wdio/repl": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.11.0.tgz", - "integrity": "sha512-2GtWkUqepQ0QGvdo7fLWiZklf/O4eh3AB4vcafwGVKQhE8bpSh0l8/fkXOzYU7oK/PBGHJyWXxPOVf+H5DAViA==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.14.1.tgz", + "integrity": "sha512-nD1RVihoEZaQ71eMyiPWMVUct40Wf8cp9Q6PZVn4MlIatRqB+X26C98qw6Bcjzfz72nEcmfkbN3tZpf9pY4saw==", "dev": true, "requires": { - "@wdio/utils": "7.11.0" + "@wdio/utils": "7.14.1" } }, "@wdio/reporter": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-7.10.1.tgz", - "integrity": "sha512-zgyHQc6j+GzlOnwlu3yhCQ8yAaTfo0MpNQG1GCiqtSKJ2c50J2HR5d9LYWrM7L8v13X4YWMxhW+3oYT+f35Gjw==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-7.14.1.tgz", + "integrity": "sha512-x/rV+aTTYf0Kj4Ti/6Yq/XEiA9k3StM6EnkMhaA3S/J6TeuQ8ZHZf6T4Lu/Izafg8F25ky0yH98HxZi2b2Fw1g==", "dev": true, "requires": { "@types/diff": "^5.0.0", "@types/node": "^15.12.5", "@types/object-inspect": "^1.8.0", "@types/supports-color": "^8.1.0", - "@wdio/types": "7.10.1", + "@wdio/types": "7.14.1", "diff": "^5.0.0", "fs-extra": "^10.0.0", "object-inspect": "^1.10.3", "supports-color": "8.1.1" }, "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -10536,76 +960,92 @@ } }, "@wdio/runner": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.11.1.tgz", - "integrity": "sha512-mPKqdpk/WTwpwlCg84J/Y+6ZURUSZ8jrSoBpCVsvs9NesdIkHtxLfvlA2btmXXRw5Al7VBtN/FFCBFBp5db+1Q==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.14.1.tgz", + "integrity": "sha512-wMnv4yQX24/kcINUPq+OcGWAlCL5NldMi45zzt2iOuCeMNEv/Scchahr0gNZ1Mc0zubyCGDzrERYsYHmYAK3Dw==", "dev": true, "requires": { - "@wdio/config": "7.10.1", + "@wdio/config": "7.14.1", "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/types": "7.14.1", + "@wdio/utils": "7.14.1", "deepmerge": "^4.0.0", "gaze": "^1.1.2", - "webdriver": "7.11.0", - "webdriverio": "7.11.1" + "webdriver": "7.14.1", + "webdriverio": "7.14.1" } }, "@wdio/selenium-standalone-service": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-7.10.1.tgz", - "integrity": "sha512-25J1iqNpEdqhnNe6B016Mm5+38F8WTfZ5eIRttjLSACdtsWtW2DGgMMeWvwunqNSzhfK8S6jDZ+s2nOvg+gD6A==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-7.14.1.tgz", + "integrity": "sha512-jciVimPFTopX/bnkU+8xPJGKFfOsqByLvXgTwJwc8jxHmK6MfkIHH8BO2Mij6FhycHvg17dH4panASDk6m10TA==", "dev": true, "requires": { "@types/fs-extra": "^9.0.1", "@types/node": "^15.12.5", "@types/selenium-standalone": "^7.0.0", - "@wdio/config": "7.10.1", + "@wdio/config": "7.14.1", "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@wdio/types": "7.14.1", "fs-extra": "^10.0.0", "selenium-standalone": "^7.0.1" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + } } }, "@wdio/spec-reporter": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-7.10.1.tgz", - "integrity": "sha512-Yo/XvBY3OkOhs3m32KcbeilJowVO4Ii0ZeNtn4KPPV6Z4pYglV8vYdTDJ/BIinuBBJWJPbS6EFLZtrsaSuuFYg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-7.14.1.tgz", + "integrity": "sha512-vViWdv2ExsgyN04QZ0w+Kj1Qi03/WR2kriOJCrGmCVZFXpZKFFOscf6irLeGL6zMRy6k86mf+AwFxV6PZB9K/w==", "dev": true, "requires": { "@types/easy-table": "^0.0.33", - "@wdio/reporter": "7.10.1", - "@wdio/types": "7.10.1", + "@wdio/reporter": "7.14.1", + "@wdio/types": "7.14.1", "chalk": "^4.0.0", "easy-table": "^1.1.1", "pretty-ms": "^7.0.0" } }, "@wdio/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.10.1.tgz", - "integrity": "sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.14.1.tgz", + "integrity": "sha512-W1ctBarjFuLz7wub6wNFd3sWfaENf1+thQL2YQW/cgFuTvhyK5hhUPoP2Q1suXBDE+qs90wWwx4z8XwDC6S8OA==", "dev": true, "requires": { "@types/node": "^15.12.5", "got": "^11.8.1" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + } } }, "@wdio/utils": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.11.0.tgz", - "integrity": "sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.14.1.tgz", + "integrity": "sha512-2LMjTiCccohUKGaHWpodIz9eF+5HApT4NVFJjWYqGQFAUrLaBrSocie7NW5+moYolY5dESYSNVB6qJlSdMbQlA==", "dev": true, "requires": { "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@wdio/types": "7.14.1", "p-iteration": "^1.1.8" } }, "@xmldom/xmldom": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.4.tgz", - "integrity": "sha512-wdxC79cvO7PjSM34jATd/RYZuYWQ8y/R7MidZl1NYYlbpFn1+spfjkiR3ZsJfcaTs2IyslBN7VwBBJwrYKM+zw==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", + "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==", "dev": true }, "abbrev": { @@ -10634,8 +1074,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "add-matchers": { "version": "0.6.2", @@ -10657,6 +1096,14 @@ "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } } }, "ajv": { @@ -10669,6 +1116,14 @@ "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } } }, "ansi-colors": { @@ -10695,9 +1150,9 @@ } }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -10766,36 +1221,20 @@ "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } } } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true }, "array-each": { "version": "1.0.1", @@ -10822,9 +1261,9 @@ "dev": true }, "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", + "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", "dev": true }, "async-exit-hook": { @@ -10846,12 +1285,12 @@ "dev": true }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.0" } }, "balanced-match": { @@ -10962,16 +1401,16 @@ "dev": true }, "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", + "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001264", + "electron-to-chromium": "^1.3.857", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "node-releases": "^1.1.77", + "picocolors": "^0.2.1" } }, "browserstack-local": { @@ -11003,9 +1442,9 @@ "dev": true }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "bytes": { @@ -11060,12 +1499,6 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -11121,9 +1554,9 @@ "dev": true }, "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true }, "camelcase-keys": { @@ -11134,26 +1567,18 @@ "requires": { "camelcase": "^3.0.0", "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } } }, "caniuse-lite": { - "version": "1.0.30001236", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz", - "integrity": "sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ==", + "version": "1.0.30001264", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001264.tgz", + "integrity": "sha512-Ftfqqfcs/ePiUmyaySsQ4PUsdcYyXG2rfoBVsk3iY1ahHaJEw65vfb7Suzqm+cEkwwPIv/XWkg27iCpRavH4zA==", "dev": true }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -11167,19 +1592,19 @@ "dev": true }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" } }, "chownr": { @@ -11201,9 +1626,9 @@ } }, "chromedriver": { - "version": "92.0.2", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-92.0.2.tgz", - "integrity": "sha512-WMBQju3eJ80gdA+JggWpuGwob5dGpuFXaab8Bxs9oN3W1WuxzRShQ4dkwvtXm4lYyBIjoNbETNk0JvsqRe5mzg==", + "version": "93.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-93.0.0.tgz", + "integrity": "sha512-WHntgiZf13rds6SjeFRgH02prad8k+wWrQSaj5QPi0kaNJUukdJNDJG7pn8OshWTKTJZ6oqgvMQ1mvnIIBY5GQ==", "dev": true, "requires": { "@testim/chrome-version": "^1.0.7", @@ -11274,9 +1699,9 @@ } }, "cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true }, "cli-truncate": { @@ -11350,9 +1775,9 @@ "dev": true }, "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, "colors": { @@ -11362,9 +1787,9 @@ "dev": true }, "commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", "dev": true }, "component-emitter": { @@ -11427,9 +1852,9 @@ "dev": true }, "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -11441,16 +1866,10 @@ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", "dev": true }, - "core-js-pure": { - "version": "3.17.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.2.tgz", - "integrity": "sha512-2VV7DlIbooyTI7Bh+yzOOWL9tGwLnQKHno7qATE+fqZzDKYr6llVjVQOzpD/QLZFgXDPb8T71pJokHEZHEYJhQ==", - "dev": true - }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "cors": { @@ -11464,9 +1883,9 @@ } }, "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -11487,6 +1906,12 @@ "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true } } }, @@ -11511,14 +1936,24 @@ } }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "lru-cache": "^4.0.1", + "which": "^1.2.9" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "css-shorthand-properties": { @@ -11562,9 +1997,9 @@ "dev": true }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -11594,9 +2029,9 @@ } }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "deepmerge": { @@ -11643,6 +2078,17 @@ "p-map": "^4.0.0", "rimraf": "^3.0.2", "slash": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "depd": { @@ -11658,29 +2104,37 @@ "dev": true }, "devtools": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.11.0.tgz", - "integrity": "sha512-V3mIskCVv+OrqgJf9EU4bvoOrEx+qQ+sNoyLxqzxkFgh0wwtYIhcMiqDluL8dBKlhToV16UsYDKoqa67ylNwOg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.14.1.tgz", + "integrity": "sha512-NpGjos9SMOZeDXnlmxKBVrbxJuPqFgLDUX/g9IlMtsjUKFq+ePcDNxTr1gRLax+boinc5UoFYPEpeFUKbBzR4Q==", "dev": true, "requires": { "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", + "@wdio/config": "7.14.1", "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/protocols": "7.13.2", + "@wdio/types": "7.14.1", + "@wdio/utils": "7.14.1", "chrome-launcher": "^0.14.0", "edge-paths": "^2.1.0", "puppeteer-core": "^10.1.0", "query-selector-shadow-dom": "^1.0.0", "ua-parser-js": "^0.7.21", "uuid": "^8.0.0" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + } } }, "devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", + "version": "0.0.927104", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.927104.tgz", + "integrity": "sha512-5jfffjSuTOv0Lz53wTNNTcCUV8rv7d82AhYcapj28bC2B5tDxEZzVb7k51cNxZP2KHw24QE+sW7ZuSeD9NfMpA==", "dev": true }, "di": { @@ -11696,9 +2150,9 @@ "dev": true }, "diff-sequences": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", - "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", "dev": true }, "dir-glob": { @@ -11708,6 +2162,14 @@ "dev": true, "requires": { "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } } }, "doctrine": { @@ -11745,6 +2207,14 @@ "requires": { "ansi-regex": "^3.0.0", "wcwidth": ">=1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } } }, "edge-paths": { @@ -11773,9 +2243,9 @@ } }, "electron-to-chromium": { - "version": "1.3.750", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.750.tgz", - "integrity": "sha512-Eqy9eHNepZxJXT+Pc5++zvEi5nQ6AGikwFYDCYwXUFBr+ynJ6pDG7MzZmwGYCIuXShLJM0n4bq+aoKDmvSGJ8A==", + "version": "1.3.859", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.859.tgz", + "integrity": "sha512-gXRXKNWedfdiKIzwr0Mg/VGCvxXzy+4SuK9hp1BDvfbCwx0O5Ot+2f4CoqQkqEJ3Zj/eAV/GoAFgBVFgkBLXuQ==", "dev": true }, "emoji-regex": { @@ -11815,9 +2285,9 @@ } }, "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", + "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", "dev": true, "requires": { "base64-arraybuffer": "0.1.4" @@ -11848,22 +2318,26 @@ } }, "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", @@ -12002,14 +2476,90 @@ "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "eslint-config-prettier": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", - "dev": true, - "requires": {} + "dev": true }, "eslint-scope": { "version": "5.1.1", @@ -12175,6 +2725,17 @@ "strip-final-newline": "^2.0.0" }, "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -12205,17 +2766,17 @@ } }, "expect": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.2.tgz", - "integrity": "sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.2.4.tgz", + "integrity": "sha512-gOtuonQ8TCnbNNCSw2fhVzRf8EFYDII4nB5NmG4IEV0rbUnW1I5zXvoTntU4iicB/Uh0oZr20NGlOLdJiwsOZA==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.2.4", "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.1", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-regex-util": "^27.0.1" + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.2.4", + "jest-message-util": "^27.2.4", + "jest-regex-util": "^27.0.6" }, "dependencies": { "ansi-styles": { @@ -12227,9 +2788,9 @@ } }, "expect-webdriverio": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-3.1.0.tgz", - "integrity": "sha512-Kn4Rtu5vKbDo95WNcjZ9XVz/qTPGZzumP9w7VSV4OxY5z6BAqSI2jb85EsqPxpavs33P+9Qse4Z+d5ilDD/dQw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-3.1.4.tgz", + "integrity": "sha512-65FTS3bmxcIp0cq6fLb/72TrCQXBCpwPLC7SwMWdpPlLq461mXcK1BPKJJjnIC587aXSKD+3E4hvnlCtwDmXfg==", "dev": true, "requires": { "expect": "^27.0.2", @@ -12237,12 +2798,12 @@ } }, "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "dev": true, "requires": { - "type": "^2.0.0" + "type": "^2.5.0" }, "dependencies": { "type": { @@ -12283,23 +2844,22 @@ } }, "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" } }, "fast-json-stable-stringify": { @@ -12315,9 +2875,9 @@ "dev": true }, "fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -12415,12 +2975,12 @@ } }, "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, @@ -12481,18 +3041,29 @@ "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", "dev": true }, "for-in": { @@ -12617,16 +3188,26 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "getobject": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.1.tgz", - "integrity": "sha512-tj18lLe+917AACr6BdVoUuHnBPTVd9BEJp1vxnMZ58ztNvuxz9Ufa+wf3g37tlGITH35jggwZ2d9lcgHJJgXfQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", + "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", "dev": true }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -12682,18 +3263,18 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, "globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -12702,14 +3283,6 @@ "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } } }, "globule": { @@ -12721,6 +3294,22 @@ "glob": "~7.1.1", "lodash": "~4.17.10", "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "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" + } + } } }, "got": { @@ -12743,9 +3332,9 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "grapheme-splitter": { @@ -12755,9 +3344,9 @@ "dev": true }, "graphql": { - "version": "15.5.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.1.tgz", - "integrity": "sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw==", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", "dev": true }, "growl": { @@ -12787,6 +3376,56 @@ "mkdirp": "~1.0.4", "nopt": "~3.0.6", "rimraf": "~3.0.2" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "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" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "grunt-cli": { @@ -12965,6 +3604,15 @@ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -13090,9 +3738,9 @@ "dev": true }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, "immediate": { @@ -13118,9 +3766,9 @@ "dev": true }, "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", "dev": true }, "inflight": { @@ -13146,9 +3794,9 @@ "dev": true }, "inquirer": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.2.tgz", - "integrity": "sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.5.tgz", + "integrity": "sha512-G6/9xUqmt/r+UvufSyrPpt84NYwhKZ9jLsgMbQzlx804XErNupor8WQdBnBRrXmBfTPpuwf1sV+ss2ovjgdXIg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -13159,29 +3807,23 @@ "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", - "ora": "^5.3.0", + "ora": "^5.4.1", "run-async": "^2.4.0", "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" - }, - "dependencies": { - "rxjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.2.0.tgz", - "integrity": "sha512-aX8w9OpKrQmiPKfT1bqETtUr9JygIz6GZ+gql8v7CijClsP0laoFUdKzxFAoWuRdSlOdU2+crss+cMf+cqMTnw==", - "dev": true, - "requires": { - "tslib": "~2.1.0" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" } }, "interpret": { @@ -13213,10 +3855,13 @@ "dev": true }, "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } }, "is-binary-path": { "version": "2.1.0", @@ -13228,34 +3873,38 @@ } }, "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", + "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-docker": { "version": "2.2.1", @@ -13276,9 +3925,9 @@ "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -13309,10 +3958,13 @@ "dev": true }, "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-obj": { "version": "1.0.1", @@ -13348,9 +4000,9 @@ } }, "is-port-reachable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-3.0.0.tgz", - "integrity": "sha512-056IzLiWHdgVd6Eq1F9HtJl+cIkvi5X2MJ/A1fjQtByHkzQE1wGardnPhqrarOGDF88BOW+297X7PDvZ2vcyVg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-3.1.0.tgz", + "integrity": "sha512-vjc0SSRNZ32s9SbZBzGaiP6YVB+xglLShhgZD/FHMZUXBvQWaV9CtzgeVhjccFJrI6RAMV+LX7NYxueW/A8W5A==", "dev": true }, "is-promise": { @@ -13360,13 +4012,13 @@ "dev": true }, "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" + "has-tostringtag": "^1.0.0" } }, "is-regexp": { @@ -13390,6 +4042,12 @@ "integrity": "sha1-MKc/9cw4VOT8JUkICen1q/jeCeA=", "dev": true }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -13397,10 +4055,13 @@ "dev": true }, "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-symbol": { "version": "1.0.4", @@ -13438,6 +4099,15 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -13489,9 +4159,9 @@ "dev": true }, "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz", + "integrity": "sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ==", "dev": true }, "istanbul-lib-instrument": { @@ -13650,67 +4320,56 @@ "dev": true }, "jest-diff": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.2.tgz", - "integrity": "sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.4.tgz", + "integrity": "sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^27.0.1", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.2.4" } }, "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", "dev": true }, "jest-matcher-utils": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz", - "integrity": "sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.4.tgz", + "integrity": "sha512-nQeLfFAIPPkyhkDfifAPfP/U5wm1x0fLtAzqXZSSKckXDNuk2aaOfQiDYv1Mgf5GY6yOsxfUnvNm3dDjXM+BXw==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.0.2", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "jest-diff": "^27.2.4", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.2.4" } }, "jest-message-util": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.2.tgz", - "integrity": "sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.4.tgz", + "integrity": "sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.0.2", + "@jest/types": "^27.2.4", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.0.2", + "pretty-format": "^27.2.4", "slash": "^3.0.0", "stack-utils": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - } } }, "jest-regex-util": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.1.tgz", - "integrity": "sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", "dev": true }, "js-levenshtein": { @@ -13726,13 +4385,12 @@ "dev": true }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsesc": { @@ -13785,9 +4443,9 @@ } }, "jszip": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz", - "integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", "dev": true, "requires": { "lie": "~3.3.0", @@ -13810,15 +4468,6 @@ "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } } } }, @@ -13859,6 +4508,15 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -13981,8 +4639,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", - "dev": true, - "requires": {} + "dev": true }, "karma-jasmine-matchers": { "version": "4.0.2", @@ -14013,6 +4670,12 @@ "strip-ansi": "^4.0.0" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -14060,6 +4723,15 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -14084,15 +4756,13 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz", "integrity": "sha1-/driy4fX68FvsCIok1ZNf+5Xh5g=", - "dev": true, - "requires": {} + "dev": true }, "karma-safari-launcher": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz", "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=", - "dev": true, - "requires": {} + "dev": true }, "keyv": { "version": "4.0.3", @@ -14138,15 +4808,6 @@ "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } } } }, @@ -14200,13 +4861,13 @@ } }, "lighthouse-logger": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", - "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", + "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", "dev": true, "requires": { - "debug": "^2.6.8", - "marky": "^1.2.0" + "debug": "^2.6.9", + "marky": "^1.2.2" }, "dependencies": { "debug": { @@ -14233,58 +4894,68 @@ "dev": true }, "lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.0.tgz", + "integrity": "sha512-0KIcRuO4HQS2Su7qWtjrfTXgSklvyIb9Fk9qVWRZkGHa5S81Vj6WBbs+ogQBvHUwLJYq1eQ4R+H82GSak4OM7w==", "dev": true, "requires": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", + "cli-truncate": "2.1.0", + "colorette": "^1.4.0", + "commander": "^8.2.0", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", + "execa": "^5.1.1", + "listr2": "^3.12.2", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "stringify-object": "3.3.0", + "supports-color": "8.1.1" }, "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "has-flag": "^4.0.0" } } } }, "listr2": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.11.0.tgz", - "integrity": "sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.2.tgz", + "integrity": "sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==", "dev": true, "requires": { "cli-truncate": "^2.1.0", - "colorette": "^1.2.2", + "colorette": "^1.4.0", "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.7", "through": "^2.3.8", "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "load-json-file": { @@ -14301,12 +4972,12 @@ } }, "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -14394,70 +5065,13 @@ "dev": true }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" } }, "log-update": { @@ -14525,12 +5139,13 @@ "dev": true }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "yallist": "^4.0.0" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "lru-queue": { @@ -14651,18 +5266,18 @@ "dev": true }, "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", "dev": true }, "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "dev": true, "requires": { - "mime-db": "1.48.0" + "mime-db": "1.50.0" } }, "mimic-fn": { @@ -14693,22 +5308,25 @@ "dev": true }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "mocha": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.0.1.tgz", - "integrity": "sha512-9zwsavlRO+5csZu6iRtl3GHImAbhERoDsZwdRkdJ/bE+eVplmoxNKE901ZJ9LdSchYBjSCPbjKc5XvcAri2ylw==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.2.tgz", + "integrity": "sha512-ta3LtJ+63RIBP03VBjMGtSqbe6cWXRejF9SyM9Zyli1CKZJZ+vfCTj3oW24V7wAphMJdpOFLoMI3hjJ1LWbs0w==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", + "chokidar": "3.5.2", + "debug": "4.3.2", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", @@ -14719,41 +5337,48 @@ "log-symbols": "4.1.0", "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.1.23", - "serialize-javascript": "5.0.1", + "nanoid": "3.1.25", + "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.4", + "workerpool": "6.1.5", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { - "argparse": "^2.0.1" + "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" } }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "p-locate": "^5.0.0" } }, "ms": { @@ -14762,6 +5387,24 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -14785,6 +5428,12 @@ "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, @@ -14822,16 +5471,41 @@ "yargs": "^17.0.1" }, "dependencies": { + "@types/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", + "dev": true, + "requires": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "type-fest": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.2.2.tgz", - "integrity": "sha512-pfkPYCcuV0TJoo/jlsUeWNV8rk7uMU6ocnYNvca1Vu+pyKi8Rl8Zo2scPt9O72gCsXIm+dMxOOWuA3VFDSdzWA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true } } @@ -14843,9 +5517,9 @@ "dev": true }, "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, "natural-compare": { @@ -14879,9 +5553,9 @@ "dev": true }, "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", "dev": true }, "nopt": { @@ -14903,14 +5577,6 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, "normalize-path": { @@ -14920,9 +5586,9 @@ "dev": true }, "normalize-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz", - "integrity": "sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true }, "npm-run-path": { @@ -14941,9 +5607,9 @@ "dev": true }, "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true }, "object-keys": { @@ -15051,18 +5717,6 @@ "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" - }, - "dependencies": { - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - } } }, "os-homedir": { @@ -15106,21 +5760,21 @@ "dev": true }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" } }, "p-map": { @@ -15249,10 +5903,15 @@ "dev": true }, "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } }, "pause-stream": { "version": "0.0.11", @@ -15269,6 +5928,12 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -15295,53 +5960,14 @@ "requires": { "pinkie": "^2.0.0" } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" } }, "please-upgrade-node": { @@ -15360,29 +5986,23 @@ "dev": true }, "prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", "dev": true }, "pretty-format": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.2.tgz", - "integrity": "sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==", + "version": "27.2.4", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.4.tgz", + "integrity": "sha512-NUjw22WJHldzxyps2YjLZkUj6q1HvjqFezkB9Y2cklN8NtVZN/kZEXGZdFw4uny3oENzV5EEMESrkI0YDUH8vg==", "dev": true, "requires": { - "@jest/types": "^27.0.2", - "ansi-regex": "^5.0.0", + "@jest/types": "^27.2.4", + "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", @@ -15413,9 +6033,9 @@ "dev": true }, "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", + "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", "dev": true }, "proxy-from-env": { @@ -15456,9 +6076,9 @@ "dev": true }, "puppeteer": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.2.0.tgz", - "integrity": "sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.4.0.tgz", + "integrity": "sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==", "dev": true, "requires": { "debug": "4.3.1", @@ -15484,6 +6104,21 @@ "debug": "4" } }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "devtools-protocol": { + "version": "0.0.901419", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", + "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", + "dev": true + }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -15494,18 +6129,21 @@ "debug": "4" } }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } } } }, "puppeteer-core": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-10.2.0.tgz", - "integrity": "sha512-c1COxSnfynsE6Mtt+dW0t3TITjF9Ku4dnJbFMDDVhLQuMTYSpz4rkSP37qvzcSo3k02/Ac3GYWk0/ncp6DKZNA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-10.4.0.tgz", + "integrity": "sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ==", "dev": true, "requires": { "debug": "4.3.1", @@ -15531,6 +6169,21 @@ "debug": "4" } }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "devtools-protocol": { + "version": "0.0.901419", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", + "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", + "dev": true + }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -15541,11 +6194,14 @@ "debug": "4" } }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } } } }, @@ -15621,19 +6277,6 @@ "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", "path-type": "^1.0.0" - }, - "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } } }, "read-pkg-up": { @@ -15688,18 +6331,18 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", - "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", "dev": true, "requires": { "resolve": "^1.9.0" @@ -15714,16 +6357,10 @@ "minimatch": "3.0.4" } }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "repeat-string": { @@ -15767,9 +6404,9 @@ } }, "resolve-alpn": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.2.tgz", - "integrity": "sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", "dev": true }, "resolve-dir": { @@ -15804,14 +6441,6 @@ "dev": true, "requires": { "fast-deep-equal": "^2.0.1" - }, - "dependencies": { - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - } } }, "restore-cursor": { @@ -15843,12 +6472,12 @@ "dev": true }, "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "^7.0.5" } }, "run-async": { @@ -15867,12 +6496,12 @@ } }, "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.3.1.tgz", + "integrity": "sha512-vNenx7gqjPyeKpRnM6S5Ksm/oFTRijWWzYlRON04KaehZ3YjDwEmVjGUGo0TKWVjeNXOujVRlh0K1drUbcdPkw==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "~2.1.0" } }, "safe-buffer": { @@ -15887,12 +6516,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, "selenium-standalone": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-7.1.0.tgz", @@ -15920,49 +6543,69 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true } } }, "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "version": "4.0.0-rc-2", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-rc-2.tgz", + "integrity": "sha512-HT974l00r7wdZL+SPS0f8lBLVYe/aKGAFONMvVroL7z9mHm3PC30IirsYqrvSkw51Pom3XJiN5gjXBRkxuHAdw==", "dev": true, "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "jszip": "^3.6.0", + "rimraf": "^3.0.2", + "tmp": "^0.2.1", + "ws": ">=7.4.6" }, "dependencies": { "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "os-tmpdir": "~1.0.1" + "rimraf": "^3.0.0" } } } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, "semver-compare": { "version": "1.0.0", @@ -15980,9 +6623,9 @@ } }, "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -16021,10 +6664,21 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", "dev": true }, "slash": { @@ -16085,9 +6739,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -16121,9 +6775,9 @@ } }, "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, "split": { @@ -16151,9 +6805,9 @@ "dev": true }, "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -16242,23 +6896,6 @@ "events": "^3.3.0" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, "string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", @@ -16266,14 +6903,14 @@ "dev": true }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "string.prototype.endswith": { @@ -16316,6 +6953,15 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -16328,20 +6974,12 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - } + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -16365,6 +7003,21 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "stylelint-config-recommended": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", + "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", + "dev": true + }, + "stylelint-config-standard": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-22.0.0.tgz", + "integrity": "sha512-uQVNi87SHjqTm8+4NIP5NMAyY/arXrBgimaaT7skvRfE9u3JKXRK9KBkbr4pVmeciuCcs64kAdjlxfq6Rur7Hw==", + "dev": true, + "requires": { + "stylelint-config-recommended": "^5.0.0" + } + }, "suffix": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/suffix/-/suffix-0.1.1.tgz", @@ -16381,23 +7034,23 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", "dev": true, "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", - "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -16406,6 +7059,12 @@ "uri-js": "^4.2.2" } }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -16424,17 +7083,6 @@ "mkdirp": "^0.5.1", "pump": "^3.0.0", "tar-stream": "^2.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } } }, "tar-stream": { @@ -16458,6 +7106,17 @@ "requires": { "debug": "4.3.1", "is2": "^2.0.6" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "temp-fs": { @@ -16467,28 +7126,17 @@ "dev": true, "requires": { "rimraf": "~2.5.2" - }, - "dependencies": { - "rimraf": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - } } }, "terser": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", - "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "source-map-support": "~0.5.20" }, "dependencies": { "commander": { @@ -16558,9 +7206,9 @@ "dev": true }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", "dev": true }, "type": { @@ -16724,9 +7372,9 @@ } }, "wdio-chromedriver-service": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.0.tgz", - "integrity": "sha512-0N/mEE0Bk/aoc7YZNwS5sbzzGrPWb7Lo4nA+t/bF9BwQRAokeHl/70vD2JKe/D4Wo05J2X0C1RxRS7e4iwW6KQ==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.2.tgz", + "integrity": "sha512-fj1R6yTgcr52g1wANdBc1KH+aXjazN81WhweAc1Y6Cfm1KVehSDbrVj2BJImU+6R/7sQKRX6fqtuA4Nsc0HUXQ==", "dev": true, "requires": { "@wdio/logger": "^7.5.3", @@ -16749,43 +7397,51 @@ } }, "webdriver": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.11.0.tgz", - "integrity": "sha512-Sd4n3Hxz/6WDa4Ay8cJj/ICDbf2ndlAzd7NMj+dmhfDsDF7L77eCZYB8zrrxs2hoK63E54eyKzyycK3BB3WoYQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.14.1.tgz", + "integrity": "sha512-YhnuVquRQBVDO4seFDSpKsT5VFTpNTK7YZIPB6MwDBsIiiXA5Lt8QJN4kBuE6zuHmRuGRFv1y1dONCxsumEtXQ==", "dev": true, "requires": { "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", + "@wdio/config": "7.14.1", "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/protocols": "7.13.2", + "@wdio/types": "7.14.1", + "@wdio/utils": "7.14.1", "got": "^11.0.2", "ky": "^0.28.5", "lodash.merge": "^4.6.1" + }, + "dependencies": { + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "dev": true + } } }, "webdriverio": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.11.1.tgz", - "integrity": "sha512-N796qZIqkfIJJtSNBcAimnVr3SrnEjbwjYSBqAhVdGSidUKb1k6bxjC223WFwpANGkxABJUrVkx+qGNOtc+yGg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.14.1.tgz", + "integrity": "sha512-LE3YbEkzqqpCt2lN4JIYSpfv1mOXUk2SCglUXHD1O/uNY/Z1hUM5iL0X7tW0Wg5QKvH5YYJ/YPmtqza1OrtNAg==", "dev": true, "requires": { "@types/aria-query": "^4.2.1", "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", + "@wdio/config": "7.14.1", "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/repl": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/protocols": "7.13.2", + "@wdio/repl": "7.14.1", + "@wdio/types": "7.14.1", + "@wdio/utils": "7.14.1", "archiver": "^5.0.0", - "aria-query": "^4.2.2", + "aria-query": "^5.0.0", "atob": "^2.1.2", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools": "7.11.0", - "devtools-protocol": "^0.0.915197", + "devtools": "7.14.1", + "devtools-protocol": "^0.0.927104", "fs-extra": "^10.0.0", "get-port": "^5.1.1", "grapheme-splitter": "^1.0.2", @@ -16799,13 +7455,13 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^8.0.0", - "webdriver": "7.11.0" + "webdriver": "7.14.1" }, "dependencies": { - "devtools-protocol": { - "version": "0.0.915197", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.915197.tgz", - "integrity": "sha512-JXt4akUoL62CtxKLQBxcJlI7gsCZyAQ1Qb/0MZJOz8VETazoJB6+IjUwTkECrvye9AnNLDQyyV00kz/vWXVifQ==", + "@types/node": { + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "dev": true } } @@ -16832,42 +7488,6 @@ "is-symbol": "^1.0.3" } }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -16875,9 +7495,9 @@ "dev": true }, "workerpool": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.4.tgz", - "integrity": "sha512-jGWPzsUqzkow8HoAvqaPWTUPCrlPJaJ5tY8Iz7n1uCz3tTp6s3CDG0FF1NsX42WNlkRSW6Mr+CDZGnNoSsKa7g==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", "dev": true }, "wrap-ansi": { @@ -16901,23 +7521,6 @@ "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "requires": {} - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true }, "y18n": { @@ -16927,9 +7530,9 @@ "dev": true }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yaml": { @@ -16939,9 +7542,9 @@ "dev": true }, "yargs": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", - "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", + "version": "17.2.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", + "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", "dev": true, "requires": { "cliui": "^7.0.2", @@ -16954,9 +7557,9 @@ } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yargs-unparser": { @@ -16969,6 +7572,14 @@ "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + } } }, "yarn-install": { @@ -17007,32 +7618,12 @@ "supports-color": "^2.0.0" } }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -17047,21 +7638,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true } } }, diff --git a/package.json b/package.json index 1e024ffd3f..6a178e01ef 100644 --- a/package.json +++ b/package.json @@ -6,19 +6,19 @@ "repository": "github.com/kbase/narrative", "devDependencies": { "@types/puppeteer": "5.4.4", - "@wdio/browserstack-service": "7.11.1", - "@wdio/cli": "7.11.1", - "@wdio/local-runner": "7.11.1", - "@wdio/mocha-framework": "7.11.1", - "@wdio/selenium-standalone-service": "7.10.1", - "@wdio/spec-reporter": "7.10.1", + "@wdio/browserstack-service": "7.14.1", + "@wdio/cli": "7.14.1", + "@wdio/local-runner": "7.14.1", + "@wdio/mocha-framework": "7.14.1", + "@wdio/selenium-standalone-service": "7.14.1", + "@wdio/spec-reporter": "7.14.1", "bower": "1.8.12", "chrome-launcher": "0.14.0", - "chromedriver": "92.0.2", - "commander": "8.1.0", + "chromedriver": "93.0.0", + "commander": "8.2.0", "eslint": "7.32.0", "eslint-config-prettier": "8.3.0", - "glob": "7.1.7", + "glob": "7.2.0", "grunt": "1.4.1", "grunt-cli": "1.4.3", "grunt-contrib-copy": "1.0.0", @@ -40,18 +40,19 @@ "karma-mocha-reporter": "2.2.5", "karma-requirejs": "1.1.0", "karma-safari-launcher": "1.0.0", - "lint-staged": "11.1.2", + "lint-staged": "11.2.0", "msw": "0.35.0", - "prettier": "2.3.2", - "puppeteer": "10.2.0", + "prettier": "2.4.1", + "puppeteer": "10.4.0", "requirejs": "2.3.6", "selenium-standalone": "7.1.0", - "selenium-webdriver": "3.6.0", + "selenium-webdriver": "4.0.0-rc-2", "string.prototype.endswith": "1.0.0", "string.prototype.startswith": "1.0.0", - "terser": "5.7.2", - "wdio-chromedriver-service": "7.2.0", - "webdriverio": "7.11.1" + "stylelint-config-standard": "22.0.0", + "terser": "5.9.0", + "wdio-chromedriver-service": "7.2.2", + "webdriverio": "7.14.1" }, "browserslist": [ "defaults" From fb5e49304dc877ccd4c4b54adc72172f0bf7f0ea Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 5 Oct 2021 06:46:42 -0700 Subject: [PATCH 07/54] address code styling issues --- .../genericSets/AssemblySet.js | 12 ------------ .../genericSets/base/SetComponent.css | 10 +++------- .../genericSets/base/SetComponent.js | 18 +++++++++--------- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js b/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js index 20b0a5791f..e9ac3ba669 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js @@ -21,7 +21,6 @@ define([ const { dna_size, gc_content, num_contigs, - // base_counts: { A, C, T, G } } = selectedItem.value; const rows = [ @@ -64,16 +63,5 @@ define([ } } - // class AssemblySetLoader extends Loader { - // constructor(props) { - // props = { - // ...props, - // method: 'get_assembly_set_v1', - // module: AssemblySet - // }; - // super(props); - // } - // } - return AssemblySetLoader; }); diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css index 118fc3298f..8f7dfb2d9f 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css @@ -1,7 +1,3 @@ -.SetComponent { - -} - .SetComponent .Table { display: flex; flex-direction: column; @@ -17,12 +13,12 @@ height: 1.5em; } -.SetComponent .Table> .Row > .Col:nth-child(1) { +.SetComponent .Table > .Row > .Col:nth-child(1) { font-weight: bold; color: rgba(100, 100, 100); flex: 0 0 15em; } .SetComponent .Table > .Row > .Col:nth-child(2) { - flex: 1 1 0px -} \ No newline at end of file + flex: 1 1 0; +} diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js index 49a9362784..ff6b27718f 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js @@ -125,26 +125,26 @@ define([ ]); } - clickTab(e) { - e.preventDefault(); - const tabID = e.target.getAttribute('href').substr(1); - const tab = e.target.parentNode; - const tabPanels = tab.parentNode.nextSibling; - const panel = tabPanels.querySelector('#' + tabID); + clickTab(event) { + event.preventDefault(); + const tabID = event.target.getAttribute('href').substr(1); + const selectetdTabElement = event.target.parentNode; + const tabPanels = selectetdTabElement.parentNode.nextSibling; + const selectedPanelElement = tabPanels.querySelector('#' + tabID); // iterate through siblings until none are active. - const tabs = tab.parentNode; + const tabs = selectetdTabElement.parentNode; for (const tab of [].slice.call(tabs.childNodes)) { tab.classList.remove('active'); } - tab.classList.add('active'); + selectetdTabElement.classList.add('active'); // same for panels for (const panel of [].slice.call(tabPanels.childNodes)) { panel.classList.remove('active', 'in'); } - panel.classList.add('active', 'in'); + selectedPanelElement.classList.add('active', 'in'); } renderOverview() { From d505ca6b105cece47b7c88ee2092ddc02b191563 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 5 Oct 2021 06:47:13 -0700 Subject: [PATCH 08/54] move mswUtils to a better home, and adjust import paths --- .../spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js | 2 +- test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js | 2 +- test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js | 2 +- test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js | 2 +- test/unit/spec/{util => utils}/mswUtils.js | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename test/unit/spec/{util => utils}/mswUtils.js (100%) diff --git a/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js b/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js index 1269fc9800..fb6659e612 100644 --- a/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js +++ b/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js @@ -1,7 +1,7 @@ define([ 'jquery', 'kbaseSampleSetView', - '../../util/mswUtils', + '../../utils/mswUtils', 'require', 'jsonrpc/1.1/ServiceClient', 'narrativeConfig', diff --git a/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js b/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js index a6704932d4..ca0a9b213f 100644 --- a/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js @@ -1,5 +1,5 @@ define([ - '../../util/mswUtils', + '../../utils/mswUtils', 'jsonrpc/1.1/DynamicServiceClient', 'jsonrpc/1.1/errors', './helpers', diff --git a/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js b/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js index f547d7f8ba..f705c3e355 100644 --- a/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js @@ -1,5 +1,5 @@ define([ - '../../util/mswUtils', + '../../utils/mswUtils', 'jsonrpc/1.1/JSONRPCClient', 'jsonrpc/1.1/errors', 'jsonrpc/1.1/jsonrpcErrors', diff --git a/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js b/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js index 48e8b238a1..78486ab873 100644 --- a/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js @@ -1,4 +1,4 @@ -define(['../../util/mswUtils', 'jsonrpc/1.1/ServiceClient', './helpers'], ( +define(['../../utils/mswUtils', 'jsonrpc/1.1/ServiceClient', './helpers'], ( mswUtils, ServiceClient, helpers diff --git a/test/unit/spec/util/mswUtils.js b/test/unit/spec/utils/mswUtils.js similarity index 100% rename from test/unit/spec/util/mswUtils.js rename to test/unit/spec/utils/mswUtils.js From 0bfc5a977fa1d3cfd2ea0ad60025724678d592c8 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 5 Oct 2021 06:55:15 -0700 Subject: [PATCH 09/54] silly tabs --- .../genericSets/base/SetComponent.css | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css index 8f7dfb2d9f..46a41327df 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css +++ b/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css @@ -1,24 +1,24 @@ .SetComponent .Table { - display: flex; - flex-direction: column; - margin-bottom: 10px; + display: flex; + flex-direction: column; + margin-bottom: 10px; } .SetComponent .Table > .Row { - flex: 0 0 auto; - display: flex; - flex-direction: row; - margin: 4px 0; - align-items: center; - height: 1.5em; + flex: 0 0 auto; + display: flex; + flex-direction: row; + margin: 4px 0; + align-items: center; + height: 1.5em; } .SetComponent .Table > .Row > .Col:nth-child(1) { - font-weight: bold; - color: rgba(100, 100, 100); - flex: 0 0 15em; + font-weight: bold; + color: rgba(100, 100, 100); + flex: 0 0 15em; } .SetComponent .Table > .Row > .Col:nth-child(2) { - flex: 1 1 0; + flex: 1 1 0; } From 2b805221ebf1d249ec84e26873d04a38a9875688 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 6 Oct 2021 08:10:22 -0700 Subject: [PATCH 10/54] add direct suppport for react and react-dom, rather than using globally installed Jupyter version. We need a library installed for testing, and it appears to be fine to have the global react and the amd-module react at the same time. --- Dockerfile | 1 + Makefile | 3 + .../kbase/js/react_components/globalReact.js | 4 -- .../js/react_components/globalReactDOM.js | 4 -- kbase-extension/static/narrative_paths.js | 5 +- package-lock.json | 61 +++++++++++++++++++ package.json | 2 + scripts/install-node-modules.sh | 4 ++ 8 files changed, 74 insertions(+), 10 deletions(-) delete mode 100644 kbase-extension/static/kbase/js/react_components/globalReact.js delete mode 100644 kbase-extension/static/kbase/js/react_components/globalReactDOM.js create mode 100644 scripts/install-node-modules.sh diff --git a/Dockerfile b/Dockerfile index 8d45aab818..6c4eaccf36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,6 +41,7 @@ RUN \ # install JS deps npm install -g grunt-cli && \ npm install && \ + npm run install-node-modules && \ ./node_modules/.bin/bower install --allow-root --config.interactive=false && \ # Compile Javascript down into an itty-bitty ball unless SKIP_MINIFY is non-empty echo Skip=$SKIP_MINIFY && \ diff --git a/Makefile b/Makefile index 7d03b30b49..e673001dcf 100755 --- a/Makefile +++ b/Makefile @@ -26,6 +26,9 @@ run-dev-image: install: bash $(INSTALLER) +install-node-modules: + bash scripts/install-node-modules.sh + # runs the installer to locally build the Narrative in a # local venv. build-travis-narrative: diff --git a/kbase-extension/static/kbase/js/react_components/globalReact.js b/kbase-extension/static/kbase/js/react_components/globalReact.js deleted file mode 100644 index 6d5bf4a1a1..0000000000 --- a/kbase-extension/static/kbase/js/react_components/globalReact.js +++ /dev/null @@ -1,4 +0,0 @@ -define([], () => { - 'use strict'; - return window.React; -}); \ No newline at end of file diff --git a/kbase-extension/static/kbase/js/react_components/globalReactDOM.js b/kbase-extension/static/kbase/js/react_components/globalReactDOM.js deleted file mode 100644 index ba34bc5983..0000000000 --- a/kbase-extension/static/kbase/js/react_components/globalReactDOM.js +++ /dev/null @@ -1,4 +0,0 @@ -define([], () => { - 'use strict'; - return window.ReactDOM; -}); \ No newline at end of file diff --git a/kbase-extension/static/narrative_paths.js b/kbase-extension/static/narrative_paths.js index bfb2dea33b..551124c6c6 100644 --- a/kbase-extension/static/narrative_paths.js +++ b/kbase-extension/static/narrative_paths.js @@ -382,8 +382,9 @@ require.config({ /* React components */ - React: 'kbase/js/react_components/globalReact', - ReactDOM: 'kbase/js/react_components/globalReactDOM', + + react: 'ext_modules/react/react.development', + 'react-dom': 'ext_modules/react-dom/react-dom.development', react_components: 'kbase/js/react_components', /*** diff --git a/package-lock.json b/package-lock.json index b92e704e52..b0bf7977fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5132,6 +5132,15 @@ "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", "dev": true }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -6038,6 +6047,25 @@ "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", "dev": true }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } + } + }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -6262,6 +6290,29 @@ "unpipe": "1.0.0" } }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -6516,6 +6567,16 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "selenium-standalone": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-7.1.0.tgz", diff --git a/package.json b/package.json index 6a178e01ef..bad7e0c2b5 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,8 @@ "prettier": "2.4.1", "puppeteer": "10.4.0", "requirejs": "2.3.6", + "react": "16.14.0", + "react-dom": "16.14.0", "selenium-standalone": "7.1.0", "selenium-webdriver": "4.0.0-rc-2", "string.prototype.endswith": "1.0.0", diff --git a/scripts/install-node-modules.sh b/scripts/install-node-modules.sh new file mode 100644 index 0000000000..ce28423d6f --- /dev/null +++ b/scripts/install-node-modules.sh @@ -0,0 +1,4 @@ +mkdir -p kbase-extension/static/ext_modules/react +cp node_modules/react/umd/react.production.min.js kbase-extension/static/ext_modules/react +mkdir -p kbase-extension/static/ext_modules/react-dom +cp node_modules/react-dom/umd/react-dom.production.min.js kbase-extension/static/ext_modules/react-dom \ No newline at end of file From e4a5e2b0bd445ef9da6ed1f5e1868a9123e90219 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 6 Oct 2021 08:11:18 -0700 Subject: [PATCH 11/54] refactor set viewer code --- .../kbase/js/react_components/ShowError.js | 33 --- .../function_output/KBaseSets/Dispatcher.js | 197 ++++++++++++++++++ .../function_output/KBaseSets/README.md | 91 ++++++++ .../function_output/KBaseSets/SetBrowser.css} | 8 +- .../function_output/KBaseSets/SetBrowser.js} | 165 ++++----------- .../function_output/KBaseSets/SetLoader.js} | 18 +- .../KBaseSets/types}/AssemblySet.js | 22 +- .../KBaseSets/types}/ReadsAlignmentSet.js | 22 +- .../function_output/kbaseGenericSetViewer.js | 136 ++---------- 9 files changed, 386 insertions(+), 306 deletions(-) delete mode 100644 kbase-extension/static/kbase/js/react_components/ShowError.js create mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js create mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md rename kbase-extension/static/kbase/js/{react_components/genericSets/base/SetComponent.css => widgets/function_output/KBaseSets/SetBrowser.css} (64%) rename kbase-extension/static/kbase/js/{react_components/genericSets/base/SetComponent.js => widgets/function_output/KBaseSets/SetBrowser.js} (51%) rename kbase-extension/static/kbase/js/{react_components/genericSets/base/Loader.js => widgets/function_output/KBaseSets/SetLoader.js} (95%) rename kbase-extension/static/kbase/js/{react_components/genericSets => widgets/function_output/KBaseSets/types}/AssemblySet.js (84%) rename kbase-extension/static/kbase/js/{react_components/genericSets => widgets/function_output/KBaseSets/types}/ReadsAlignmentSet.js (92%) diff --git a/kbase-extension/static/kbase/js/react_components/ShowError.js b/kbase-extension/static/kbase/js/react_components/ShowError.js deleted file mode 100644 index e58fc1b130..0000000000 --- a/kbase-extension/static/kbase/js/react_components/ShowError.js +++ /dev/null @@ -1,33 +0,0 @@ -define([ - 'React' -], ( - React -) => { - 'use strict'; - - const { createElement: e, Component } = React; - - class ShowError extends Component { - render() { - const error = this.props.error; - let message; - if (error.error && error.error.message) { - // handle errors thrown by kbase service clients - message = error.error.message; - } else if (error.message) { - // standard error objects - message = error.message; - } else { - message = error; - } - return e('div', { - className: 'alert alert-danger' - }, [ - 'Error: ', - message - ]); - } - } - - return ShowError; -}); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js new file mode 100644 index 0000000000..385ffb7e36 --- /dev/null +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js @@ -0,0 +1,197 @@ +/* +kbaseGenericSetViewer + +A widget which can display a data object visualization for several types of objects +in the "KBaseSets" type module. + +The primary task of this viewer is to look up the object type it is provided, and, based +on the type of the object, either dispatch to the set viewer if it is supported, or +display a warning that the type is not supported if it isn't. + +Support is indicated in the module-level `SET_TYPE_TO_MODULE_MAPPING`. + +At present just ReadsAlignmentSet and AssemblySet are supported; others should display +an error message, or are handled by other viewers. + +Note that this widget is a wrapper dispatching to the specific viewer, most of the +implementation is in the React components referred two in the AMD dependencies. The only +UI supported herein is the loading indicator and an error message, if necessary. + +The original intention of this viewer was to support all of the types implemented in KBaseSets, +but that work has not yet been completed: + +Also, see: https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_generic_set/spec.json#L21 + +Below is the status of each KBaseSet type: + +Implemented in this viewer: + +KBaseSets.ReadsAlignmentSet +SetAPI.get_reads_alignment_set_v1 + +KBaseSets.AssemblySet +SetAPI.get_assembly_set_v1 + +Implemented in other viewers: + +KBaseSets.DifferentialExpressionMatrixSet +SetAPI.get_differential_expression_matrix_set_v1 +Implemented by: +https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_differential_expression_matrix_set/spec.json +and this viewer does not work + +KBaseSets.ExpressionSet +SetAPI.get_expression_set_v1 +Implemented by: +https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_rnaseq_sample_expression/spec.json +and that viewer doesn't work + +KBaseSets.ReadsSet +SetAPI.get_reads_set_v1 +Implemented by: +https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_reads_set/spec.json +and the current viewer works + +KBaseSets.SampleSet +SetAPI.sample_set_to_samples_info (I think) +Implemented by: +https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_sample_set +but not that this viewer does not utilize the SetAPI, which was implemented against the search, which +has never been fully implemented for search. Also Samples and RNASeqSamples seem to be conflated +a bit in SetAPI. + +Not implemented anywhere: + +KBaseSets.FeatureSetSet +SetAPI.get_feature_set_set_v1 +can't find any data, or any app which outputs this type, or accepts as input (according to the app browser) + +KBaseSets.GenomeSet +SetAPI.get_genome_set_v1 + +*/ +define([ + 'react', + 'kb_common/jsonRpc/genericClient', + 'kb_service/utils', + 'widgets/function_output/KBaseSets/types/ReadsAlignmentSet', + 'widgets/function_output/KBaseSets/types/AssemblySet', + 'react_components/ErrorMessage', + + // For effect + 'bootstrap' +], ( + React, + ServiceClient, + ServiceUtils, + ReadsAlignmentSet, + AssemblySet, + ErrorMessage +) => { + 'use strict'; + + const { createElement: e, Component } = React; + + // Note that any modules referenced must be imported above, and that such modules + // must be components implemented as defined in `react_components/genericSets`. + const SET_TYPE_TO_MODULE_MAPPING = { + 'KBaseSets.ReadsAlignmentSet': { + module: ReadsAlignmentSet + }, + 'KBaseSets.AssemblySet': { + module: AssemblySet + } + }; + + /* + Implements a React component which primarily dispatches to the component which + matches the type of object provided in the prop 'objectRef'. + */ + class Dispatcher extends Component { + constructor(props) { + super(props); + this.state = { + status: null, + // setType: null, + // error: null + }; + } + + async componentDidMount() { + this.setState({ + status: 'loading' + }); + + try { + const workspace = new ServiceClient({ + url: this.props.workspaceURL, + module: 'Workspace', + token: this.props.token + }); + + const [infos] = await workspace.callFunc('get_object_info_new', [{ + objects: [{ + ref: this.props.objectRef + }] + }]); + + // Get a nicer object info (an object rather than array) + const objectInfo = ServiceUtils.objectInfoToObject(infos[0]); + + // Make a versionless object type id for lookup in the set of supported + // set types defined above. + const objectType = [objectInfo.typeModule, objectInfo.typeName].join('.'); + + const mapping = SET_TYPE_TO_MODULE_MAPPING[objectType]; + if (!mapping) { + this.setState({ + status: 'error', + error: new Error(`Unsupported set type: ${this.state.setType}`) + }); + return; + } + + this.setState({ + status: 'loaded', + setType: objectType, + module: mapping.module + }); + } catch (error) { + console.error('Error getting object info', error); + this.setState({ + status: 'error', + error + }); + } + } + + renderError() { + return e(ErrorMessage, { + error: this.state.error + }); + } + + renderLoaded() { + return e(this.state.module, { + token: this.props.token, + workspaceURL: this.props.workspaceURL, + serviceWizardURL: this.props.serviceWizardURL, + objectRef: this.props.objectRef + }); + } + + render() { + switch (this.state.status) { + case null: + case 'loading': + return e('div', null, 'Loading...'); + case 'error': + return this.renderError(); + case 'loaded': + return this.renderLoaded(); + } + } + } + + return Dispatcher; +}); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md new file mode 100644 index 0000000000..dd7e4b0246 --- /dev/null +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md @@ -0,0 +1,91 @@ +# Viewers for sets implemented in the KBaseSets type module + +THe KBaseSets [data module](https://narrative.kbase.us/#spec/module/KBaseSets) provides a generic interface for sets of various types. A partner to KBaseSets, the [Set API](https://github.com/kbaseapps/SetAPI) provides an api for accessing such sets. + +Inspecting [KBaseSets](https://narrative.kbase.us/#spec/module/KBaseSets) can give you a guide to which sets are implemented, and the general data design, but does not give you an accurate picture of the data you will actually deal with through the SetAPI. + +It is also notable, on the subject of caveats, that KBase types do not support inheritance, so the implementation of commonality for types in KBaseSets is purely by convention (copy and paste, if you will). That is, there is no actual "Generic Set" object, if you will, but rather a collection of types which, by convention, implement the same interface. + +The basic design of a set that a set implements a wrapper around an array of objects of the same type. + +The wrapper consists of a string description and an array of objects, each object being of the same type. + +In TypeScript terms, this could be defined like: + +```typescript +interface KBaseSet { + description: string; + items: Array; +} +``` + +Pretty basic, huh? + +So clearly the meat is in the `T`, I dare say. + +## Dispatcher + +The primary task of this viewer is to look up the object type it is provided, and, based +on the type of the object, either dispatch to the set viewer if it is supported, or +display a warning that the type is not supported if it isn't. + +Support is indicated in the module-level `SET_TYPE_TO_MODULE_MAPPING`. + +At present just ReadsAlignmentSet and AssemblySet are supported; others should display +an error message, or are handled by other viewers. + +Note that this widget is a wrapper dispatching to the specific viewer, most of the +implementation is in the React components referred two in the AMD dependencies. The only +UI supported herein is the loading indicator and an error message, if necessary. + +The original intention of this viewer was to support all of the types implemented in KBaseSets, +but that work has not yet been completed: + +Also, see: https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_generic_set/spec.json#L21 + +Below is the status of each KBaseSet type: + +Implemented in this viewer: + +KBaseSets.ReadsAlignmentSet +SetAPI.get_reads_alignment_set_v1 + +KBaseSets.AssemblySet +SetAPI.get_assembly_set_v1 + +Implemented in other viewers: + +KBaseSets.DifferentialExpressionMatrixSet +SetAPI.get_differential_expression_matrix_set_v1 +Implemented by: +https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_differential_expression_matrix_set/spec.json +and this viewer does not work + +KBaseSets.ExpressionSet +SetAPI.get_expression_set_v1 +Implemented by: +https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_rnaseq_sample_expression/spec.json +and that viewer doesn't work + +KBaseSets.ReadsSet +SetAPI.get_reads_set_v1 +Implemented by: +https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_reads_set/spec.json +and the current viewer works + +KBaseSets.SampleSet +SetAPI.sample_set_to_samples_info (I think) +Implemented by: +https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_sample_set +but not that this viewer does not utilize the SetAPI, which was implemented against the search, which +has never been fully implemented for search. Also Samples and RNASeqSamples seem to be conflated +a bit in SetAPI. + +Not implemented anywhere: + +KBaseSets.FeatureSetSet +SetAPI.get_feature_set_set_v1 +can't find any data, or any app which outputs this type, or accepts as input (according to the app browser) + +KBaseSets.GenomeSet +SetAPI.get_genome_set_v1 diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css similarity index 64% rename from kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css index 46a41327df..d3da6aaa47 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.css +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css @@ -1,10 +1,10 @@ -.SetComponent .Table { +.SetBrowser .Table { display: flex; flex-direction: column; margin-bottom: 10px; } -.SetComponent .Table > .Row { +.SetBrowser .Table > .Row { flex: 0 0 auto; display: flex; flex-direction: row; @@ -13,12 +13,12 @@ height: 1.5em; } -.SetComponent .Table > .Row > .Col:nth-child(1) { +.SetBrowser .Table > .Row > .Col:nth-child(1) { font-weight: bold; color: rgba(100, 100, 100); flex: 0 0 15em; } -.SetComponent .Table > .Row > .Col:nth-child(2) { +.SetBrowser .Table > .Row > .Col:nth-child(2) { flex: 1 1 0; } diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js similarity index 51% rename from kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js index ff6b27718f..8fb71c0c9d 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/SetComponent.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js @@ -1,24 +1,25 @@ define([ - 'React', - '../../ShowError', + 'react', + 'react_components/ErrorMessage', + + // For effect 'bootstrap', - 'css!./SetComponent.css' + 'css!./SetBrowser.css' ], ( React, - ShowError + ErrorMessage ) => { 'use strict'; const { createElement: e, Component } = React; - class SetComponent extends Component { + class SetBrowser extends Component { constructor(props) { super(props); - this.tabsRef = null; } renderError() { - return e(ShowError, { + return e(ErrorMessage, { error: this.state.error }); } @@ -64,99 +65,79 @@ define([ display: 'inline-block', position: 'relative' } - }, content); + }, ...content); } renderSelector() { return [ e('div', { - className: 'Col' + className: 'Col', }, 'Select alignment to view:'), e('div', { className: 'form-inline Col', - }, e('div', { className: 'form-group' }, [ - e('select', { - onChange: this.selectItem.bind(this), - className: 'form-control', - style: { - marginLeft: '0', - marginRight: '0', - padding: '4px' - } - }, this.props.set.value.items.map(({ label, ref, objectInfo }) => { - return e('option', { value: ref }, [ - e('span', null, [ - objectInfo.name, - '(', label, ')' - ])]); - })) - ])) + }, e('div', { className: 'form-group' }, e('select', { + onChange: this.selectItem.bind(this), + className: 'form-control', + style: { + marginLeft: '0', + marginRight: '0', + padding: '4px' + } + }, this.props.set.value.items.map(({ label, ref, objectInfo }) => { + if (label) { + return e('option', { value: ref, key: ref }, objectInfo.name, ' (', label, ')'); + } else { + return e('option', { value: ref, key: ref }, objectInfo.name); + } + })) + )) ]; } renderHeader() { return e('div', { - className: 'Table' - - }, [ + className: 'Table', + }, ...[ e('div', { - className: 'Row' - }, [ + className: 'Row', + }, ...[ e('div', { - className: 'Col' + className: 'Col', }, 'Description:'), e('div', { - className: 'Col' + className: 'Col', }, this.props.set.value.description) ]), e('div', { - className: 'Row' - }, [ + className: 'Row', + }, ...[ e('div', { - className: 'Col' + className: 'Col', }, 'Alignment type:'), e('div', { - className: 'Col' + className: 'Col', }, this.renderItemType()) ]), e('div', { - className: 'Row' - }, this.renderSelector()), + className: 'Row', + }, ...this.renderSelector()), ]); } - clickTab(event) { - event.preventDefault(); - const tabID = event.target.getAttribute('href').substr(1); - const selectetdTabElement = event.target.parentNode; - const tabPanels = selectetdTabElement.parentNode.nextSibling; - const selectedPanelElement = tabPanels.querySelector('#' + tabID); - - // iterate through siblings until none are active. - const tabs = selectetdTabElement.parentNode; - for (const tab of [].slice.call(tabs.childNodes)) { - tab.classList.remove('active'); - } - - selectetdTabElement.classList.add('active'); - - // same for panels - for (const panel of [].slice.call(tabPanels.childNodes)) { - panel.classList.remove('active', 'in'); - } - selectedPanelElement.classList.add('active', 'in'); + renderItemTable() { + throw new Error('renderItemTable not implemented in subclass'); } renderOverview() { const isLoading = [null, 'loading'].includes(this.props.set.selectedItem.status); - return e('div', null, [ + return e('div', { key: 'overview' }, ...[ this.renderHeader(), // The item area e('div', { style: { position: 'relative' } - }, [ + }, ...[ isLoading ? e('div', { style: { position: 'absolute', @@ -208,63 +189,7 @@ define([ } renderViewer() { - return e('div', { - ref: (x) => { - this.tabsRef = x; - } - }, [ - e('ul', { - className: 'nav nav-tabs', - role: "tablist" - }, [ - e('li', { - role: 'presentation', - className: 'active' - }, e('a', { - href: '#overview', - role: 'tab', - dataToggle: 'tab', - ariaControls: 'overview', - onClick: this.clickTab.bind(this) - }, 'Overview')), - // An example of a second tab. - // I have a feeling that tabs will need to move into the - // subclass if there is significant divergence. - // On the other hand, we may want to start with implementing tabs - // for common views across set types - comparison (all instances - // of a set in a table), metadata (about the set itself). - // Maybe custom visualizations can just be provided as an array - // of tab specs. - // h('li', { - // role: 'presentation' - // }, h('a', { - // href: '#info', - // role: 'tab', - // dataToggle: 'tab', - // ariaControls: 'info', - // onClick: this.clickTab.bind(this) - // }, 'Info')) - ]), - e('div', { - className: 'tab-content', - style: { - paddingTop: '10px' - } - }, [ - e('div', { - role: 'tabpanel', - className: 'tab-pane fade in active', - id: 'overview' - }, this.renderOverview()), - // An example of a second tab panel area. - // h('div', { - // role: 'tabpanel', - // className: 'tab-pane fade', - // id: 'info' - // }, 'info here') - - ]) - ]); + return this.renderOverview(); } renderState() { @@ -285,10 +210,10 @@ define([ render() { return e('div', { - className: 'SetComponent' + className: 'SetBrowser' }, this.renderState()); } } - return SetComponent; + return SetBrowser; }); diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js similarity index 95% rename from kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js index b3f868fbf6..fcc6b9db2c 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/base/Loader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js @@ -1,21 +1,25 @@ define([ - 'React', + 'react', 'kb_common/jsonRpc/genericClient', 'kb_common/jsonRpc/dynamicServiceClient', 'kb_service/utils', - '../../ShowError' + 'react_components/ErrorMessage' ], ( React, ServiceClient, DynamicServiceClient, ServiceUtils, - ShowError + ErrorMessage ) => { 'use strict'; const { createElement: e, Component } = React; - class Loader extends Component { + /** + * A class implementing a component which essentially forms the data backbone for + * the set component + */ + class SetLoader extends Component { constructor(props) { super(props); if (!props.method) { @@ -51,7 +55,7 @@ define([ // to set the default selected item. await this.getSet(); - // Note that we don't catch the error for fetching an item here, + // Note that we don't catch the error for fetching an item here, // we let it be a runaway promise. Error catching for fetching an item // is handled separately. this.getSelectedItem(); @@ -183,7 +187,7 @@ define([ } renderError() { - return e(ShowError, { + return e(ErrorMessage, { error: this.state.error }); } @@ -215,5 +219,5 @@ define([ } } - return Loader; + return SetLoader; }); diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js similarity index 84% rename from kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js index e9ac3ba669..c218ba9897 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/AssemblySet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js @@ -1,18 +1,18 @@ define([ - 'React', - './base/SetComponent', - './base/Loader', + 'react', + '../SetBrowser', + '../SetLoader', 'bootstrap' ], ( React, - SetComponent, - Loader + SetBrowser, + SetLoader ) => { 'use strict'; const { createElement: e, Component } = React; - class AssemblySet extends SetComponent { + class AssemblySet extends SetBrowser { renderItemTable() { const selectedItem = this.props.set.selectedItem; if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { @@ -40,22 +40,22 @@ define([ }).format(gc_content), } ]; - return e('div', null, e('table', { + return e('table', { className: 'table table-bordered table-striped' }, e('tbody', null, rows.map(({ label, value }) => { - return e('tr', null, [ + return e('tr', { key: label }, e('th', { width: '20%', style: { textAlign: 'left' } }, label), e('td', null, value) - ]); + ); })) - )); + ); } } class AssemblySetLoader extends Component { render() { - return e(Loader, { + return e(SetLoader, { ...this.props, method: 'get_assembly_set_v1', module: AssemblySet diff --git a/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js similarity index 92% rename from kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js index d63844ad3f..1eb451e541 100644 --- a/kbase-extension/static/kbase/js/react_components/genericSets/ReadsAlignmentSet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js @@ -1,18 +1,18 @@ define([ - 'React', - './base/SetComponent', - './base/Loader', + 'react', + '../SetBrowser', + '../SetLoader', 'bootstrap' ], ( React, - SetComponent, - Loader + SetBrowser, + SetLoader ) => { 'use strict'; const { createElement: e, Component } = React; - class ReadsAlignmentSet extends SetComponent { + class ReadsAlignmentSet extends SetBrowser { renderItemTable() { const selectedItem = this.props.set.selectedItem; if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { @@ -95,22 +95,22 @@ define([ ] } ]; - return e('div', null, e('table', { + return e('table', { className: 'table table-bordered table-striped' }, e('tbody', null, rows.map(({ label, value }) => { - return e('tr', null, [ + return e('tr', { key: label }, e('th', { width: '20%', style: { textAlign: 'left' } }, label), e('td', null, value) - ]); + ); })) - )); + ); } } class ReadsAlignmentSetLoader extends Component { render() { - return e(Loader, { + return e(SetLoader, { ...this.props, method: 'get_reads_alignment_set_v1', module: ReadsAlignmentSet diff --git a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js index e6d5661450..7f8f68670a 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js @@ -1,157 +1,53 @@ /* kbaseGenericSetViewer -A widget which can display a data object visualization for several types of objects + +A widget which can display a data object visualization for several types of objects in the "KBaseSets" type module. -At present just ReadsAlignmentSet and AssemblySet are supported; others should display -an error message. -Note that this widget is really just a wrapper, most of the implementation is in the React -components referred two in the AMD dependencies. +This viewer is just a wrapper around the entrypoint react component, Dispatcher. */ define([ - 'React', - 'ReactDOM', + 'react', + 'react-dom', 'kbwidget', 'kbaseAuthenticatedWidget', 'narrativeConfig', - 'kb_common/jsonRpc/genericClient', - 'kb_service/utils', - 'react_components/genericSets/ReadsAlignmentSet', - 'react_components/genericSets/AssemblySet', - 'react_components/ShowError', - 'bootstrap' + 'react_components/ErrorMessage', + 'widgets/function_output/KBaseSets/Dispatcher' ], ( React, ReactDOM, KBWidget, kbaseAuthenticatedWidget, Config, - ServiceClient, - ServiceUtils, - ReadsAlignmentSet, - AssemblySet, - ShowError + ErrorMessage, + Dispatcher ) => { 'use strict'; - const { createElement: e, Component } = React; - - /* - Main - a React component which primarily dispatches to the component which - matches the type of object provided by the prop 'objectRef'. - */ - class Main extends Component { - constructor(props) { - super(props); - this.state = { - setType: null, - error: null - }; - this.setTypes = { - 'KBaseSets.ReadsAlignmentSet': { - module: ReadsAlignmentSet - }, - 'KBaseSets.AssemblySet': { - module: AssemblySet - } - }; - } - - componentDidMount() { - const workspace = new ServiceClient({ - url: this.props.workspaceURL, - module: 'Workspace', - token: this.props.token - }); - - return workspace.callFunc('get_object_info_new', [{ - objects: [{ - ref: this.props.objectRef - }] - }]) - .then(([infos]) => { - // Get a nice object info (an object rather than array) - const objectInfo = ServiceUtils.objectInfoToObject(infos[0]); - - // Make a versionless object type id for lookup in the set of supported - // set types defined above. - const objectType = [objectInfo.typeModule, objectInfo.typeName].join('.'); - - const mapping = this.setTypes[objectType]; - if (mapping) { - this.setState({ - setType: objectType, - module: mapping.module - }); - } else { - this.setState({ - error: new Error('Unsupported set type: ' + this.state.setType) - }); - } - - this.setState({ - setType: objectType - }); - }) - .catch((error) => { - console.error('Error getting object info', error); - this.setState({ - error - }); - }); - } - - render() { - if (this.state.error) { - return e(ShowError, { - error: this.state.error - }); - } else { - if (!this.state.module) { - return e('div', null, 'Loading! I guess...'); - } - return e(this.state.module, { - token: this.props.token, - workspaceURL: this.props.workspaceURL, - serviceWizardURL: this.props.serviceWizardURL, - objectRef: this.props.objectRef - }); - } - } - } + const { createElement: e } = React; + /** + * A kbwidget which wraps the React component above. + */ return KBWidget({ name: "kbaseGenericSetViewer", parent: kbaseAuthenticatedWidget, - // Leaving this here for now, as it documents the original intention of this widget, to support - // all the following types within KBaseSets. - // Also, see: https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_generic_set/spec.json#L21 - // methodMap: { - // "KBaseSets.DifferentialExpressionMatrixSet": 'get_differential_expression_matrix_set_v1', DUP - https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_differential_expression_matrix_set/spec.json - // and the current viewer does not work - // "KBaseSets.FeatureSetSet": 'get_feature_set_set_v1', OK - not implemented - can't find any data, or any app which outputs this type, or accepts as input (according to the app browser) - // "KBaseSets.ExpressionSet": 'get_expression_set_v1', DUP - https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_rnaseq_sample_expression/spec.json - // and the current viewer doesn't work - // "KBaseSets.ReadsAlignmentSet": 'get_reads_alignment_set_v1', OK implemented - // "KBaseSets.ReadsSet": 'get_reads_set_v1', DUP - https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_reads_set/spec.json - // current viewer works - // "KBaseSets.AssemblySet": 'get_assembly_set_v1', OK - implemented - // "KBaseSets.GenomeSet": 'get_genome_set_v1', OK - not implemented - // }, + version: "1.0.0", init: function (options) { try { this._super(options); - ReactDOM.render(e(Main, { + ReactDOM.render(e(Dispatcher, { workspaceURL: Config.url('workspace'), serviceWizardURL: Config.url('service_wizard'), token: this.authToken(), objectRef: this.options.upas.obj_ref }), this.$elem[0]); } catch (ex) { - return ReactDOM.render(e(ShowError({ + return ReactDOM.render(e(ErrorMessage({ error: ex })), this.$elem[0]); } From 8f6bb25ac0de906e38cc3019964c6a99831fb9e5 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 6 Oct 2021 14:24:22 -0700 Subject: [PATCH 12/54] tests simple react component, stub test for another --- .../kbase/js/react_components/ErrorMessage.js | 48 ++++++++++++ .../react_components/ErrorMessage-spec.js | 77 +++++++++++++++++++ .../genericSets/base/Loader-spec.js | 9 +++ test/unit/test-main.js | 4 +- 4 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 kbase-extension/static/kbase/js/react_components/ErrorMessage.js create mode 100644 test/unit/spec/react_components/ErrorMessage-spec.js create mode 100644 test/unit/spec/react_components/genericSets/base/Loader-spec.js diff --git a/kbase-extension/static/kbase/js/react_components/ErrorMessage.js b/kbase-extension/static/kbase/js/react_components/ErrorMessage.js new file mode 100644 index 0000000000..5b68bc0793 --- /dev/null +++ b/kbase-extension/static/kbase/js/react_components/ErrorMessage.js @@ -0,0 +1,48 @@ +define([ + 'react' +], ( + React +) => { + 'use strict'; + + const { createElement: e, Component } = React; + + /** + * A class to display an error message. + * + * This is a simple error viewer. It does not show extended information like + * stacktrace, or richer data from Service clients, like the error code. + * It should handle service client errors, any error based on the Error class, + * any object which has a "message" property, and a simple string. + */ + class ErrorMessage extends Component { + render() { + const error = this.props.error; + let message; + if (typeof error === 'object' && error !== null) { + if (error.error && error.error.message) { + // handle errors thrown by kbase service clients + message = error.error.message; + } else if (error.message) { + // Standard Error objects or descendants, or those which act like one in this regard. + message = error.message; + } else { + message = 'Unknown Error'; + } + } else if (typeof error === 'string') { + message = error; + } else { + message = 'Unknown Error'; + } + + return e('div', { + className: 'alert alert-danger' + }, [ + 'Error: ', + message + ]); + } + } + + return ErrorMessage; +}); diff --git a/test/unit/spec/react_components/ErrorMessage-spec.js b/test/unit/spec/react_components/ErrorMessage-spec.js new file mode 100644 index 0000000000..8779d96f5c --- /dev/null +++ b/test/unit/spec/react_components/ErrorMessage-spec.js @@ -0,0 +1,77 @@ +define(['react_components/ErrorMessage', 'react', 'react-dom'], (ErrorMessage, React, ReactDOM) => { + 'use strict'; + + const { createElement } = React; + const { render } = ReactDOM; + + describe('The ErrorMessage class', () => { + it('should be defined', () => { + expect(ErrorMessage).toBeDefined(); + }); + + it('should display a simple string error message', () => { + + // create a dom node. + const node = document.createElement('div'); + + // install our component there + const el = createElement(ErrorMessage, { error: 'foo' }, null); + render(el, node); + expect(node.innerText).toContain('foo'); + }); + + it('should display a simple Error object message', () => { + // create a dom node. + const node = document.createElement('div'); + + // install our component there + const el = createElement(ErrorMessage, { error: new Error('bar') }, null); + render(el, node); + expect(node.innerText).toContain('bar'); + }); + + it('should display a simple Error-like object', () => { + // create a dom node. + const node = document.createElement('div'); + + // install our component there + const el = createElement(ErrorMessage, { error: { message: 'baz' } }, null); + render(el, node); + expect(node.innerText).toContain('baz'); + }); + + it('should display a KBase service-error-like object', () => { + // create a dom node. + const node = document.createElement('div'); + + // install our component there + const el = createElement(ErrorMessage, { error: { error: { message: 'buzz' } } }, null); + render(el, node); + expect(node.innerText).toContain('buzz'); + }); + + it('should display a default error message if it is an unsupported type', () => { + // create a dom node. + const node = document.createElement('div'); + + // install our component there + const unsupportedTypes = [ + null, + true, + false, + 1, + 0, + -1, + {}, + { foo: 'bar' }, + [], + [1, 2, 3] + ]; + for (const unsupported of unsupportedTypes) { + const el = createElement(ErrorMessage, { error: unsupported }); + render(el, node); + expect(node.innerText).toContain('Unknown Error'); + } + }); + }); +}); diff --git a/test/unit/spec/react_components/genericSets/base/Loader-spec.js b/test/unit/spec/react_components/genericSets/base/Loader-spec.js new file mode 100644 index 0000000000..89b9f82ba5 --- /dev/null +++ b/test/unit/spec/react_components/genericSets/base/Loader-spec.js @@ -0,0 +1,9 @@ +define(['widgets/function_output/KBaseSets/SetLoader'], (SetLoader) => { + 'use strict'; + + describe('The Loader class', () => { + it('should be defined', () => { + expect(SetLoader).toBeDefined(); + }); + }); +}); diff --git a/test/unit/test-main.js b/test/unit/test-main.js index 2f3f366168..6c00f33899 100644 --- a/test/unit/test-main.js +++ b/test/unit/test-main.js @@ -19,7 +19,7 @@ document.nbjs_translations = { }; // hack to spoof createReactClass, needed by a Jupyter component we aren't testing. -window.createReactClass = () => {}; +window.createReactClass = () => { }; requirejs.config({ baseUrl: '/narrative/static/', @@ -37,6 +37,8 @@ requirejs.config({ // Note that this is only provided in the testing amd module configuration; // Mock Service Worker (MSW) is not active in the actual Narrative web app. msw: 'ext_modules/msw/index', + // React: 'ext_modules/react/react.development', + // ReactDOM: 'ext_modules/react/react-dom.development', }, map: { '*': { From 7d49f126b2a6d697a9927713578dd83a12845d1a Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 6 Oct 2021 16:10:59 -0700 Subject: [PATCH 13/54] add peer dependency stylelint; change name of install-npm -> install-node-modules --- package-lock.json | 967 ++++++++++++++++++++++++++++++++ package.json | 3 +- scripts/install-node-modules.sh | 4 +- scripts/install_narrative.sh | 2 +- 4 files changed, 972 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0bf7977fd..0113774c70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -483,6 +483,25 @@ "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", "dev": true }, + "@stylelint/postcss-css-in-js": { + "version": "0.37.2", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", + "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", + "dev": true, + "requires": { + "@babel/core": ">=7.9.0" + } + }, + "@stylelint/postcss-markdown": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", + "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", + "dev": true, + "requires": { + "remark": "^13.0.0", + "unist-util-find-all-after": "^3.0.2" + } + }, "@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -649,6 +668,21 @@ "@types/lodash": "*" } }, + "@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, "@types/mocha": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", @@ -661,6 +695,12 @@ "integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==", "dev": true }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "@types/object-inspect": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@types/object-inspect/-/object-inspect-1.8.1.tgz", @@ -748,6 +788,12 @@ "@types/node": "*" } }, + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, "@types/which": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz", @@ -1254,6 +1300,12 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -1284,6 +1336,21 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, "axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -1293,6 +1360,12 @@ "follow-redirects": "^1.14.0" } }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1585,6 +1658,24 @@ "supports-color": "^7.1.0" } }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -1750,6 +1841,23 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "requires": { + "is-regexp": "^2.0.0" + }, + "dependencies": { + "is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true + } + } + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -1968,6 +2076,12 @@ "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=", "dev": true }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", @@ -2011,6 +2125,24 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + } + } + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -2193,6 +2325,55 @@ "void-elements": "^2.0.0" } }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -2308,6 +2489,12 @@ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2744,6 +2931,15 @@ } } }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "requires": { + "clone-regexp": "^2.1.0" + } + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -2874,6 +3070,12 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -3179,6 +3381,12 @@ "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -3285,6 +3493,12 @@ "slash": "^3.0.0" } }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, "globule": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", @@ -3312,6 +3526,15 @@ } } }, + "gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "got": { "version": "11.8.2", "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", @@ -3560,6 +3783,12 @@ "integrity": "sha1-SXO+vVSjF8tjCWSsKMmxcTAighw=", "dev": true }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3652,6 +3881,26 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -3759,6 +4008,12 @@ "resolve-from": "^4.0.0" } }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -3848,6 +4103,22 @@ "is-windows": "^1.0.1" } }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3882,6 +4153,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -3906,6 +4183,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true + }, "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -3933,6 +4216,12 @@ "is-extglob": "^2.1.1" } }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true + }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -4072,6 +4361,12 @@ "has-symbols": "^1.0.2" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -4779,6 +5074,12 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "known-css-properties": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", + "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", + "dev": true + }, "ky": { "version": "0.28.5", "resolved": "https://registry.npmjs.org/ky/-/ky-0.28.5.tgz", @@ -5132,6 +5433,12 @@ "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", "dev": true }, + "longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "dev": true + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -5216,6 +5523,45 @@ "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", "dev": true }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, + "mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + } + }, + "mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5246,6 +5592,189 @@ } } }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@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" + } + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5258,6 +5787,16 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, + "micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "requires": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -5301,6 +5840,12 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -5316,6 +5861,25 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + } + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -5594,6 +6158,18 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -5609,6 +6185,12 @@ "path-key": "^3.0.0" } }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -5834,6 +6416,20 @@ "callsites": "^3.0.0" } }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, "parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -5988,6 +6584,96 @@ "semver-compare": "^1.0.0" } }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-html": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", + "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "dev": true, + "requires": { + "htmlparser2": "^3.10.0" + } + }, + "postcss-less": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", + "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "postcss-safe-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", + "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", + "dev": true, + "requires": { + "postcss": "^7.0.26" + } + }, + "postcss-sass": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", + "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "postcss": "^7.0.21" + } + }, + "postcss-scss": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", + "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", + "dev": true, + "requires": { + "postcss": "^7.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-syntax": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", + "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", + "dev": true + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -6408,12 +7094,59 @@ "minimatch": "3.0.4" } }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "remark": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", + "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", + "dev": true, + "requires": { + "remark-parse": "^9.0.0", + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" + } + }, + "remark-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "dev": true, + "requires": { + "mdast-util-from-markdown": "^0.8.0" + } + }, + "remark-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", + "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "dev": true, + "requires": { + "mdast-util-to-markdown": "^0.6.0" + } + }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -6841,6 +7574,12 @@ "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, + "specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true + }, "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", @@ -7058,12 +7797,126 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "stylelint": { + "version": "13.13.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", + "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", + "dev": true, + "requires": { + "@stylelint/postcss-css-in-js": "^0.37.2", + "@stylelint/postcss-markdown": "^0.36.2", + "autoprefixer": "^9.8.6", + "balanced-match": "^2.0.0", + "chalk": "^4.1.1", + "cosmiconfig": "^7.0.0", + "debug": "^4.3.1", + "execall": "^2.0.0", + "fast-glob": "^3.2.5", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.0.3", + "globjoin": "^0.1.4", + "html-tags": "^3.1.0", + "ignore": "^5.1.8", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "known-css-properties": "^0.21.0", + "lodash": "^4.17.21", + "log-symbols": "^4.1.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.4", + "normalize-selector": "^0.2.0", + "postcss": "^7.0.35", + "postcss-html": "^0.36.0", + "postcss-less": "^3.1.4", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^4.0.2", + "postcss-sass": "^0.4.4", + "postcss-scss": "^2.1.1", + "postcss-selector-parser": "^6.0.5", + "postcss-syntax": "^0.36.2", + "postcss-value-parser": "^4.1.0", + "resolve-from": "^5.0.0", + "slash": "^3.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.2", + "strip-ansi": "^6.0.0", + "style-search": "^0.1.0", + "sugarss": "^2.0.0", + "svg-tags": "^1.0.0", + "table": "^6.6.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^3.0.3" + }, + "dependencies": { + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "stylelint-config-recommended": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", @@ -7085,6 +7938,15 @@ "integrity": "sha1-zFgjFkag7xEC95R47zqSSP2chC8=", "dev": true }, + "sugarss": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", + "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7094,6 +7956,12 @@ "has-flag": "^4.0.0" } }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, "table": { "version": "6.7.2", "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", @@ -7266,6 +8134,18 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true + }, "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", @@ -7303,6 +8183,15 @@ "mime-types": "~2.1.24" } }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "ua-parser-js": { "version": "0.7.28", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", @@ -7347,6 +8236,44 @@ "util-deprecate": "^1.0.2" } }, + "unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dev": true, + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + }, + "unist-util-find-all-after": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", + "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", + "dev": true, + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "requires": { + "@types/unist": "^2.0.2" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -7417,6 +8344,28 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -7578,6 +8527,18 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", @@ -7728,6 +8689,12 @@ "compress-commons": "^4.1.0", "readable-stream": "^3.6.0" } + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true } } } diff --git a/package.json b/package.json index bad7e0c2b5..33a99d18cb 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "selenium-webdriver": "4.0.0-rc-2", "string.prototype.endswith": "1.0.0", "string.prototype.startswith": "1.0.0", + "stylelint": "13.13.1", "stylelint-config-standard": "22.0.0", "terser": "5.9.0", "wdio-chromedriver-service": "7.2.2", @@ -86,7 +87,7 @@ "test": "karma start test/unit/karma.conf.js", "uglify": "terser kbase-extension/static/kbase-narrative.js -c --source-map --output kbase-extension/static/kbase-narrative-min.js", "prepare": "husky install", - "install-npm": "node scripts/install-npm.js" + "install-node-modules": "bash scripts/install-node-modules.sh" }, "lint-staged": { "*.js": [ diff --git a/scripts/install-node-modules.sh b/scripts/install-node-modules.sh index ce28423d6f..300dd0ecff 100644 --- a/scripts/install-node-modules.sh +++ b/scripts/install-node-modules.sh @@ -1,4 +1,4 @@ mkdir -p kbase-extension/static/ext_modules/react -cp node_modules/react/umd/react.production.min.js kbase-extension/static/ext_modules/react +cp node_modules/react/umd/react.development.js kbase-extension/static/ext_modules/react mkdir -p kbase-extension/static/ext_modules/react-dom -cp node_modules/react-dom/umd/react-dom.production.min.js kbase-extension/static/ext_modules/react-dom \ No newline at end of file +cp node_modules/react-dom/umd/react-dom.development.js kbase-extension/static/ext_modules/react-dom \ No newline at end of file diff --git a/scripts/install_narrative.sh b/scripts/install_narrative.sh index 5467d79c12..31f8e50c65 100755 --- a/scripts/install_narrative.sh +++ b/scripts/install_narrative.sh @@ -98,7 +98,7 @@ then cd $NARRATIVE_ROOT_DIR log "Installing front end build components with npm" npm install 2>&1 | tee -a ${logfile} - npm run install-npm + npm run install-node-modules log "Installing front end components with bower" npx bower install -V --allow-root --config.interactive=false 2>&1 | tee -a "${logfile}" From cd58cf5ad01ab148706cea7dbee404717cb36c2f Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 6 Oct 2021 18:00:17 -0700 Subject: [PATCH 14/54] move styles to stylesheet --- .../function_output/KBaseSets/SetBrowser.css | 33 ++++++- .../function_output/KBaseSets/SetBrowser.js | 89 ++++--------------- .../function_output/KBaseSets/SetLoader.js | 45 +++++++--- .../KBaseSets/types/AssemblySet.js | 2 +- .../KBaseSets/types/ReadsAlignmentSet.js | 2 +- 5 files changed, 82 insertions(+), 89 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css index d3da6aaa47..abaf4e5691 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css @@ -16,9 +16,40 @@ .SetBrowser .Table > .Row > .Col:nth-child(1) { font-weight: bold; color: rgba(100, 100, 100); - flex: 0 0 15em; + flex: 0 0 13em; } .SetBrowser .Table > .Row > .Col:nth-child(2) { flex: 1 1 0; } + +/* tweak bootstrap styling here */ +.SetBrowser select.form-control { + margin-left: 0; + margin-right: 0; + padding: 4px; +} + +.SetBrowser .Overview .OverlayWrapper { + position: relative; +} + +.SetBrowser .Overview .OverlayWrapper .LoadingOverlay { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: rgba(255, 255, 255, 0.5); + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: rgba(150, 150, 150, 1); +} + +.SetBrowser .Overview table th { + width: 20%; + font-weight: bold; + text-align: left; +} diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js index 8fb71c0c9d..03ff65b027 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js @@ -29,43 +29,18 @@ define([ this.props.selectItem(selectControl.value); } - renderErrorMessage(error) { - return e('span', [ - e('span', { - style: { - fontWeight: 'bold' - } - }, 'Error!'), - e('span', { - }, error.message), - ]); - } - renderItemType() { - const selectedItem = this.props.set.selectedItem; - const content = []; - if (selectedItem.status === null) { - content.push(this.renderLoading()); - } else if (selectedItem.status === 'error') { - content.push(this.renderErrorMessage(selectedItem.error)); + // Note that the type is set when the set is first loaded, and will be + // null if there are no set items. The type is derived from the object + // referred to by a set item. + if (this.props.set.value.type === null) { + return e('i', null, 'n/a'); } else { - if (selectedItem.value) { - content.push(e('a', { - href: `/#spec/type/${selectedItem.value.objectInfo.type}`, - target: '_blank' - }, selectedItem.value.objectInfo.type)); - } - if (selectedItem.status === 'loading') { - content.push(this.renderLoading()); - } + return e('a', { + href: `/#spec/type/${this.props.set.value.type}`, + target: '_blank' + }, this.props.set.value.type); } - - return e('div', { - style: { - display: 'inline-block', - position: 'relative' - } - }, ...content); } renderSelector() { @@ -77,12 +52,7 @@ define([ className: 'form-inline Col', }, e('div', { className: 'form-group' }, e('select', { onChange: this.selectItem.bind(this), - className: 'form-control', - style: { - marginLeft: '0', - marginRight: '0', - padding: '4px' - } + className: 'form-control' }, this.props.set.value.items.map(({ label, ref, objectInfo }) => { if (label) { return e('option', { value: ref, key: ref }, objectInfo.name, ' (', label, ')'); @@ -130,28 +100,15 @@ define([ renderOverview() { const isLoading = [null, 'loading'].includes(this.props.set.selectedItem.status); - return e('div', { key: 'overview' }, ...[ + // const isLoading = true; + return e('div', { key: 'overview', className: 'Overview' }, ...[ this.renderHeader(), // The item area e('div', { - style: { - position: 'relative' - } + className: 'OverlayWrapper' }, ...[ - isLoading ? e('div', { - style: { - position: 'absolute', - left: 0, - right: 0, - top: 0, - bottom: 0 - } - }, this.renderLoading(3)) : null, - e('div', { - style: { - minHeight: '5em' - } - }, this.renderItemTable()) + this.renderItemTable(), + isLoading ? this.renderLoading(3) : null ]) ]); } @@ -168,22 +125,8 @@ define([ return ''; })(); return e('div', { - style: { - position: 'absolute', - left: 0, - right: 0, - top: 0, - bottom: 0, - backgroundColor: 'rgba(255, 255, 255, 0.5)', - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center' - } + className: 'LoadingOverlay' }, e('i', { - style: { - color: 'rgba(150, 150, 150, 1)', - }, className: `fa fa-spinner fa-pulse fa-fw ${sizeClass}` })); } diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js index fcc6b9db2c..780489dc05 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js @@ -74,22 +74,41 @@ define([ // Sets the first item as selected if there are any. if (items.length > 0) { this.selectedItemRef = items[0].ref; - } + const selectedItem = await this.fetchSetElement(items[0].ref); + this.setState({ + ...this.state, + set: { + status: 'loaded', + value: { + description, + type: selectedItem.objectInfo.type, + items, + }, + selectedItem: { + status: 'loaded', + value: selectedItem + } + + } + }); + } else { + this.setState({ + ...this.state, + set: { + status: 'loaded', + value: { + description, + type: null, + items, + }, + selectedItem: { + status: null + } - this.setState({ - ...this.state, - set: { - status: 'loaded', - value: { - description, - items, - }, - selectedItem: { - status: null } + }); + } - } - }); } catch (error) { console.error('Error fetching the set', error); this.setState({ diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js index c218ba9897..8372101b60 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js @@ -45,7 +45,7 @@ define([ }, e('tbody', null, rows.map(({ label, value }) => { return e('tr', { key: label }, - e('th', { width: '20%', style: { textAlign: 'left' } }, label), + e('th', null, label), e('td', null, value) ); })) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js index 1eb451e541..e6b557aa16 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js @@ -100,7 +100,7 @@ define([ }, e('tbody', null, rows.map(({ label, value }) => { return e('tr', { key: label }, - e('th', { width: '20%', style: { textAlign: 'left' } }, label), + e('th', null, label), e('td', null, value) ); })) From af4524a93a488ae422c8960249c48889a5ef8dee Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 7 Oct 2021 21:31:28 -0700 Subject: [PATCH 15/54] typo --- docs/testing/unit-testing-with-msw.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/testing/unit-testing-with-msw.md b/docs/testing/unit-testing-with-msw.md index 3435253f6f..015fdab9a6 100644 --- a/docs/testing/unit-testing-with-msw.md +++ b/docs/testing/unit-testing-with-msw.md @@ -186,7 +186,7 @@ To support more advanced testing scenarios, involving authentication, search, et ## Files involved -- test/unit/util/mswUtils.js +- test/unit/utils/mswUtils.js - test/unit/karma.conf.js - test/unit/test-main.js - package.json From eeaa4bf69e4503e72cf376cb4dc72a81ccfb0455 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 7 Oct 2021 21:33:06 -0700 Subject: [PATCH 16/54] move test utils and adjust, and make absolute, imports --- test/unit/karma.conf.js | 1 + .../jsonrpc/1.1/DynamicServiceClient-spec.js | 2 +- .../spec/jsonrpc/1.1/JSONRPCClient-spec.js | 2 +- .../spec/jsonrpc/1.1/ServiceClient-spec.js | 2 +- .../genericSets/base/Loader-spec.js | 9 ------ test/unit/test-main.js | 1 + test/unit/utils/domUtils.js | 29 +++++++++++++++++++ test/unit/{spec => }/utils/mswUtils.js | 0 8 files changed, 34 insertions(+), 12 deletions(-) delete mode 100644 test/unit/spec/react_components/genericSets/base/Loader-spec.js create mode 100644 test/unit/utils/domUtils.js rename test/unit/{spec => }/utils/mswUtils.js (100%) diff --git a/test/unit/karma.conf.js b/test/unit/karma.conf.js index 5cf7978598..b28788904a 100644 --- a/test/unit/karma.conf.js +++ b/test/unit/karma.conf.js @@ -42,6 +42,7 @@ module.exports = function (config) { 'test/unit/testUtil.js', 'test/unit/mocks.js', 'test/unit/test-main.js', + { pattern: 'test/unit/utils/**/*.js', included: false }, { pattern: 'test/unit/spec/**/*.js', included: false }, { pattern: 'test/unit/spec/**/*.json', included: false }, { pattern: 'test/testConfig.json', included: false, nocache: true }, diff --git a/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js b/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js index ca0a9b213f..aa5c4059d9 100644 --- a/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js @@ -1,5 +1,5 @@ define([ - '../../utils/mswUtils', + 'test/unit/utils/mswUtils', 'jsonrpc/1.1/DynamicServiceClient', 'jsonrpc/1.1/errors', './helpers', diff --git a/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js b/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js index f705c3e355..78e5061e21 100644 --- a/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js @@ -1,5 +1,5 @@ define([ - '../../utils/mswUtils', + 'test/unit/utils/mswUtils', 'jsonrpc/1.1/JSONRPCClient', 'jsonrpc/1.1/errors', 'jsonrpc/1.1/jsonrpcErrors', diff --git a/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js b/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js index 78486ab873..580ab295e3 100644 --- a/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js @@ -1,4 +1,4 @@ -define(['../../utils/mswUtils', 'jsonrpc/1.1/ServiceClient', './helpers'], ( +define(['test/unit/utils/mswUtils', 'jsonrpc/1.1/ServiceClient', './helpers'], ( mswUtils, ServiceClient, helpers diff --git a/test/unit/spec/react_components/genericSets/base/Loader-spec.js b/test/unit/spec/react_components/genericSets/base/Loader-spec.js deleted file mode 100644 index 89b9f82ba5..0000000000 --- a/test/unit/spec/react_components/genericSets/base/Loader-spec.js +++ /dev/null @@ -1,9 +0,0 @@ -define(['widgets/function_output/KBaseSets/SetLoader'], (SetLoader) => { - 'use strict'; - - describe('The Loader class', () => { - it('should be defined', () => { - expect(SetLoader).toBeDefined(); - }); - }); -}); diff --git a/test/unit/test-main.js b/test/unit/test-main.js index 6c00f33899..b2f35e82ad 100644 --- a/test/unit/test-main.js +++ b/test/unit/test-main.js @@ -31,6 +31,7 @@ requirejs.config({ bootstrap: 'ext_components/bootstrap/dist/js/bootstrap.min', testUtil: '../../test/unit/testUtil', narrativeMocks: '../../test/unit/mocks', + test: '../../test', bluebird: 'ext_components/bluebird/js/browser/bluebird.min', jed: 'components/jed/jed', custom: 'kbase/custom', diff --git a/test/unit/utils/domUtils.js b/test/unit/utils/domUtils.js new file mode 100644 index 0000000000..aaa5fb793b --- /dev/null +++ b/test/unit/utils/domUtils.js @@ -0,0 +1,29 @@ +define([], () => { + 'use strict'; + + function waitFor(fun, timeout) { + const started = Date.now(); + return new Promise((resolve, reject) => { + function loop() { + setTimeout(() => { + if (fun()) { + resolve(true); + return; + } + const elapsed = Date.now() - started; + if (elapsed > timeout) { + reject(new Error(`condition not detected within timeout period after ${elapsed}ms`)); + } + loop(); + }, 0.1); + } + if (fun()) { + resolve(true); + return; + } + loop(); + }); + } + + return { waitFor }; +}); diff --git a/test/unit/spec/utils/mswUtils.js b/test/unit/utils/mswUtils.js similarity index 100% rename from test/unit/spec/utils/mswUtils.js rename to test/unit/utils/mswUtils.js From cff7f088af32d13f3999747abd66cf9dde74231a Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 7 Oct 2021 21:33:52 -0700 Subject: [PATCH 17/54] add more tests, test data, and light refactoring for testability --- .../function_output/KBaseSets/Dispatcher.js | 26 +- .../function_output/KBaseSets/README.md | 7 +- .../function_output/KBaseSets/SetBrowser.js | 28 +- .../function_output/KBaseSets/SetLoader.js | 16 + .../KBaseSets/types/AssemblySet.js | 25 +- .../KBaseSets/types/ReadsAlignmentSet.js | 25 +- .../KBaseSets/SetBrowser-spec.js | 9 + .../KBaseSets/SetLoader-spec.js | 9 + .../KBaseSets/data/assemblyset_1.json | 1609 +++++++++++++++++ .../KBaseSets/data/readsalignmentset_1.json | 443 +++++ .../KBaseSets/types/AssemblySet-spec.js | 33 + .../KBaseSets/types/ReadsAlignmentSet-spec.js | 33 + .../kbaseSampleSet/kbaseSampleSet-spec.js | 2 +- 13 files changed, 2224 insertions(+), 41 deletions(-) create mode 100644 test/unit/spec/function_output/KBaseSets/SetBrowser-spec.js create mode 100644 test/unit/spec/function_output/KBaseSets/SetLoader-spec.js create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json create mode 100644 test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js create mode 100644 test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js index 385ffb7e36..665c6e0aea 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js @@ -77,6 +77,7 @@ define([ 'widgets/function_output/KBaseSets/types/ReadsAlignmentSet', 'widgets/function_output/KBaseSets/types/AssemblySet', 'react_components/ErrorMessage', + 'widgets/function_output/KBaseSets/SetLoader', // For effect 'bootstrap' @@ -86,7 +87,8 @@ define([ ServiceUtils, ReadsAlignmentSet, AssemblySet, - ErrorMessage + ErrorMessage, + SetLoader ) => { 'use strict'; @@ -96,10 +98,12 @@ define([ // must be components implemented as defined in `react_components/genericSets`. const SET_TYPE_TO_MODULE_MAPPING = { 'KBaseSets.ReadsAlignmentSet': { - module: ReadsAlignmentSet + module: ReadsAlignmentSet, + method: 'get_reads_alignment_set_v1' }, 'KBaseSets.AssemblySet': { - module: AssemblySet + module: AssemblySet, + method: 'get_assembly_set_v1' } }; @@ -154,7 +158,8 @@ define([ this.setState({ status: 'loaded', setType: objectType, - module: mapping.module + module: mapping.module, + method: mapping.method }); } catch (error) { console.error('Error getting object info', error); @@ -172,12 +177,21 @@ define([ } renderLoaded() { - return e(this.state.module, { + return e(SetLoader, { token: this.props.token, workspaceURL: this.props.workspaceURL, serviceWizardURL: this.props.serviceWizardURL, - objectRef: this.props.objectRef + objectRef: this.props.objectRef, + method: this.state.method, + module: this.state.module }); + + // return e(this.state.module, { + // token: this.props.token, + // workspaceURL: this.props.workspaceURL, + // serviceWizardURL: this.props.serviceWizardURL, + // objectRef: this.props.objectRef + // }); } render() { diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md index dd7e4b0246..609ff8fe94 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md @@ -58,19 +58,19 @@ Implemented in other viewers: KBaseSets.DifferentialExpressionMatrixSet SetAPI.get_differential_expression_matrix_set_v1 Implemented by: -https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_differential_expression_matrix_set/spec.json +https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_differential_expression_matrix_set and this viewer does not work KBaseSets.ExpressionSet SetAPI.get_expression_set_v1 Implemented by: -https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_rnaseq_sample_expression/spec.json +https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_rnaseq_sample_expression and that viewer doesn't work KBaseSets.ReadsSet SetAPI.get_reads_set_v1 Implemented by: -https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_reads_set/spec.json +https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_reads_set and the current viewer works KBaseSets.SampleSet @@ -89,3 +89,4 @@ can't find any data, or any app which outputs this type, or accepts as input (ac KBaseSets.GenomeSet SetAPI.get_genome_set_v1 +Can't find a way to get ahold of a KBaseSets.GenomeSet to play with. diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js index 03ff65b027..1be43185ff 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js @@ -13,11 +13,31 @@ define([ const { createElement: e, Component } = React; + /** + * A class implementing the base behavior for a browser for any set type + * in the KBaseSets type module. + * + * It is an "abstract" class. Subclasses must implement methods in the abstract + * section below. + * + * + */ + class SetBrowser extends Component { - constructor(props) { - super(props); + // Abstract + + /** + * Renders a set element as a rotated table of summary properties. + * Must be implemented by a subclass. + * @abstract + * @returns {void} nothing useful + */ + renderItemTable() { + throw new Error('renderItemTable not implemented in subclass'); } + // Implementation + renderError() { return e(ErrorMessage, { error: this.state.error @@ -94,9 +114,7 @@ define([ ]); } - renderItemTable() { - throw new Error('renderItemTable not implemented in subclass'); - } + renderOverview() { const isLoading = [null, 'loading'].includes(this.props.set.selectedItem.status); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js index 780489dc05..99dbfe3896 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js @@ -75,6 +75,22 @@ define([ if (items.length > 0) { this.selectedItemRef = items[0].ref; const selectedItem = await this.fetchSetElement(items[0].ref); + // DATAGEN: place in test/widgets/function_output/KBaseSets/data/type_#.json + // where type is the KBaseSets type, # is just a serial number to enable + // more than one test data per type. + // console.log('SEL', JSON.stringify({ + // status: 'loaded', + // value: { + // description, + // type: selectedItem.objectInfo.type, + // items, + // }, + // selectedItem: { + // status: 'loaded', + // value: selectedItem + // } + + // })); this.setState({ ...this.state, set: { diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js index 8372101b60..5a77e7be0b 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js @@ -1,16 +1,14 @@ define([ 'react', '../SetBrowser', - '../SetLoader', 'bootstrap' ], ( React, SetBrowser, - SetLoader ) => { 'use strict'; - const { createElement: e, Component } = React; + const { createElement: e } = React; class AssemblySet extends SetBrowser { renderItemTable() { @@ -53,15 +51,16 @@ define([ } } - class AssemblySetLoader extends Component { - render() { - return e(SetLoader, { - ...this.props, - method: 'get_assembly_set_v1', - module: AssemblySet - }); - } - } + // class AssemblySetLoader extends Component { + // render() { + // return e(SetLoader, { + // ...this.props, + // method: 'get_assembly_set_v1', + // module: AssemblySet + // }); + // } + // } - return AssemblySetLoader; + // return AssemblySetLoader; + return AssemblySet; }); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js index e6b557aa16..471612c431 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js @@ -1,16 +1,14 @@ define([ 'react', '../SetBrowser', - '../SetLoader', 'bootstrap' ], ( React, SetBrowser, - SetLoader ) => { 'use strict'; - const { createElement: e, Component } = React; + const { createElement: e } = React; class ReadsAlignmentSet extends SetBrowser { renderItemTable() { @@ -108,15 +106,16 @@ define([ } } - class ReadsAlignmentSetLoader extends Component { - render() { - return e(SetLoader, { - ...this.props, - method: 'get_reads_alignment_set_v1', - module: ReadsAlignmentSet - }); - } - } + // class ReadsAlignmentSetLoader extends Component { + // render() { + // return e(SetLoader, { + // ...this.props, + // method: 'get_reads_alignment_set_v1', + // module: ReadsAlignmentSet + // }); + // } + // } - return ReadsAlignmentSetLoader; + // return ReadsAlignmentSetLoader; + return ReadsAlignmentSet; }); diff --git a/test/unit/spec/function_output/KBaseSets/SetBrowser-spec.js b/test/unit/spec/function_output/KBaseSets/SetBrowser-spec.js new file mode 100644 index 0000000000..772f3c4533 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/SetBrowser-spec.js @@ -0,0 +1,9 @@ +define(['widgets/function_output/KBaseSets/SetBrowser'], (SetBrowser) => { + 'use strict'; + + describe('The Loader class', () => { + it('should be defined', () => { + expect(SetBrowser).toBeDefined(); + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js b/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js new file mode 100644 index 0000000000..89b9f82ba5 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js @@ -0,0 +1,9 @@ +define(['widgets/function_output/KBaseSets/SetLoader'], (SetLoader) => { + 'use strict'; + + describe('The Loader class', () => { + it('should be defined', () => { + expect(SetLoader).toBeDefined(); + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json new file mode 100644 index 0000000000..49e4c2de8a --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json @@ -0,0 +1,1609 @@ +{ + "status": "loaded", + "value": { + "description": "binned assemblies from NewBins", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "items": [ + { + "label": "", + "ref": "42874/24/1", + "info": [ + 24, + "NewBins.001.fasta_assembly", + "KBaseGenomeAnnotations.Assembly-6.0", + "2019-05-21T18:56:26+0000", + 1, + "eapearson", + 42874, + "eapearson:narrative_1558464800819", + "7a8b50b010bfc22ff14a5b688e30fd73", + 27036, + { + "GC content": "0.67468", + "Size": "3178097", + "N Contigs": "181", + "MD5": "3c038ea131ddc1001b6d93ee90bfd603" + } + ], + "objectInfo": { + "id": 24, + "name": "NewBins.001.fasta_assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2019-05-21T18:56:26+0000", + "version": 1, + "saved_by": "eapearson", + "wsid": 42874, + "ws": "eapearson:narrative_1558464800819", + "checksum": "7a8b50b010bfc22ff14a5b688e30fd73", + "size": 27036, + "metadata": { + "GC content": "0.67468", + "Size": "3178097", + "N Contigs": "181", + "MD5": "3c038ea131ddc1001b6d93ee90bfd603" + }, + "ref": "42874/24/1", + "obj_id": "ws.42874.obj.24", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2019-05-21T18:56:26.000Z" + } + }, + { + "label": "", + "ref": "42874/25/1", + "info": [ + 25, + "NewBins.002.fasta_assembly", + "KBaseGenomeAnnotations.Assembly-6.0", + "2019-05-21T18:56:52+0000", + 1, + "eapearson", + 42874, + "eapearson:narrative_1558464800819", + "f8f0debe80cbd10a23a0459cdec47498", + 7187, + { + "GC content": "0.6215", + "Size": "536073", + "N Contigs": "45", + "MD5": "6cdaccf20e0026b6bbc0d676b08093a4" + } + ], + "objectInfo": { + "id": 25, + "name": "NewBins.002.fasta_assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2019-05-21T18:56:52+0000", + "version": 1, + "saved_by": "eapearson", + "wsid": 42874, + "ws": "eapearson:narrative_1558464800819", + "checksum": "f8f0debe80cbd10a23a0459cdec47498", + "size": 7187, + "metadata": { + "GC content": "0.6215", + "Size": "536073", + "N Contigs": "45", + "MD5": "6cdaccf20e0026b6bbc0d676b08093a4" + }, + "ref": "42874/25/1", + "obj_id": "ws.42874.obj.25", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2019-05-21T18:56:52.000Z" + } + } + ] + }, + "selectedItem": { + "status": "loaded", + "value": { + "assembly_id": "NewBins.001.fasta_assembly", + "base_counts": { + "A": 523014, + "C": 1104409, + "G": 1039788, + "T": 510886 + }, + "contigs": { + "k119_100": { + "contig_id": "k119_100", + "description": "", + "gc_content": 0.66932, + "length": 13333, + "md5": "92548ce8450b06b4542ec64dc086787c", + "name": "k119_100" + }, + "k119_101": { + "contig_id": "k119_101", + "description": "", + "gc_content": 0.66151, + "length": 11510, + "md5": "7472ac9f7916ad73b95fe821c5142484", + "name": "k119_101" + }, + "k119_102": { + "contig_id": "k119_102", + "description": "", + "gc_content": 0.68051, + "length": 8573, + "md5": "c5d62257b78f1857fb38ac82e34bb6c4", + "name": "k119_102" + }, + "k119_103": { + "contig_id": "k119_103", + "description": "", + "gc_content": 0.69133, + "length": 8177, + "md5": "0a6ae17d56c0fa816d24b4a80473e665", + "name": "k119_103" + }, + "k119_104": { + "contig_id": "k119_104", + "description": "", + "gc_content": 0.67122, + "length": 42956, + "md5": "6585e0590618b63445603428f1864d86", + "name": "k119_104" + }, + "k119_105": { + "contig_id": "k119_105", + "description": "", + "gc_content": 0.66254, + "length": 26036, + "md5": "a1acb284d83ca49a3e85fc7af26e2178", + "name": "k119_105" + }, + "k119_106": { + "contig_id": "k119_106", + "description": "", + "gc_content": 0.66446, + "length": 8595, + "md5": "08f7d5e375d6e4abcc15a345100f02ec", + "name": "k119_106" + }, + "k119_107": { + "contig_id": "k119_107", + "description": "", + "gc_content": 0.67255, + "length": 9690, + "md5": "e3a74c933231525ebb747e79c8a2a24d", + "name": "k119_107" + }, + "k119_108": { + "contig_id": "k119_108", + "description": "", + "gc_content": 0.68605, + "length": 19401, + "md5": "1ce4b5faa3901d8d945ba51898424dfd", + "name": "k119_108" + }, + "k119_109": { + "contig_id": "k119_109", + "description": "", + "gc_content": 0.66352, + "length": 16943, + "md5": "a2a8d42c7b9a5f5c40ea9c19d2d1e15f", + "name": "k119_109" + }, + "k119_11": { + "contig_id": "k119_11", + "description": "", + "gc_content": 0.7063, + "length": 11573, + "md5": "234158d7f5240ef0a24d85d3d0e74492", + "name": "k119_11" + }, + "k119_110": { + "contig_id": "k119_110", + "description": "", + "gc_content": 0.69419, + "length": 10853, + "md5": "d324d47b1e071c06b711f7fb8635f53b", + "name": "k119_110" + }, + "k119_111": { + "contig_id": "k119_111", + "description": "", + "gc_content": 0.66598, + "length": 4889, + "md5": "f5e97c4834a402e7c088d187f3564195", + "name": "k119_111" + }, + "k119_112": { + "contig_id": "k119_112", + "description": "", + "gc_content": 0.65599, + "length": 23107, + "md5": "33ea2de4dad3eb2b5ad851b97562b172", + "name": "k119_112" + }, + "k119_113": { + "contig_id": "k119_113", + "description": "", + "gc_content": 0.67011, + "length": 7160, + "md5": "88970048c61fc90e3ecf22c7d82d39f9", + "name": "k119_113" + }, + "k119_114": { + "contig_id": "k119_114", + "description": "", + "gc_content": 0.7066, + "length": 8306, + "md5": "966508dad8b30334b5828e2cfd77fdf4", + "name": "k119_114" + }, + "k119_115": { + "contig_id": "k119_115", + "description": "", + "gc_content": 0.65923, + "length": 22317, + "md5": "845bc7cd7ce13823b68ca410ae0ad8d5", + "name": "k119_115" + }, + "k119_117": { + "contig_id": "k119_117", + "description": "", + "gc_content": 0.67671, + "length": 10591, + "md5": "6d5d545257dbea1c96bfe32d37fcbe88", + "name": "k119_117" + }, + "k119_12": { + "contig_id": "k119_12", + "description": "", + "gc_content": 0.67902, + "length": 9016, + "md5": "fc3a7bfddb5be5fe23157c91c620d736", + "name": "k119_12" + }, + "k119_120": { + "contig_id": "k119_120", + "description": "", + "gc_content": 0.67532, + "length": 9745, + "md5": "6ef85d8591ae2cdba079040848b3e598", + "name": "k119_120" + }, + "k119_121": { + "contig_id": "k119_121", + "description": "", + "gc_content": 0.65521, + "length": 7010, + "md5": "5ae62e7c19ee98989d2e57a18649f2ee", + "name": "k119_121" + }, + "k119_123": { + "contig_id": "k119_123", + "description": "", + "gc_content": 0.67053, + "length": 13795, + "md5": "58a3c27ace377b6e90166c6fcca89521", + "name": "k119_123" + }, + "k119_125": { + "contig_id": "k119_125", + "description": "", + "gc_content": 0.66457, + "length": 16036, + "md5": "b17c4790cb5b1d0eceeebd413d181e4b", + "name": "k119_125" + }, + "k119_126": { + "contig_id": "k119_126", + "description": "", + "gc_content": 0.65869, + "length": 15722, + "md5": "b321c53e775004c5c3aec1d141ce2126", + "name": "k119_126" + }, + "k119_128": { + "contig_id": "k119_128", + "description": "", + "gc_content": 0.6631, + "length": 7299, + "md5": "e2cd9d6d2e4491caed0eacfab28f9758", + "name": "k119_128" + }, + "k119_129": { + "contig_id": "k119_129", + "description": "", + "gc_content": 0.66193, + "length": 9087, + "md5": "55bb4846ce5d067adc3b69c052e5f53a", + "name": "k119_129" + }, + "k119_13": { + "contig_id": "k119_13", + "description": "", + "gc_content": 0.71472, + "length": 9149, + "md5": "4b6df1521d6d5aa7ade2a9a1af63e5b4", + "name": "k119_13" + }, + "k119_130": { + "contig_id": "k119_130", + "description": "", + "gc_content": 0.67102, + "length": 23816, + "md5": "fd302e1ddaca329687b7ce294f98c5b1", + "name": "k119_130" + }, + "k119_131": { + "contig_id": "k119_131", + "description": "", + "gc_content": 0.67976, + "length": 13699, + "md5": "cbc01eee614e2d9accf8d703f1b695a3", + "name": "k119_131" + }, + "k119_134": { + "contig_id": "k119_134", + "description": "", + "gc_content": 0.66589, + "length": 8165, + "md5": "1ee1bde2f0ddb52bafaf4323fcc7d6d9", + "name": "k119_134" + }, + "k119_136": { + "contig_id": "k119_136", + "description": "", + "gc_content": 0.66454, + "length": 6734, + "md5": "611dbf830fb21e8cb60c93e5728aca97", + "name": "k119_136" + }, + "k119_137": { + "contig_id": "k119_137", + "description": "", + "gc_content": 0.66557, + "length": 27432, + "md5": "1f99db00e415ee95a6a730f49028b74c", + "name": "k119_137" + }, + "k119_138": { + "contig_id": "k119_138", + "description": "", + "gc_content": 0.67408, + "length": 11877, + "md5": "04e2e9e492d9158468bc81aeeb8ea6e9", + "name": "k119_138" + }, + "k119_139": { + "contig_id": "k119_139", + "description": "", + "gc_content": 0.66989, + "length": 25985, + "md5": "a9843513c14f8286240f178f76d6f239", + "name": "k119_139" + }, + "k119_14": { + "contig_id": "k119_14", + "description": "", + "gc_content": 0.67842, + "length": 15365, + "md5": "51babc8745032a1caa97bf768e3d9316", + "name": "k119_14" + }, + "k119_140": { + "contig_id": "k119_140", + "description": "", + "gc_content": 0.68272, + "length": 29056, + "md5": "ddad175851943301c634822e68f5590c", + "name": "k119_140" + }, + "k119_141": { + "contig_id": "k119_141", + "description": "", + "gc_content": 0.68317, + "length": 8784, + "md5": "96f6b0ade8842d81215473023a70b8db", + "name": "k119_141" + }, + "k119_142": { + "contig_id": "k119_142", + "description": "", + "gc_content": 0.66217, + "length": 16218, + "md5": "0c8c447d614267415787cdebd81264fb", + "name": "k119_142" + }, + "k119_143": { + "contig_id": "k119_143", + "description": "", + "gc_content": 0.6981, + "length": 8546, + "md5": "79c93d621957e74b90d76e9044362160", + "name": "k119_143" + }, + "k119_144": { + "contig_id": "k119_144", + "description": "", + "gc_content": 0.6762, + "length": 8079, + "md5": "2cf4dac089590287cf1bd7236b79ff82", + "name": "k119_144" + }, + "k119_145": { + "contig_id": "k119_145", + "description": "", + "gc_content": 0.6716, + "length": 21413, + "md5": "38239e1e27a0fa173ac07d4243c7a5ff", + "name": "k119_145" + }, + "k119_146": { + "contig_id": "k119_146", + "description": "", + "gc_content": 0.68372, + "length": 15404, + "md5": "e1e898c8853c59bda3eb308a9340634e", + "name": "k119_146" + }, + "k119_147": { + "contig_id": "k119_147", + "description": "", + "gc_content": 0.68509, + "length": 9501, + "md5": "e9c2abf4f3afea44cbf505a1c3b83d80", + "name": "k119_147" + }, + "k119_149": { + "contig_id": "k119_149", + "description": "", + "gc_content": 0.669, + "length": 15991, + "md5": "e05637e0a70249d479c2f5bfbb14b8d8", + "name": "k119_149" + }, + "k119_150": { + "contig_id": "k119_150", + "description": "", + "gc_content": 0.66293, + "length": 17418, + "md5": "ef493606d58ce3b0be93fa2eb7939d7f", + "name": "k119_150" + }, + "k119_151": { + "contig_id": "k119_151", + "description": "", + "gc_content": 0.67301, + "length": 20181, + "md5": "2a3bebb54e11139c3548296968393d4d", + "name": "k119_151" + }, + "k119_152": { + "contig_id": "k119_152", + "description": "", + "gc_content": 0.68243, + "length": 9645, + "md5": "b97c7ca305e569236c531979d01b17aa", + "name": "k119_152" + }, + "k119_153": { + "contig_id": "k119_153", + "description": "", + "gc_content": 0.67604, + "length": 13122, + "md5": "557cb9bf1ecdcb8e5fae52c793d748e7", + "name": "k119_153" + }, + "k119_154": { + "contig_id": "k119_154", + "description": "", + "gc_content": 0.68066, + "length": 5004, + "md5": "fe4334f3a51ab567db14b64fa245d864", + "name": "k119_154" + }, + "k119_155": { + "contig_id": "k119_155", + "description": "", + "gc_content": 0.67119, + "length": 25510, + "md5": "37bcc559a4e20b942ca167bfab8571b5", + "name": "k119_155" + }, + "k119_157": { + "contig_id": "k119_157", + "description": "", + "gc_content": 0.67205, + "length": 20814, + "md5": "8a32f1f8482af8c799bd35d51a1d3a5d", + "name": "k119_157" + }, + "k119_158": { + "contig_id": "k119_158", + "description": "", + "gc_content": 0.68436, + "length": 9891, + "md5": "6260904450e712ad28955e1271963414", + "name": "k119_158" + }, + "k119_16": { + "contig_id": "k119_16", + "description": "", + "gc_content": 0.69508, + "length": 10124, + "md5": "529e943c6a1c66de7b344acc5545843f", + "name": "k119_16" + }, + "k119_160": { + "contig_id": "k119_160", + "description": "", + "gc_content": 0.6794, + "length": 43652, + "md5": "7224f6124ab3eb85058d9071862e172a", + "name": "k119_160" + }, + "k119_161": { + "contig_id": "k119_161", + "description": "", + "gc_content": 0.68201, + "length": 23101, + "md5": "428889a175593083f6791b51625aafd9", + "name": "k119_161" + }, + "k119_163": { + "contig_id": "k119_163", + "description": "", + "gc_content": 0.6874, + "length": 17764, + "md5": "b91d9a6d4b4947339d8d92ffd7819de0", + "name": "k119_163" + }, + "k119_167": { + "contig_id": "k119_167", + "description": "", + "gc_content": 0.65746, + "length": 16553, + "md5": "4c6e1b4a86d4dc5320460d4651eb83e5", + "name": "k119_167" + }, + "k119_169": { + "contig_id": "k119_169", + "description": "", + "gc_content": 0.66478, + "length": 15032, + "md5": "cbfa2992bdbd5a4d7694af9f75aac1bb", + "name": "k119_169" + }, + "k119_17": { + "contig_id": "k119_17", + "description": "", + "gc_content": 0.69108, + "length": 22119, + "md5": "7f86015ed8b241a9e57921d93e58c76d", + "name": "k119_17" + }, + "k119_170": { + "contig_id": "k119_170", + "description": "", + "gc_content": 0.68458, + "length": 8934, + "md5": "898cbc422a1550819ed7be56202f9d04", + "name": "k119_170" + }, + "k119_171": { + "contig_id": "k119_171", + "description": "", + "gc_content": 0.6901, + "length": 16231, + "md5": "1756d57410ae0073cc27c71aa79f0094", + "name": "k119_171" + }, + "k119_175": { + "contig_id": "k119_175", + "description": "", + "gc_content": 0.68166, + "length": 20092, + "md5": "bc053a180d4fbe1277d38aa9c290a600", + "name": "k119_175" + }, + "k119_176": { + "contig_id": "k119_176", + "description": "", + "gc_content": 0.67201, + "length": 31019, + "md5": "adb107c13c46c44b868954651b99fc95", + "name": "k119_176" + }, + "k119_177": { + "contig_id": "k119_177", + "description": "", + "gc_content": 0.67105, + "length": 37598, + "md5": "ebf513ed37d3a43e2870092647065136", + "name": "k119_177" + }, + "k119_178": { + "contig_id": "k119_178", + "description": "", + "gc_content": 0.67866, + "length": 17035, + "md5": "ec19fa62f23e59fb08444720978364a5", + "name": "k119_178" + }, + "k119_179": { + "contig_id": "k119_179", + "description": "", + "gc_content": 0.66743, + "length": 43549, + "md5": "8847c61a0f9ba10bd8aaf9a3760f7c93", + "name": "k119_179" + }, + "k119_180": { + "contig_id": "k119_180", + "description": "", + "gc_content": 0.6596, + "length": 11372, + "md5": "a91514b196e32e0c058963a91edcb192", + "name": "k119_180" + }, + "k119_181": { + "contig_id": "k119_181", + "description": "", + "gc_content": 0.66214, + "length": 13038, + "md5": "af1281da6ebe50cd05251bb0154fe42f", + "name": "k119_181" + }, + "k119_182": { + "contig_id": "k119_182", + "description": "", + "gc_content": 0.67672, + "length": 21214, + "md5": "478225cdc2dd294733e023ad25daf566", + "name": "k119_182" + }, + "k119_187": { + "contig_id": "k119_187", + "description": "", + "gc_content": 0.67187, + "length": 5318, + "md5": "485bbe2670d341c277e26bf35bad751d", + "name": "k119_187" + }, + "k119_188": { + "contig_id": "k119_188", + "description": "", + "gc_content": 0.66882, + "length": 26641, + "md5": "89ab53c85ce434dccbaa4e859c5aff69", + "name": "k119_188" + }, + "k119_19": { + "contig_id": "k119_19", + "description": "", + "gc_content": 0.69848, + "length": 7220, + "md5": "09ed80110bf695787a3071a891958458", + "name": "k119_19" + }, + "k119_190": { + "contig_id": "k119_190", + "description": "", + "gc_content": 0.65582, + "length": 15861, + "md5": "d53e67820566067a0dc746381edd853d", + "name": "k119_190" + }, + "k119_193": { + "contig_id": "k119_193", + "description": "", + "gc_content": 0.66785, + "length": 9318, + "md5": "fadf44b850ffbd7320c8212419fd0f0c", + "name": "k119_193" + }, + "k119_195": { + "contig_id": "k119_195", + "description": "", + "gc_content": 0.68266, + "length": 8524, + "md5": "f140ae4ded0ab44a409748fa7b51fe7e", + "name": "k119_195" + }, + "k119_196": { + "contig_id": "k119_196", + "description": "", + "gc_content": 0.67438, + "length": 36810, + "md5": "c1248c9684852dd20005687f2a7f4e9f", + "name": "k119_196" + }, + "k119_197": { + "contig_id": "k119_197", + "description": "", + "gc_content": 0.67158, + "length": 12222, + "md5": "40d706b797495609c195c62d37347245", + "name": "k119_197" + }, + "k119_198": { + "contig_id": "k119_198", + "description": "", + "gc_content": 0.67776, + "length": 15535, + "md5": "43e3840589e79a6b0fe837b3ac609cb6", + "name": "k119_198" + }, + "k119_199": { + "contig_id": "k119_199", + "description": "", + "gc_content": 0.65108, + "length": 4855, + "md5": "5c5a3cb811389267d4a76397f6e405dc", + "name": "k119_199" + }, + "k119_2": { + "contig_id": "k119_2", + "description": "", + "gc_content": 0.66275, + "length": 6974, + "md5": "e29e2b48883670ef3fb39f7018993693", + "name": "k119_2" + }, + "k119_20": { + "contig_id": "k119_20", + "description": "", + "gc_content": 0.65947, + "length": 22961, + "md5": "6b41a0f21f81b12207ee5db8b19d4ce4", + "name": "k119_20" + }, + "k119_201": { + "contig_id": "k119_201", + "description": "", + "gc_content": 0.69183, + "length": 5961, + "md5": "c8f5f41d42202dc6b42e309e070dec2c", + "name": "k119_201" + }, + "k119_202": { + "contig_id": "k119_202", + "description": "", + "gc_content": 0.66424, + "length": 30572, + "md5": "e70dff769ffeea4435aea2af0651813f", + "name": "k119_202" + }, + "k119_203": { + "contig_id": "k119_203", + "description": "", + "gc_content": 0.66739, + "length": 25047, + "md5": "dc0217848317d6b9cbe8b2f350c8db00", + "name": "k119_203" + }, + "k119_205": { + "contig_id": "k119_205", + "description": "", + "gc_content": 0.66546, + "length": 13858, + "md5": "ec03da556964156095fd4259da4d52c0", + "name": "k119_205" + }, + "k119_206": { + "contig_id": "k119_206", + "description": "", + "gc_content": 0.6679, + "length": 4866, + "md5": "6cfa8ac064403864cf20fe7ea524beef", + "name": "k119_206" + }, + "k119_207": { + "contig_id": "k119_207", + "description": "", + "gc_content": 0.67642, + "length": 32289, + "md5": "2960980ae280babbf0a9636e4736f5a8", + "name": "k119_207" + }, + "k119_208": { + "contig_id": "k119_208", + "description": "", + "gc_content": 0.66817, + "length": 53591, + "md5": "b16ebfe3e86f696428625f21fe725c50", + "name": "k119_208" + }, + "k119_209": { + "contig_id": "k119_209", + "description": "", + "gc_content": 0.6789, + "length": 18941, + "md5": "4cad4a8fa542d7795fb3ad0bcb17f3a5", + "name": "k119_209" + }, + "k119_21": { + "contig_id": "k119_21", + "description": "", + "gc_content": 0.69626, + "length": 10305, + "md5": "4588cf37f2f0d2676c9614d48ef21142", + "name": "k119_21" + }, + "k119_210": { + "contig_id": "k119_210", + "description": "", + "gc_content": 0.66613, + "length": 39920, + "md5": "6534507759f48544f47299cef2839889", + "name": "k119_210" + }, + "k119_211": { + "contig_id": "k119_211", + "description": "", + "gc_content": 0.68649, + "length": 8322, + "md5": "36f3049ad74875a04da101ab9b09d8d9", + "name": "k119_211" + }, + "k119_214": { + "contig_id": "k119_214", + "description": "", + "gc_content": 0.70775, + "length": 18183, + "md5": "7bf387a080ddf828df94371327a02ba6", + "name": "k119_214" + }, + "k119_215": { + "contig_id": "k119_215", + "description": "", + "gc_content": 0.68056, + "length": 6596, + "md5": "ce90f41dddf143767e7b271dc01479cc", + "name": "k119_215" + }, + "k119_216": { + "contig_id": "k119_216", + "description": "", + "gc_content": 0.65736, + "length": 36146, + "md5": "4a335fb8583e278f346d809b23bffda5", + "name": "k119_216" + }, + "k119_217": { + "contig_id": "k119_217", + "description": "", + "gc_content": 0.66995, + "length": 17452, + "md5": "741df68f38e539096a6ccec801894d74", + "name": "k119_217" + }, + "k119_22": { + "contig_id": "k119_22", + "description": "", + "gc_content": 0.71281, + "length": 13096, + "md5": "27c3d05b1e956a4bdd6f1ec2884e5ce8", + "name": "k119_22" + }, + "k119_220": { + "contig_id": "k119_220", + "description": "", + "gc_content": 0.68457, + "length": 36132, + "md5": "0b3986d5124f151f8560a1bfd0c212fa", + "name": "k119_220" + }, + "k119_222": { + "contig_id": "k119_222", + "description": "", + "gc_content": 0.6799, + "length": 17654, + "md5": "cd7d81a337d5a8b275869b83272b985b", + "name": "k119_222" + }, + "k119_224": { + "contig_id": "k119_224", + "description": "", + "gc_content": 0.69066, + "length": 11890, + "md5": "0e60cbcae46943fcd8a22fee53893bd8", + "name": "k119_224" + }, + "k119_225": { + "contig_id": "k119_225", + "description": "", + "gc_content": 0.66895, + "length": 18680, + "md5": "910a14091371a6ecf81672d707e012a3", + "name": "k119_225" + }, + "k119_227": { + "contig_id": "k119_227", + "description": "", + "gc_content": 0.69071, + "length": 6156, + "md5": "7c1f579fb0c19f96383ef094de2a66e8", + "name": "k119_227" + }, + "k119_228": { + "contig_id": "k119_228", + "description": "", + "gc_content": 0.67181, + "length": 24181, + "md5": "4848ba08190bdb46e1abf6ec82b1fda6", + "name": "k119_228" + }, + "k119_230": { + "contig_id": "k119_230", + "description": "", + "gc_content": 0.6657, + "length": 16916, + "md5": "def8a6bc3d23e9dd08a1ea389cf8ffce", + "name": "k119_230" + }, + "k119_232": { + "contig_id": "k119_232", + "description": "", + "gc_content": 0.66888, + "length": 18510, + "md5": "641f379a680dc82e067c4ef936c026a9", + "name": "k119_232" + }, + "k119_233": { + "contig_id": "k119_233", + "description": "", + "gc_content": 0.69106, + "length": 14501, + "md5": "de0dca9ad99efdad42779fb94bfc4e1f", + "name": "k119_233" + }, + "k119_234": { + "contig_id": "k119_234", + "description": "", + "gc_content": 0.6578, + "length": 7817, + "md5": "7e74464a05ee432dbc8388db0505a06b", + "name": "k119_234" + }, + "k119_235": { + "contig_id": "k119_235", + "description": "", + "gc_content": 0.68112, + "length": 10882, + "md5": "35e181e68cefc854b16a91d846aa4f75", + "name": "k119_235" + }, + "k119_236": { + "contig_id": "k119_236", + "description": "", + "gc_content": 0.67884, + "length": 59422, + "md5": "748f3da4240c2203e2f4f68bb7fd0a2d", + "name": "k119_236" + }, + "k119_237": { + "contig_id": "k119_237", + "description": "", + "gc_content": 0.70596, + "length": 18035, + "md5": "33c451c6794f3f8254d5369f0e5e5550", + "name": "k119_237" + }, + "k119_25": { + "contig_id": "k119_25", + "description": "", + "gc_content": 0.67784, + "length": 33881, + "md5": "09fad293af3636bd855033c2028a8f7d", + "name": "k119_25" + }, + "k119_26": { + "contig_id": "k119_26", + "description": "", + "gc_content": 0.6713, + "length": 5750, + "md5": "a2b28e823cfe415c288e310e3e943e8c", + "name": "k119_26" + }, + "k119_27": { + "contig_id": "k119_27", + "description": "", + "gc_content": 0.68828, + "length": 7109, + "md5": "755273fb6e3445fb53dbd40a9e9ca4b7", + "name": "k119_27" + }, + "k119_28": { + "contig_id": "k119_28", + "description": "", + "gc_content": 0.68532, + "length": 37975, + "md5": "81146a71be4088d0192cce4f2e8495ae", + "name": "k119_28" + }, + "k119_29": { + "contig_id": "k119_29", + "description": "", + "gc_content": 0.67967, + "length": 19424, + "md5": "c6f450b065e98b170398340a17018b17", + "name": "k119_29" + }, + "k119_3": { + "contig_id": "k119_3", + "description": "", + "gc_content": 0.67531, + "length": 8405, + "md5": "5246720879a5e0be5eafa5adb069f4fa", + "name": "k119_3" + }, + "k119_30": { + "contig_id": "k119_30", + "description": "", + "gc_content": 0.69466, + "length": 6406, + "md5": "8a3f90f8a9e1bd19f5722a17a4b637b2", + "name": "k119_30" + }, + "k119_32": { + "contig_id": "k119_32", + "description": "", + "gc_content": 0.67479, + "length": 38381, + "md5": "dec7f75d4d102b4ae5817d407cb02280", + "name": "k119_32" + }, + "k119_33": { + "contig_id": "k119_33", + "description": "", + "gc_content": 0.67331, + "length": 13205, + "md5": "2ae175567cd1e8dc0f2cacaebf222855", + "name": "k119_33" + }, + "k119_34": { + "contig_id": "k119_34", + "description": "", + "gc_content": 0.68217, + "length": 35809, + "md5": "741dc4f4a7da44582ddafc02166c0b2b", + "name": "k119_34" + }, + "k119_36": { + "contig_id": "k119_36", + "description": "", + "gc_content": 0.66604, + "length": 11768, + "md5": "8a755e2dcc42b996c4e7479dc86dd410", + "name": "k119_36" + }, + "k119_37": { + "contig_id": "k119_37", + "description": "", + "gc_content": 0.65757, + "length": 58552, + "md5": "224bb01a1227d920b2d89c2ad6bffebf", + "name": "k119_37" + }, + "k119_38": { + "contig_id": "k119_38", + "description": "", + "gc_content": 0.67704, + "length": 8518, + "md5": "78f89dfb99701b16e59aab2b53a089df", + "name": "k119_38" + }, + "k119_39": { + "contig_id": "k119_39", + "description": "", + "gc_content": 0.69353, + "length": 7955, + "md5": "eb522e9a4677cee9d53fea6fc6c0d73b", + "name": "k119_39" + }, + "k119_40": { + "contig_id": "k119_40", + "description": "", + "gc_content": 0.6731, + "length": 9795, + "md5": "3de3c34fa1b5ea553ed49000751883b7", + "name": "k119_40" + }, + "k119_41": { + "contig_id": "k119_41", + "description": "", + "gc_content": 0.6838, + "length": 5449, + "md5": "5f99729a2d7a01f95fa52c31a8dad2bf", + "name": "k119_41" + }, + "k119_42": { + "contig_id": "k119_42", + "description": "", + "gc_content": 0.66763, + "length": 6604, + "md5": "9af143b6fe0abed2f40be0a43e8c653a", + "name": "k119_42" + }, + "k119_43": { + "contig_id": "k119_43", + "description": "", + "gc_content": 0.68942, + "length": 17538, + "md5": "3367a5aed8554150e8440c7f0ca35262", + "name": "k119_43" + }, + "k119_44": { + "contig_id": "k119_44", + "description": "", + "gc_content": 0.68729, + "length": 5964, + "md5": "4bc2df7cb78edc572af45a79754e3d82", + "name": "k119_44" + }, + "k119_45": { + "contig_id": "k119_45", + "description": "", + "gc_content": 0.68293, + "length": 9304, + "md5": "a2225ae67ab0baf3ac0b3288ad48c074", + "name": "k119_45" + }, + "k119_46": { + "contig_id": "k119_46", + "description": "", + "gc_content": 0.67011, + "length": 9879, + "md5": "a208a613d09ffca1f7bf7367a382d658", + "name": "k119_46" + }, + "k119_47": { + "contig_id": "k119_47", + "description": "", + "gc_content": 0.65804, + "length": 17002, + "md5": "ce9fcc2b675f24782664e4c394d24cde", + "name": "k119_47" + }, + "k119_5": { + "contig_id": "k119_5", + "description": "", + "gc_content": 0.68337, + "length": 8818, + "md5": "7e3d5c51ccd11a566e013049a435ee5a", + "name": "k119_5" + }, + "k119_50": { + "contig_id": "k119_50", + "description": "", + "gc_content": 0.66063, + "length": 35928, + "md5": "b7a207909a893e06a9aac81174cd72e7", + "name": "k119_50" + }, + "k119_51": { + "contig_id": "k119_51", + "description": "", + "gc_content": 0.652, + "length": 12730, + "md5": "cf8f42a64d10eef5ec3e18cbc3f299e8", + "name": "k119_51" + }, + "k119_52": { + "contig_id": "k119_52", + "description": "", + "gc_content": 0.68801, + "length": 11667, + "md5": "0f6d9541ff3c5178029cf40cdfc23ca4", + "name": "k119_52" + }, + "k119_55": { + "contig_id": "k119_55", + "description": "", + "gc_content": 0.68873, + "length": 9095, + "md5": "24ef6da599fd2395ccb5dcb76cf061ae", + "name": "k119_55" + }, + "k119_56": { + "contig_id": "k119_56", + "description": "", + "gc_content": 0.66455, + "length": 21526, + "md5": "da466bf5d96e78a406397dd849fe62b4", + "name": "k119_56" + }, + "k119_57": { + "contig_id": "k119_57", + "description": "", + "gc_content": 0.68627, + "length": 5288, + "md5": "d0416132e08a0620d788e7136a40e69b", + "name": "k119_57" + }, + "k119_58": { + "contig_id": "k119_58", + "description": "", + "gc_content": 0.66346, + "length": 18194, + "md5": "e9abb991932a933ee5aef805a4f9f460", + "name": "k119_58" + }, + "k119_6": { + "contig_id": "k119_6", + "description": "", + "gc_content": 0.66583, + "length": 3202, + "md5": "fc2260de267ad2990aeae357b94170ae", + "name": "k119_6" + }, + "k119_60": { + "contig_id": "k119_60", + "description": "", + "gc_content": 0.67411, + "length": 26052, + "md5": "3396b6b15175db830e9dde85e3cb5a7c", + "name": "k119_60" + }, + "k119_61": { + "contig_id": "k119_61", + "description": "", + "gc_content": 0.67869, + "length": 62672, + "md5": "f5290f417632338cd5ea12fbfffd3ea0", + "name": "k119_61" + }, + "k119_62": { + "contig_id": "k119_62", + "description": "", + "gc_content": 0.66043, + "length": 5242, + "md5": "2362190f572701d775b3e57d613e0ff0", + "name": "k119_62" + }, + "k119_64": { + "contig_id": "k119_64", + "description": "", + "gc_content": 0.65317, + "length": 5037, + "md5": "1c1efd8910272a493e37b7dd42eb48bb", + "name": "k119_64" + }, + "k119_65": { + "contig_id": "k119_65", + "description": "", + "gc_content": 0.66651, + "length": 15011, + "md5": "b3e39ba1f5df1b08c818bafbd111ff2f", + "name": "k119_65" + }, + "k119_66": { + "contig_id": "k119_66", + "description": "", + "gc_content": 0.69427, + "length": 10794, + "md5": "2eb55f8348dbf476b747323ad426ad00", + "name": "k119_66" + }, + "k119_67": { + "contig_id": "k119_67", + "description": "", + "gc_content": 0.67487, + "length": 5647, + "md5": "6378fad7d3d41ec6d1c795ad53e12a04", + "name": "k119_67" + }, + "k119_68": { + "contig_id": "k119_68", + "description": "", + "gc_content": 0.68121, + "length": 24433, + "md5": "1b2083773cbfa4c720bf4ebe9c1564f9", + "name": "k119_68" + }, + "k119_69": { + "contig_id": "k119_69", + "description": "", + "gc_content": 0.67452, + "length": 30272, + "md5": "5c6e3755bee04022d377d154b439c8a8", + "name": "k119_69" + }, + "k119_7": { + "contig_id": "k119_7", + "description": "", + "gc_content": 0.67447, + "length": 14395, + "md5": "e698c53ac4b7c759a321662de26c2530", + "name": "k119_7" + }, + "k119_70": { + "contig_id": "k119_70", + "description": "", + "gc_content": 0.65185, + "length": 4972, + "md5": "66d2baaa452c5d718c0f84b8c82b0e5b", + "name": "k119_70" + }, + "k119_71": { + "contig_id": "k119_71", + "description": "", + "gc_content": 0.70236, + "length": 5641, + "md5": "b33df2c0b977b2e9793cca25ab621785", + "name": "k119_71" + }, + "k119_72": { + "contig_id": "k119_72", + "description": "", + "gc_content": 0.66392, + "length": 6912, + "md5": "93b68240d26fe3fd5f2d7e208aa4f3a4", + "name": "k119_72" + }, + "k119_73": { + "contig_id": "k119_73", + "description": "", + "gc_content": 0.68507, + "length": 11609, + "md5": "d9bd66f15e9784e589715b906c436b9d", + "name": "k119_73" + }, + "k119_74": { + "contig_id": "k119_74", + "description": "", + "gc_content": 0.67566, + "length": 21946, + "md5": "95340d45536052f94e12a784adc8f793", + "name": "k119_74" + }, + "k119_75": { + "contig_id": "k119_75", + "description": "", + "gc_content": 0.66053, + "length": 7606, + "md5": "c943d39b6a128f1457c39f4c756d3dd5", + "name": "k119_75" + }, + "k119_76": { + "contig_id": "k119_76", + "description": "", + "gc_content": 0.67532, + "length": 39155, + "md5": "8c55efd32d1cc29efe86f00e38c093a8", + "name": "k119_76" + }, + "k119_77": { + "contig_id": "k119_77", + "description": "", + "gc_content": 0.66408, + "length": 13021, + "md5": "3e0c8f90bb8800f01350a31b4234685a", + "name": "k119_77" + }, + "k119_78": { + "contig_id": "k119_78", + "description": "", + "gc_content": 0.68484, + "length": 19317, + "md5": "66ee072a4736444450abd847b9a6b6cb", + "name": "k119_78" + }, + "k119_79": { + "contig_id": "k119_79", + "description": "", + "gc_content": 0.67117, + "length": 33817, + "md5": "4c21213487f709b9071c1e1c496b28c9", + "name": "k119_79" + }, + "k119_8": { + "contig_id": "k119_8", + "description": "", + "gc_content": 0.66741, + "length": 10319, + "md5": "b2e4cc5c6155973ba465bea77cf4811c", + "name": "k119_8" + }, + "k119_80": { + "contig_id": "k119_80", + "description": "", + "gc_content": 0.67589, + "length": 5924, + "md5": "7ccbbe27b8292abb895172e1d569637d", + "name": "k119_80" + }, + "k119_81": { + "contig_id": "k119_81", + "description": "", + "gc_content": 0.6733, + "length": 7738, + "md5": "3035d94d44ec8c19ad244fbd7fa9d31b", + "name": "k119_81" + }, + "k119_82": { + "contig_id": "k119_82", + "description": "", + "gc_content": 0.68636, + "length": 14797, + "md5": "6aede4f7226992f4e2ff6df85c59b710", + "name": "k119_82" + }, + "k119_83": { + "contig_id": "k119_83", + "description": "", + "gc_content": 0.68209, + "length": 6763, + "md5": "9d81349f641777541ebf9bd49661d325", + "name": "k119_83" + }, + "k119_84": { + "contig_id": "k119_84", + "description": "", + "gc_content": 0.67774, + "length": 7677, + "md5": "fb5e865c9cdacf87d734748cb9d22c05", + "name": "k119_84" + }, + "k119_85": { + "contig_id": "k119_85", + "description": "", + "gc_content": 0.666, + "length": 15614, + "md5": "f64e49284e883defa9cc494f35ee3c15", + "name": "k119_85" + }, + "k119_86": { + "contig_id": "k119_86", + "description": "", + "gc_content": 0.68894, + "length": 17704, + "md5": "cf4b0799f1dd27bebeea17d6d9706046", + "name": "k119_86" + }, + "k119_87": { + "contig_id": "k119_87", + "description": "", + "gc_content": 0.68203, + "length": 27874, + "md5": "473bb827e61c60830dcfbdeb4fe5671d", + "name": "k119_87" + }, + "k119_88": { + "contig_id": "k119_88", + "description": "", + "gc_content": 0.6709, + "length": 23525, + "md5": "313d61bd96e83db6d93d91225172c496", + "name": "k119_88" + }, + "k119_89": { + "contig_id": "k119_89", + "description": "", + "gc_content": 0.71124, + "length": 8301, + "md5": "69a58062ee1a46111321c481c45764f0", + "name": "k119_89" + }, + "k119_9": { + "contig_id": "k119_9", + "description": "", + "gc_content": 0.66677, + "length": 6182, + "md5": "32c4079b210567645466e9b6590a4c75", + "name": "k119_9" + }, + "k119_90": { + "contig_id": "k119_90", + "description": "", + "gc_content": 0.67577, + "length": 22071, + "md5": "0b3d38724e0b2adb9b04f4ddb4919d40", + "name": "k119_90" + }, + "k119_91": { + "contig_id": "k119_91", + "description": "", + "gc_content": 0.67168, + "length": 89360, + "md5": "7fbc43cbb81f826614d838df4a21a44b", + "name": "k119_91" + }, + "k119_92": { + "contig_id": "k119_92", + "description": "", + "gc_content": 0.67276, + "length": 16245, + "md5": "3082120e8d46b5fb724eada9a37f5849", + "name": "k119_92" + }, + "k119_93": { + "contig_id": "k119_93", + "description": "", + "gc_content": 0.67877, + "length": 18308, + "md5": "a3eba10e77ac68315bbbf86cca2c8c43", + "name": "k119_93" + }, + "k119_94": { + "contig_id": "k119_94", + "description": "", + "gc_content": 0.68054, + "length": 38189, + "md5": "f26b33749350f8ca61ac291bee92a61b", + "name": "k119_94" + }, + "k119_95": { + "contig_id": "k119_95", + "description": "", + "gc_content": 0.69158, + "length": 6530, + "md5": "960613bae77c928e4e91c1c81c7a29fb", + "name": "k119_95" + }, + "k119_96": { + "contig_id": "k119_96", + "description": "", + "gc_content": 0.68187, + "length": 64754, + "md5": "fa399ddfffd05c00b3f14cf3f4208162", + "name": "k119_96" + }, + "k119_97": { + "contig_id": "k119_97", + "description": "", + "gc_content": 0.66303, + "length": 20444, + "md5": "36ba843a8a33384d97ec1fbb7a976d9d", + "name": "k119_97" + } + }, + "dna_size": 3178097, + "fasta_handle_info": { + "handle": { + "file_name": "NewBins.001.fasta", + "hid": "KBH_473953", + "id": "a600b645-9666-4106-9be7-1acf5139a6ee", + "remote_md5": "43dee551a79139f295b0ce1479048677", + "type": "shock", + "url": "https://ci.kbase.us/services/shock-api" + }, + "node_file_name": "NewBins.001.fasta", + "shock_id": "a600b645-9666-4106-9be7-1acf5139a6ee", + "size": 3179999 + }, + "fasta_handle_ref": "KBH_473953", + "gc_content": 0.67468, + "md5": "3c038ea131ddc1001b6d93ee90bfd603", + "num_contigs": 181, + "type": "Unknown", + "objectInfo": { + "id": 24, + "name": "NewBins.001.fasta_assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2019-05-21T18:56:26+0000", + "version": 1, + "saved_by": "eapearson", + "wsid": 42874, + "ws": "eapearson:narrative_1558464800819", + "checksum": "7a8b50b010bfc22ff14a5b688e30fd73", + "size": 27036, + "metadata": { + "GC content": "0.67468", + "Size": "3178097", + "N Contigs": "181", + "MD5": "3c038ea131ddc1001b6d93ee90bfd603" + }, + "ref": "42874/24/1", + "obj_id": "ws.42874.obj.24", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2019-05-21T18:56:26.000Z" + } + } + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json new file mode 100644 index 0000000000..b391dd1ce9 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json @@ -0,0 +1,443 @@ +{ + "status": "loaded", + "value": { + "description": "Alignments using HISAT2, v.2.1.0", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "items": [ + { + "label": "Ecoli_WT", + "ref": "30957/13/4", + "info": [ + 13, + "Ecoli_WT_R1_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:09:16+0000", + 4, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "576de411da27b159dee0579fd65cba7e", + 1062, + { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375163", + "size": "45448911", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/4/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.248", + "alignment_stats.mapped_reads": "1337324" + } + ], + "objectInfo": { + "id": 13, + "name": "Ecoli_WT_R1_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:16+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "576de411da27b159dee0579fd65cba7e", + "size": 1062, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375163", + "size": "45448911", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/4/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.248", + "alignment_stats.mapped_reads": "1337324" + }, + "ref": "30957/13/4", + "obj_id": "ws.30957.obj.13", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:16.000Z" + } + }, + { + "label": "Ecoli_WT", + "ref": "30957/16/3", + "info": [ + 16, + "Ecoli_WT_R2_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:09:22+0000", + 3, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "37ac0921fad13fbad52db7f9ec3f94f6", + 1061, + { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1080879", + "size": "36139191", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/6/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "88.843", + "alignment_stats.mapped_reads": "960285" + } + ], + "objectInfo": { + "id": 16, + "name": "Ecoli_WT_R2_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:22+0000", + "version": 3, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "37ac0921fad13fbad52db7f9ec3f94f6", + "size": 1061, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1080879", + "size": "36139191", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/6/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "88.843", + "alignment_stats.mapped_reads": "960285" + }, + "ref": "30957/16/3", + "obj_id": "ws.30957.obj.16", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:22.000Z" + } + }, + { + "label": "Ecoli_WT", + "ref": "30957/17/3", + "info": [ + 17, + "Ecoli_WT_R3_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:09:47+0000", + 3, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "474fab4f795c7da174bdb1933b78afdf", + 1061, + { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1361644", + "size": "46329215", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/7/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.12", + "alignment_stats.mapped_reads": "1322435" + } + ], + "objectInfo": { + "id": 17, + "name": "Ecoli_WT_R3_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:47+0000", + "version": 3, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "474fab4f795c7da174bdb1933b78afdf", + "size": 1061, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1361644", + "size": "46329215", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/7/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.12", + "alignment_stats.mapped_reads": "1322435" + }, + "ref": "30957/17/3", + "obj_id": "ws.30957.obj.17", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:47.000Z" + } + }, + { + "label": "Ecoli_ydcR", + "ref": "30957/18/3", + "info": [ + 18, + "Ecoli_ydcR_R1_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:10:00+0000", + 3, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "413e8220c1583a3b9d21f46f94844f84", + 1066, + { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1283399", + "size": "42745389", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/8/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.042", + "alignment_stats.mapped_reads": "1219764" + } + ], + "objectInfo": { + "id": 18, + "name": "Ecoli_ydcR_R1_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:10:00+0000", + "version": 3, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "413e8220c1583a3b9d21f46f94844f84", + "size": 1066, + "metadata": { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1283399", + "size": "42745389", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/8/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.042", + "alignment_stats.mapped_reads": "1219764" + }, + "ref": "30957/18/3", + "obj_id": "ws.30957.obj.18", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:10:00.000Z" + } + }, + { + "label": "Ecoli_ydcR", + "ref": "30957/14/4", + "info": [ + 14, + "Ecoli_ydcR_R2_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:12:56+0000", + 4, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "a25c12a75042b70870a7f16bbc67518b", + 1066, + { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1295543", + "size": "46228194", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/9/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.638", + "alignment_stats.mapped_reads": "1239029" + } + ], + "objectInfo": { + "id": 14, + "name": "Ecoli_ydcR_R2_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:12:56+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "a25c12a75042b70870a7f16bbc67518b", + "size": 1066, + "metadata": { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1295543", + "size": "46228194", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/9/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.638", + "alignment_stats.mapped_reads": "1239029" + }, + "ref": "30957/14/4", + "obj_id": "ws.30957.obj.14", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:12:56.000Z" + } + }, + { + "label": "Ecoli_ydcR", + "ref": "30957/15/4", + "info": [ + 15, + "Ecoli_ydcR_R3_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:13:11+0000", + 4, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "300f2bb4020dfb33c8754b28d50065af", + 1068, + { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375366", + "size": "46444550", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/10/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "96.953", + "alignment_stats.mapped_reads": "1333457" + } + ], + "objectInfo": { + "id": 15, + "name": "Ecoli_ydcR_R3_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:13:11+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "300f2bb4020dfb33c8754b28d50065af", + "size": 1068, + "metadata": { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375366", + "size": "46444550", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/10/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "96.953", + "alignment_stats.mapped_reads": "1333457" + }, + "ref": "30957/15/4", + "obj_id": "ws.30957.obj.15", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:13:11.000Z" + } + } + ] + }, + "selectedItem": { + "status": "loaded", + "value": { + "aligned_using": "hisat2", + "aligner_opts": { + "alignment_suffix": "_alignment", + "alignmentset_suffix": "_alignment_set", + "build_report": "0", + "condition": "Ecoli_WT", + "genome_ref": "30957/3/1", + "max_intron_length": "500000", + "min_intron_length": "20", + "no_spliced_alignment": "0", + "np": "1", + "num_threads": "2", + "orientation": "fr", + "quality_score": "phred33", + "sampleset_ref": "30957/12/1;30957/4/1", + "skip": "0", + "tailor_alignments": "dta-cufflinks", + "trim3": "0", + "trim5": "0", + "ws_name": "jjeffryes:narrative_1522765762916" + }, + "aligner_version": "2.1.0", + "alignment_stats": { + "alignment_rate": 97.248, + "mapped_reads": 1337324, + "multiple_alignments": 13935, + "properly_paired": 0, + "singletons": 1323389, + "total_reads": 1375163, + "unmapped_reads": 37839 + }, + "condition": "Ecoli_WT", + "file": { + "file_name": "accepted_hits.bam", + "hid": "KBH_455294", + "id": "43250943-1bfa-4c24-aa4e-0a5fe4eb424a", + "remote_md5": "54655741213ef6d991c0537f2c4eb33c", + "type": "shock", + "url": "https://ci.kbase.us/services/shock-api" + }, + "genome_id": "30957/3/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "read_sample_id": "30957/12/1;30957/4/1", + "size": 45448911, + "objectInfo": { + "id": 13, + "name": "Ecoli_WT_R1_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:16+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "576de411da27b159dee0579fd65cba7e", + "size": 1062, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375163", + "size": "45448911", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/4/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.248", + "alignment_stats.mapped_reads": "1337324" + }, + "ref": "30957/13/4", + "obj_id": "ws.30957.obj.13", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:16.000Z" + } + } + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js b/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js new file mode 100644 index 0000000000..1bf91733cd --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js @@ -0,0 +1,33 @@ +define([ + 'react', + 'react-dom', + 'test/unit/utils/domUtils', + 'widgets/function_output/KBaseSets/types/AssemblySet', + 'json!../data/assemblyset_1.json' +], (React, ReactDOM, domUtils, AssemblySet, testData1) => { + 'use strict'; + + const { createElement } = React; + const { render } = ReactDOM; + + describe('The Loader class', () => { + it('should be defined', () => { + expect(AssemblySet).toBeDefined(); + }); + + it('should render a valid assembly set', async () => { + const node = document.createElement('div'); + + // install our component there + const el = createElement(AssemblySet, { set: testData1, setItem: () => { } }, null); + render(el, node); + + await domUtils.waitFor(() => { + return node.innerText.includes(testData1.value.description); + }, 1000); + + expect(true).toBeTrue(); + + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js new file mode 100644 index 0000000000..10b7d35332 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js @@ -0,0 +1,33 @@ +define([ + 'react', + 'react-dom', + 'test/unit/utils/domUtils', + 'widgets/function_output/KBaseSets/types/ReadsAlignmentSet', + 'json!../data/readsalignmentset_1.json' +], (React, ReactDOM, domUtils, ReadsAlignmentSet, testData1) => { + 'use strict'; + + const { createElement } = React; + const { render } = ReactDOM; + + describe('The Loader class', () => { + it('should be defined', () => { + expect(ReadsAlignmentSet).toBeDefined(); + }); + + it('should render a valid reads alignment set', async () => { + const node = document.createElement('div'); + + // install our component there + const el = createElement(ReadsAlignmentSet, { set: testData1, setItem: () => { } }, null); + render(el, node); + + await domUtils.waitFor(() => { + return node.innerText.includes(testData1.value.description); + }, 1000); + + expect(true).toBeTrue(); + + }); + }); +}); diff --git a/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js b/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js index fb6659e612..826e5a8424 100644 --- a/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js +++ b/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js @@ -1,7 +1,7 @@ define([ 'jquery', 'kbaseSampleSetView', - '../../utils/mswUtils', + 'test/unit/utils/mswUtils', 'require', 'jsonrpc/1.1/ServiceClient', 'narrativeConfig', From abd005712cbb8669519d53f34f182548a29f7b9d Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 8 Oct 2021 08:16:27 -0700 Subject: [PATCH 18/54] add shebang to shell script --- Makefile | 2 +- scripts/install-node-modules.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e673001dcf..dbec092ded 100755 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ install: bash $(INSTALLER) install-node-modules: - bash scripts/install-node-modules.sh + sh scripts/install-node-modules.sh # runs the installer to locally build the Narrative in a # local venv. diff --git a/scripts/install-node-modules.sh b/scripts/install-node-modules.sh index 300dd0ecff..9a68a9895a 100644 --- a/scripts/install-node-modules.sh +++ b/scripts/install-node-modules.sh @@ -1,3 +1,5 @@ +#!/bin/sh + mkdir -p kbase-extension/static/ext_modules/react cp node_modules/react/umd/react.development.js kbase-extension/static/ext_modules/react mkdir -p kbase-extension/static/ext_modules/react-dom From de8fc7e39fa0be683d0bef5803afc14cb10dbc9a Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Sat, 9 Oct 2021 06:24:40 -0700 Subject: [PATCH 19/54] refactor naming, keep truckin' on docs --- .../function_output/KBaseSets/Dispatcher.js | 28 +++++-------- .../KBaseSets/{SetLoader.js => Loader.js} | 4 +- .../function_output/KBaseSets/README.md | 14 +++++-- .../KBaseSets/{SetBrowser.css => Viewer.css} | 16 +++---- .../KBaseSets/{SetBrowser.js => Viewer.js} | 42 ++++++++----------- .../{AssemblySet.js => AssemblySetViewer.js} | 21 +++------- ...nmentSet.js => ReadsAlignmentSetViewer.js} | 21 +++------- .../KBaseSets/Dispatcher-spec.js | 9 ++++ .../{SetLoader-spec.js => Loader-spec.js} | 4 +- .../{SetBrowser-spec.js => Viewer-spec.js} | 4 +- .../KBaseSets/types/AssemblySet-spec.js | 8 ++-- .../KBaseSets/types/ReadsAlignmentSet-spec.js | 8 ++-- 12 files changed, 79 insertions(+), 100 deletions(-) rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/{SetLoader.js => Loader.js} (99%) rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/{SetBrowser.css => Viewer.css} (69%) rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/{SetBrowser.js => Viewer.js} (91%) rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/{AssemblySet.js => AssemblySetViewer.js} (76%) rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/{ReadsAlignmentSet.js => ReadsAlignmentSetViewer.js} (88%) create mode 100644 test/unit/spec/function_output/KBaseSets/Dispatcher-spec.js rename test/unit/spec/function_output/KBaseSets/{SetLoader-spec.js => Loader-spec.js} (51%) rename test/unit/spec/function_output/KBaseSets/{SetBrowser-spec.js => Viewer-spec.js} (50%) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js index 665c6e0aea..f1a4685442 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js @@ -74,10 +74,10 @@ define([ 'react', 'kb_common/jsonRpc/genericClient', 'kb_service/utils', - 'widgets/function_output/KBaseSets/types/ReadsAlignmentSet', - 'widgets/function_output/KBaseSets/types/AssemblySet', + 'widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer', + 'widgets/function_output/KBaseSets/types/AssemblySetViewer', 'react_components/ErrorMessage', - 'widgets/function_output/KBaseSets/SetLoader', + 'widgets/function_output/KBaseSets/Loader', // For effect 'bootstrap' @@ -85,10 +85,10 @@ define([ React, ServiceClient, ServiceUtils, - ReadsAlignmentSet, - AssemblySet, + ReadsAlignmentSetViewer, + AssemblySetViewer, ErrorMessage, - SetLoader + Loader ) => { 'use strict'; @@ -98,11 +98,11 @@ define([ // must be components implemented as defined in `react_components/genericSets`. const SET_TYPE_TO_MODULE_MAPPING = { 'KBaseSets.ReadsAlignmentSet': { - module: ReadsAlignmentSet, + module: ReadsAlignmentSetViewer, method: 'get_reads_alignment_set_v1' }, 'KBaseSets.AssemblySet': { - module: AssemblySet, + module: AssemblySetViewer, method: 'get_assembly_set_v1' } }; @@ -116,8 +116,6 @@ define([ super(props); this.state = { status: null, - // setType: null, - // error: null }; } @@ -177,7 +175,7 @@ define([ } renderLoaded() { - return e(SetLoader, { + return e(Loader, { token: this.props.token, workspaceURL: this.props.workspaceURL, serviceWizardURL: this.props.serviceWizardURL, @@ -185,19 +183,13 @@ define([ method: this.state.method, module: this.state.module }); - - // return e(this.state.module, { - // token: this.props.token, - // workspaceURL: this.props.workspaceURL, - // serviceWizardURL: this.props.serviceWizardURL, - // objectRef: this.props.objectRef - // }); } render() { switch (this.state.status) { case null: case 'loading': + // TODO: Loading comonent return e('div', null, 'Loading...'); case 'error': return this.renderError(); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js similarity index 99% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js index 99dbfe3896..e24010f3a3 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js @@ -19,7 +19,7 @@ define([ * A class implementing a component which essentially forms the data backbone for * the set component */ - class SetLoader extends Component { + class Loader extends Component { constructor(props) { super(props); if (!props.method) { @@ -254,5 +254,5 @@ define([ } } - return SetLoader; + return Loader; }); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md index 609ff8fe94..905adf89ce 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md @@ -4,9 +4,9 @@ THe KBaseSets [data module](https://narrative.kbase.us/#spec/module/KBaseSets) p Inspecting [KBaseSets](https://narrative.kbase.us/#spec/module/KBaseSets) can give you a guide to which sets are implemented, and the general data design, but does not give you an accurate picture of the data you will actually deal with through the SetAPI. -It is also notable, on the subject of caveats, that KBase types do not support inheritance, so the implementation of commonality for types in KBaseSets is purely by convention (copy and paste, if you will). That is, there is no actual "Generic Set" object, if you will, but rather a collection of types which, by convention, implement the same interface. +It is also notable, on the subject of caveats, that KBase types do not support inheritance, so the implementation of commonality for types in KBaseSets is purely by convention (copy and paste, if you will). That is, there is no actual "Generic Set" object definition, but rather a collection of types which, by convention, implement the same interface. -The basic design of a set that a set implements a wrapper around an array of objects of the same type. +The basic design of a Set that a Set is a container for array of objects of the same type. The wrapper consists of a string description and an array of objects, each object being of the same type. @@ -19,9 +19,15 @@ interface KBaseSet { } ``` -Pretty basic, huh? +## Viewer Design -So clearly the meat is in the `T`, I dare say. +The viewer is implemented by a one set of components providing generic support for all KBaseSet types, and a specific viewer for each type. + +1. The initial entrypoint from the Narrative point of view is `kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js`, a standard "kbwidget" style component which is registered as the viewer for several KBaseSets types +2. The kbaseGenericSetViewer is just a wrapper around the main entrypoint for the viewer, `function_output/KBaseSets/Dispatcher.js`, responsible for determining the object type, and finding a configuration for that type +3. the Dispatcher then calls the `unction_output/KBaseSets/Loader.js` with this information. The loader is responsible for providing data services, which are exposed as prop functions, and loading the type-specific viewer +4. An abstract class `function_output/KBaseSets/Viewer.js` implements viewer aspects of the Set, but not the set elements. +5. The specific viewer is a superclass which implements the renderSetElement method, will be found in `function_output/KBaseSets/types`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. ## Dispatcher diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css similarity index 69% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css index abaf4e5691..8a628aa969 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.css +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css @@ -1,10 +1,10 @@ -.SetBrowser .Table { +.KBaseSets .Table { display: flex; flex-direction: column; margin-bottom: 10px; } -.SetBrowser .Table > .Row { +.KBaseSets .Table > .Row { flex: 0 0 auto; display: flex; flex-direction: row; @@ -13,28 +13,28 @@ height: 1.5em; } -.SetBrowser .Table > .Row > .Col:nth-child(1) { +.KBaseSets .Table > .Row > .Col:nth-child(1) { font-weight: bold; color: rgba(100, 100, 100); flex: 0 0 13em; } -.SetBrowser .Table > .Row > .Col:nth-child(2) { +.KBaseSets .Table > .Row > .Col:nth-child(2) { flex: 1 1 0; } /* tweak bootstrap styling here */ -.SetBrowser select.form-control { +.KBaseSets select.form-control { margin-left: 0; margin-right: 0; padding: 4px; } -.SetBrowser .Overview .OverlayWrapper { +.KBaseSets .Overview .OverlayWrapper { position: relative; } -.SetBrowser .Overview .OverlayWrapper .LoadingOverlay { +.KBaseSets .Overview .OverlayWrapper .LoadingOverlay { position: absolute; left: 0; right: 0; @@ -48,7 +48,7 @@ color: rgba(150, 150, 150, 1); } -.SetBrowser .Overview table th { +.KBaseSets .Overview table th { width: 20%; font-weight: bold; text-align: left; diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js similarity index 91% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js index 1be43185ff..0be73b693d 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetBrowser.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js @@ -4,7 +4,7 @@ define([ // For effect 'bootstrap', - 'css!./SetBrowser.css' + 'css!./Viewer.css' ], ( React, ErrorMessage @@ -23,7 +23,7 @@ define([ * */ - class SetBrowser extends Component { + class Viewer extends Component { // Abstract /** @@ -32,8 +32,8 @@ define([ * @abstract * @returns {void} nothing useful */ - renderItemTable() { - throw new Error('renderItemTable not implemented in subclass'); + renderSetElement() { + throw new Error('renderSetElement not implemented in subclass'); } // Implementation @@ -114,23 +114,6 @@ define([ ]); } - - - renderOverview() { - const isLoading = [null, 'loading'].includes(this.props.set.selectedItem.status); - // const isLoading = true; - return e('div', { key: 'overview', className: 'Overview' }, ...[ - this.renderHeader(), - // The item area - e('div', { - className: 'OverlayWrapper' - }, ...[ - this.renderItemTable(), - isLoading ? this.renderLoading(3) : null - ]) - ]); - } - renderNoItems() { return e('div', null, 'Sorry, no items'); } @@ -150,7 +133,18 @@ define([ } renderViewer() { - return this.renderOverview(); + const isLoading = [null, 'loading'].includes(this.props.set.selectedItem.status); + return e('div', { key: 'overview', className: 'Overview' }, ...[ + this.renderHeader(), + // A classic display-relative overlay area, in which the loading spinner + // may be temporarily rendered. + e('div', { + className: 'OverlayWrapper' + }, ...[ + this.renderSetElement(), + isLoading ? this.renderLoading(3) : null + ]) + ]); } renderState() { @@ -171,10 +165,10 @@ define([ render() { return e('div', { - className: 'SetBrowser' + className: 'KBaseSets' }, this.renderState()); } } - return SetBrowser; + return Viewer; }); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySetViewer.js similarity index 76% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySetViewer.js index 5a77e7be0b..82a747ab7c 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySetViewer.js @@ -1,17 +1,17 @@ define([ 'react', - '../SetBrowser', + 'widgets/function_output/KBaseSets/Viewer', 'bootstrap' ], ( React, - SetBrowser, + Viewer, ) => { 'use strict'; const { createElement: e } = React; - class AssemblySet extends SetBrowser { - renderItemTable() { + class AssemblySetViewer extends Viewer { + renderSetElement() { const selectedItem = this.props.set.selectedItem; if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { return null; @@ -51,16 +51,5 @@ define([ } } - // class AssemblySetLoader extends Component { - // render() { - // return e(SetLoader, { - // ...this.props, - // method: 'get_assembly_set_v1', - // module: AssemblySet - // }); - // } - // } - - // return AssemblySetLoader; - return AssemblySet; + return AssemblySetViewer; }); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer.js similarity index 88% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer.js index 471612c431..1ca5107b70 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSet.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer.js @@ -1,17 +1,17 @@ define([ 'react', - '../SetBrowser', + 'widgets/function_output/KBaseSets/Viewer', 'bootstrap' ], ( React, - SetBrowser, + Viewer, ) => { 'use strict'; const { createElement: e } = React; - class ReadsAlignmentSet extends SetBrowser { - renderItemTable() { + class ReadsAlignmentSetViewer extends Viewer { + renderSetElement() { const selectedItem = this.props.set.selectedItem; if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { return null; @@ -106,16 +106,5 @@ define([ } } - // class ReadsAlignmentSetLoader extends Component { - // render() { - // return e(SetLoader, { - // ...this.props, - // method: 'get_reads_alignment_set_v1', - // module: ReadsAlignmentSet - // }); - // } - // } - - // return ReadsAlignmentSetLoader; - return ReadsAlignmentSet; + return ReadsAlignmentSetViewer; }); diff --git a/test/unit/spec/function_output/KBaseSets/Dispatcher-spec.js b/test/unit/spec/function_output/KBaseSets/Dispatcher-spec.js new file mode 100644 index 0000000000..778dad8aec --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/Dispatcher-spec.js @@ -0,0 +1,9 @@ +define(['widgets/function_output/KBaseSets/Dispatcher'], (Dispatcher) => { + 'use strict'; + + describe('The Dispatcher entrypoint class', () => { + it('should be defined', () => { + expect(Dispatcher).toBeDefined(); + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js b/test/unit/spec/function_output/KBaseSets/Loader-spec.js similarity index 51% rename from test/unit/spec/function_output/KBaseSets/SetLoader-spec.js rename to test/unit/spec/function_output/KBaseSets/Loader-spec.js index 89b9f82ba5..3511ae59db 100644 --- a/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js +++ b/test/unit/spec/function_output/KBaseSets/Loader-spec.js @@ -1,9 +1,9 @@ -define(['widgets/function_output/KBaseSets/SetLoader'], (SetLoader) => { +define(['widgets/function_output/KBaseSets/Loader'], (Loader) => { 'use strict'; describe('The Loader class', () => { it('should be defined', () => { - expect(SetLoader).toBeDefined(); + expect(Loader).toBeDefined(); }); }); }); diff --git a/test/unit/spec/function_output/KBaseSets/SetBrowser-spec.js b/test/unit/spec/function_output/KBaseSets/Viewer-spec.js similarity index 50% rename from test/unit/spec/function_output/KBaseSets/SetBrowser-spec.js rename to test/unit/spec/function_output/KBaseSets/Viewer-spec.js index 772f3c4533..57819bb600 100644 --- a/test/unit/spec/function_output/KBaseSets/SetBrowser-spec.js +++ b/test/unit/spec/function_output/KBaseSets/Viewer-spec.js @@ -1,9 +1,9 @@ -define(['widgets/function_output/KBaseSets/SetBrowser'], (SetBrowser) => { +define(['widgets/function_output/KBaseSets/Viewer'], (Viewer) => { 'use strict'; describe('The Loader class', () => { it('should be defined', () => { - expect(SetBrowser).toBeDefined(); + expect(Viewer).toBeDefined(); }); }); }); diff --git a/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js b/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js index 1bf91733cd..0ec10a489a 100644 --- a/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js +++ b/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js @@ -2,9 +2,9 @@ define([ 'react', 'react-dom', 'test/unit/utils/domUtils', - 'widgets/function_output/KBaseSets/types/AssemblySet', + 'widgets/function_output/KBaseSets/types/AssemblySetViewer', 'json!../data/assemblyset_1.json' -], (React, ReactDOM, domUtils, AssemblySet, testData1) => { +], (React, ReactDOM, domUtils, AssemblySetViewer, testData1) => { 'use strict'; const { createElement } = React; @@ -12,14 +12,14 @@ define([ describe('The Loader class', () => { it('should be defined', () => { - expect(AssemblySet).toBeDefined(); + expect(AssemblySetViewer).toBeDefined(); }); it('should render a valid assembly set', async () => { const node = document.createElement('div'); // install our component there - const el = createElement(AssemblySet, { set: testData1, setItem: () => { } }, null); + const el = createElement(AssemblySetViewer, { set: testData1, setItem: () => { } }, null); render(el, node); await domUtils.waitFor(() => { diff --git a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js index 10b7d35332..7fc4641f8c 100644 --- a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js +++ b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js @@ -2,9 +2,9 @@ define([ 'react', 'react-dom', 'test/unit/utils/domUtils', - 'widgets/function_output/KBaseSets/types/ReadsAlignmentSet', + 'widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer', 'json!../data/readsalignmentset_1.json' -], (React, ReactDOM, domUtils, ReadsAlignmentSet, testData1) => { +], (React, ReactDOM, domUtils, ReadsAlignmentSetViewer, testData1) => { 'use strict'; const { createElement } = React; @@ -12,14 +12,14 @@ define([ describe('The Loader class', () => { it('should be defined', () => { - expect(ReadsAlignmentSet).toBeDefined(); + expect(ReadsAlignmentSetViewer).toBeDefined(); }); it('should render a valid reads alignment set', async () => { const node = document.createElement('div'); // install our component there - const el = createElement(ReadsAlignmentSet, { set: testData1, setItem: () => { } }, null); + const el = createElement(ReadsAlignmentSetViewer, { set: testData1, setItem: () => { } }, null); render(el, node); await domUtils.waitFor(() => { From 5dc8ef61372d21c384cef9def4aed5df3e6d9d02 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Sun, 10 Oct 2021 08:51:26 -0700 Subject: [PATCH 20/54] update usage of list_objects to use list of workspaces; tests pass again; some light refactoring. --- src/biokbase/narrative/common/util.py | 26 +++++++++ .../narrative/contents/narrativeio.py | 57 ++++++++++++------- .../narrative/tests/common/test_util.py | 47 +++++++++++++++ 3 files changed, 108 insertions(+), 22 deletions(-) create mode 100644 src/biokbase/narrative/tests/common/test_util.py diff --git a/src/biokbase/narrative/common/util.py b/src/biokbase/narrative/common/util.py index 0cf30a690b..3f6732f17c 100644 --- a/src/biokbase/narrative/common/util.py +++ b/src/biokbase/narrative/common/util.py @@ -114,3 +114,29 @@ def run(self): doc = top + self.doc_dir os.chdir(doc) os.system("make html") + + +# +# Makes a set of 0-based ranges, given a total length and a the desired length +# of the range. +# +def make_ranges(total_count, range_size): + if total_count < 0: + raise ValueError("total_count must be 0 or greater") + + if range_size <= 0: + raise ValueError("range_size must be 1 or greater") + + if total_count == 0: + return [] + + batch_count = int(total_count / range_size) + ( + 1 if total_count % range_size > 0 else 0 + ) + ranges = [] + for batch in range(0, batch_count): + range_start = batch * range_size + range_length = min(range_size, total_count - range_start) + range_end = range_start + range_length + ranges.append([range_start, range_end]) + return ranges diff --git a/src/biokbase/narrative/contents/narrativeio.py b/src/biokbase/narrative/contents/narrativeio.py index 7251d9e30c..1c8ac237a2 100644 --- a/src/biokbase/narrative/contents/narrativeio.py +++ b/src/biokbase/narrative/contents/narrativeio.py @@ -12,9 +12,7 @@ from tornado.web import HTTPError from notebook.utils import to_api_path, to_os_path from biokbase.narrative.common.exceptions import WorkspaceError -from traitlets import Unicode, Dict, Bool, List, TraitError from biokbase.narrative.common.kblogging import get_logger, log_event -import re import json from collections import Counter from .updater import update_narrative @@ -24,7 +22,7 @@ # The list_workspace_objects method has been deprecated, the # list_objects method is the current primary method for fetching # objects, and has a different field list -list_objects_fields = [ +LIST_OBJECTS_FIELDS = [ "objid", "name", "type", @@ -37,14 +35,12 @@ "size", "meta", ] -obj_field = dict(zip(list_objects_fields, range(len(list_objects_fields)))) - -obj_ref_regex = re.compile(r"^(?P\d+)\/(?P\d+)(\/(?P\d+))?$") MAX_METADATA_STRING_BYTES = 900 MAX_METADATA_SIZE_BYTES = 16000 WORKSPACE_TIMEOUT = 30 # seconds NARRATIVE_TYPE = "KBaseNarrative.Narrative" +MAX_LIST_OBJECT_WORKSPACE_COUNT = 1000 g_log = get_logger("biokbase.narrative") @@ -509,10 +505,13 @@ def list_narratives(self, ws_id=None): current token has read access to. Works anonymously as well. If the ws_id field is not None, it will only look up Narratives in that - particular workspace (by its numerical id). + particular workspace (by its numerical id). Otherwise, the set of all + Narratives accessible to the current user (or public narratives if no token + is present) is fetched and used in batches of MAX_LIST_OBJECT_WORKSPACE_COUNT + or smaller. Returns a list of dictionaries of object descriptions, one for each Narrative. - The keys in each dictionary are those from the list_objects_fields list above. + The keys in each dictionary are those from the LIST_OBJECTS_FIELDS list above. This is just a wrapper around the Workspace list_objects command. @@ -521,25 +520,39 @@ def list_narratives(self, ws_id=None): """ log_event(g_log, "list_narratives start", {"ws_id": ws_id}) list_obj_params = {"type": self.nar_type, "includeMetadata": 1} + ws = self.ws_client() if ws_id: - try: - int(ws_id) # will throw an exception if ws_id isn't an int - list_obj_params["ids"] = [ws_id] - except ValueError: - raise + ws_ids = [int(ws_id)] # will throw an exception if ws_id isn't an int + + else: + # Fetch all the workspaces the Workspace will give us. + # Not that this is necessary due to a change in list_objects, used below, + # which now requires the "ids" parameter, and that it contain + # between 1 and 1000 workspaces. + ws_ids = [ws_info[6] for ws_info in ws.list_workspaces({})] + + if len(ws_ids) == 0: + return [] + my_narratives = [] try: - ws = self.ws_client() - res = ws.list_objects(list_obj_params) + batch_ranges = util.make_ranges( + len(ws_ids), MAX_LIST_OBJECT_WORKSPACE_COUNT + ) + + for [batch_start, batch_end] in batch_ranges: + list_obj_params["ids"] = ws_ids[batch_start:batch_end] + res = ws.list_objects(list_obj_params) + for obj in res: + nar = dict(zip(LIST_OBJECTS_FIELDS, obj)) + # Look first for the name in the object metadata. if it's not there, use + # the object's name. If THAT'S not there, use Untitled. + # This gives support for some rather old narratives that don't + # have their name stashed in the metadata. + nar["name"] = nar["meta"].get("name", nar.get("name", "Untitled")) + my_narratives.append(nar) except ServerError as err: raise WorkspaceError(err, ws_id) - my_narratives = [dict(zip(list_objects_fields, obj)) for obj in res] - for nar in my_narratives: - # Look first for the name in the object metadata. if it's not there, use - # the object's name. If THAT'S not there, use Untitled. - # This gives support for some rather old narratives that don't - # have their name stashed in the metadata. - nar["name"] = nar["meta"].get("name", nar.get("name", "Untitled")) return my_narratives diff --git a/src/biokbase/narrative/tests/common/test_util.py b/src/biokbase/narrative/tests/common/test_util.py new file mode 100644 index 0000000000..a02b31fdf3 --- /dev/null +++ b/src/biokbase/narrative/tests/common/test_util.py @@ -0,0 +1,47 @@ +""" +Tests for Mixin class that handles IO between the +Narrative and workspace service. +""" +import unittest +from biokbase.narrative.common.util import make_ranges + +__author__ = "Bill Riehl " + + +class UtilTestCase(unittest.TestCase): + # Before test: + # - Log in (for tests that need a valid login) + # also sets the token in the environment variable. + test_token = None + private_token = None + + # Test make_batches + + def test_make_batches_normal_cases(self): + # Args: total_size, range_size + cases = [ + {"input": [0, 1], "expected": []}, + {"input": [1, 1], "expected": [[0, 1]]}, + {"input": [10, 10], "expected": [[0, 10]]}, + {"input": [10, 5], "expected": [[0, 5], [5, 10]]}, + {"input": [10, 3], "expected": [[0, 3], [3, 6], [6, 9], [9, 10]]}, + ] + for case in cases: + self.assertEqual(make_ranges(*case["input"]), case["expected"]) + + def test_make_batches_arg_error_cases(self): + # Args: total_size, range_size + cases = [ + {"input": [1, 0]}, + {"input": [0, 0]}, + {"input": [1, -1]}, + {"input": [-1, 1]}, + {"input": [-1, -1]}, + ] + for case in cases: + with self.assertRaises(ValueError): + make_ranges(*case["input"]) + + +if __name__ == "__main__": + unittest.main() From 11e1f54f9fdf48a8b59834ccc781dc59940aed7b Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Sun, 10 Oct 2021 09:11:59 -0700 Subject: [PATCH 21/54] removed comments, have been moved to a README --- .../function_output/KBaseSets/Dispatcher.js | 53 ------------------- 1 file changed, 53 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js index f1a4685442..89c7f340f3 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js @@ -16,59 +16,6 @@ an error message, or are handled by other viewers. Note that this widget is a wrapper dispatching to the specific viewer, most of the implementation is in the React components referred two in the AMD dependencies. The only UI supported herein is the loading indicator and an error message, if necessary. - -The original intention of this viewer was to support all of the types implemented in KBaseSets, -but that work has not yet been completed: - -Also, see: https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_generic_set/spec.json#L21 - -Below is the status of each KBaseSet type: - -Implemented in this viewer: - -KBaseSets.ReadsAlignmentSet -SetAPI.get_reads_alignment_set_v1 - -KBaseSets.AssemblySet -SetAPI.get_assembly_set_v1 - -Implemented in other viewers: - -KBaseSets.DifferentialExpressionMatrixSet -SetAPI.get_differential_expression_matrix_set_v1 -Implemented by: -https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_differential_expression_matrix_set/spec.json -and this viewer does not work - -KBaseSets.ExpressionSet -SetAPI.get_expression_set_v1 -Implemented by: -https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_rnaseq_sample_expression/spec.json -and that viewer doesn't work - -KBaseSets.ReadsSet -SetAPI.get_reads_set_v1 -Implemented by: -https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_reads_set/spec.json -and the current viewer works - -KBaseSets.SampleSet -SetAPI.sample_set_to_samples_info (I think) -Implemented by: -https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_sample_set -but not that this viewer does not utilize the SetAPI, which was implemented against the search, which -has never been fully implemented for search. Also Samples and RNASeqSamples seem to be conflated -a bit in SetAPI. - -Not implemented anywhere: - -KBaseSets.FeatureSetSet -SetAPI.get_feature_set_set_v1 -can't find any data, or any app which outputs this type, or accepts as input (according to the app browser) - -KBaseSets.GenomeSet -SetAPI.get_genome_set_v1 - */ define([ 'react', From 505b59f4d124e42140a30fa0c3f2919b40bfafbc Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Sun, 10 Oct 2021 09:12:12 -0700 Subject: [PATCH 22/54] use safer setState --- .../function_output/KBaseSets/Loader.js | 140 ++++++++++-------- 1 file changed, 77 insertions(+), 63 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js index e24010f3a3..ce04d2a991 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js @@ -62,11 +62,13 @@ define([ } async getSet() { - this.setState({ - ...this.state, - set: { - status: 'loading' - } + this.setState((state) => { + return { + ...state, + set: { + status: 'loading' + } + }; }); try { const { description, items } = await this.fetchSet(); @@ -91,48 +93,54 @@ define([ // } // })); - this.setState({ - ...this.state, - set: { - status: 'loaded', - value: { - description, - type: selectedItem.objectInfo.type, - items, - }, - selectedItem: { + this.setState((state) => { + return { + ...state, + set: { status: 'loaded', - value: selectedItem - } + value: { + description, + type: selectedItem.objectInfo.type, + items, + }, + selectedItem: { + status: 'loaded', + value: selectedItem + } - } + } + }; }); } else { - this.setState({ - ...this.state, - set: { - status: 'loaded', - value: { - description, - type: null, - items, - }, - selectedItem: { - status: null - } + this.setState((state) => { + return { + ...state, + set: { + status: 'loaded', + value: { + description, + type: null, + items, + }, + selectedItem: { + status: null + } - } + } + }; }); } } catch (error) { console.error('Error fetching the set', error); - this.setState({ - ...this.state, - set: { - status: 'error', - error - } + this.setState((state) => { + return { + ...state, + set: { + status: 'error', + error + } + }; }); return; } @@ -160,40 +168,46 @@ define([ if (!this.selectedItemRef) { return; } - this.setState({ - ...this.state, - set: { - ...this.state.set, - selectedItem: { - // note that we keep the selected item even if we are - // (re)loading. - ...this.state.set.selectedItem, - status: 'loading' - } - } - }); - try { - const item = await this.fetchSetElement(this.selectedItemRef); - this.setState({ - ...this.state, + this.setState((state) => { + return { + ...state, set: { ...this.state.set, selectedItem: { - status: 'loaded', - value: item + // note that we keep the selected item even if we are + // (re)loading. + ...this.state.set.selectedItem, + status: 'loading' } } + }; + }); + try { + const item = await this.fetchSetElement(this.selectedItemRef); + this.setState((state) => { + return { + ...state, + set: { + ...this.state.set, + selectedItem: { + status: 'loaded', + value: item + } + } + }; }); } catch (error) { - this.setState({ - ...this.state, - set: { - ...this.state.set, - selectedItem: { - status: 'error', - error + this.setState((state) => { + return { + ...state, + set: { + ...this.state.set, + selectedItem: { + status: 'error', + error + } } - } + }; }); } } From 6559f7b4d7a20ea58bcadf5dab2c895df5172648 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Sun, 10 Oct 2021 09:15:20 -0700 Subject: [PATCH 23/54] remove now-unused arg --- .../spec/function_output/KBaseSets/types/AssemblySet-spec.js | 2 +- .../function_output/KBaseSets/types/ReadsAlignmentSet-spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js b/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js index 0ec10a489a..49d05d7235 100644 --- a/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js +++ b/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js @@ -19,7 +19,7 @@ define([ const node = document.createElement('div'); // install our component there - const el = createElement(AssemblySetViewer, { set: testData1, setItem: () => { } }, null); + const el = createElement(AssemblySetViewer, { set: testData1 }, null); render(el, node); await domUtils.waitFor(() => { diff --git a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js index 7fc4641f8c..6d0f290c69 100644 --- a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js +++ b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js @@ -19,7 +19,7 @@ define([ const node = document.createElement('div'); // install our component there - const el = createElement(ReadsAlignmentSetViewer, { set: testData1, setItem: () => { } }, null); + const el = createElement(ReadsAlignmentSetViewer, { set: testData1 }, null); render(el, node); await domUtils.waitFor(() => { From 5ae7ca1ae66c3073a767e71f4003e8e90b5f12a9 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Sun, 10 Oct 2021 09:25:37 -0700 Subject: [PATCH 24/54] improve file comment --- src/biokbase/narrative/tests/common/test_util.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/biokbase/narrative/tests/common/test_util.py b/src/biokbase/narrative/tests/common/test_util.py index a02b31fdf3..83fe1ef6f6 100644 --- a/src/biokbase/narrative/tests/common/test_util.py +++ b/src/biokbase/narrative/tests/common/test_util.py @@ -1,6 +1,5 @@ """ -Tests for Mixin class that handles IO between the -Narrative and workspace service. +Standalone utility methods for Python tests """ import unittest from biokbase.narrative.common.util import make_ranges From f3d16aa370d7a400a8a85090fde615a2a3421b13 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Sun, 10 Oct 2021 09:28:15 -0700 Subject: [PATCH 25/54] codacy now uses "remark" for formatting, so switch to that and reformat this one --- .../function_output/KBaseSets/README.md | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md index 905adf89ce..a100c42b61 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md @@ -23,11 +23,15 @@ interface KBaseSet { The viewer is implemented by a one set of components providing generic support for all KBaseSet types, and a specific viewer for each type. -1. The initial entrypoint from the Narrative point of view is `kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js`, a standard "kbwidget" style component which is registered as the viewer for several KBaseSets types -2. The kbaseGenericSetViewer is just a wrapper around the main entrypoint for the viewer, `function_output/KBaseSets/Dispatcher.js`, responsible for determining the object type, and finding a configuration for that type -3. the Dispatcher then calls the `unction_output/KBaseSets/Loader.js` with this information. The loader is responsible for providing data services, which are exposed as prop functions, and loading the type-specific viewer -4. An abstract class `function_output/KBaseSets/Viewer.js` implements viewer aspects of the Set, but not the set elements. -5. The specific viewer is a superclass which implements the renderSetElement method, will be found in `function_output/KBaseSets/types`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. +1. The initial entrypoint from the Narrative point of view is `kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js`, a standard "kbwidget" style component which is registered as the viewer for several KBaseSets types + +2. The kbaseGenericSetViewer is just a wrapper around the main entrypoint for the viewer, `function_output/KBaseSets/Dispatcher.js`, responsible for determining the object type, and finding a configuration for that type + +3. the Dispatcher then calls the `unction_output/KBaseSets/Loader.js` with this information. The loader is responsible for providing data services, which are exposed as prop functions, and loading the type-specific viewer + +4. An abstract class `function_output/KBaseSets/Viewer.js` implements viewer aspects of the Set, but not the set elements. + +5. The specific viewer is a superclass which implements the renderSetElement method, will be found in `function_output/KBaseSets/types`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. ## Dispatcher @@ -47,7 +51,7 @@ UI supported herein is the loading indicator and an error message, if necessary. The original intention of this viewer was to support all of the types implemented in KBaseSets, but that work has not yet been completed: -Also, see: https://github.com/kbase/NarrativeViewers/blob/dd1eeeba0ba1faacd6c3596a9413109aeb82e32e/ui/narrative/methods/view_generic_set/spec.json#L21 +Also, see: Below is the status of each KBaseSet type: @@ -64,25 +68,25 @@ Implemented in other viewers: KBaseSets.DifferentialExpressionMatrixSet SetAPI.get_differential_expression_matrix_set_v1 Implemented by: -https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_differential_expression_matrix_set + and this viewer does not work KBaseSets.ExpressionSet SetAPI.get_expression_set_v1 Implemented by: -https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_rnaseq_sample_expression + and that viewer doesn't work KBaseSets.ReadsSet SetAPI.get_reads_set_v1 Implemented by: -https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_reads_set + and the current viewer works KBaseSets.SampleSet SetAPI.sample_set_to_samples_info (I think) Implemented by: -https://github.com/kbase/NarrativeViewers/tree/master/ui/narrative/methods/view_sample_set + but not that this viewer does not utilize the SetAPI, which was implemented against the search, which has never been fully implemented for search. Also Samples and RNASeqSamples seem to be conflated a bit in SetAPI. From c79a88889fa31271921855613392dd0a5a37ce63 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 11 Oct 2021 06:40:05 -0700 Subject: [PATCH 26/54] improve select control display with very long labels --- .../static/kbase/js/widgets/function_output/KBaseSets/Viewer.css | 1 + 1 file changed, 1 insertion(+) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css index 8a628aa969..6d39f70c22 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css @@ -28,6 +28,7 @@ margin-left: 0; margin-right: 0; padding: 4px; + width: 100%; } .KBaseSets .Overview .OverlayWrapper { From b6e0e908c986864b35170baec1eb43056c950b69 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 11 Oct 2021 06:41:44 -0700 Subject: [PATCH 27/54] fix error display, add "loading" text, remove data generation logging --- .../widgets/function_output/KBaseSets/Loader.js | 15 --------------- .../widgets/function_output/KBaseSets/Viewer.js | 4 ++-- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js index ce04d2a991..91f5d30d62 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js @@ -77,22 +77,7 @@ define([ if (items.length > 0) { this.selectedItemRef = items[0].ref; const selectedItem = await this.fetchSetElement(items[0].ref); - // DATAGEN: place in test/widgets/function_output/KBaseSets/data/type_#.json - // where type is the KBaseSets type, # is just a serial number to enable - // more than one test data per type. - // console.log('SEL', JSON.stringify({ - // status: 'loaded', - // value: { - // description, - // type: selectedItem.objectInfo.type, - // items, - // }, - // selectedItem: { - // status: 'loaded', - // value: selectedItem - // } - // })); this.setState((state) => { return { ...state, diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js index 0be73b693d..19e7f77a25 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js @@ -40,7 +40,7 @@ define([ renderError() { return e(ErrorMessage, { - error: this.state.error + error: this.props.set.error }); } @@ -127,7 +127,7 @@ define([ })(); return e('div', { className: 'LoadingOverlay' - }, e('i', { + }, "Loading...", e('i', { className: `fa fa-spinner fa-pulse fa-fw ${sizeClass}` })); } From 04123557e2bc9c41b184d38392999ea4efae8641 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 11 Oct 2021 06:42:43 -0700 Subject: [PATCH 28/54] add tests for all viewer states; --- .../KBaseSets/data/assemblyset_1.json | 1609 ----- .../data/assemblyset_case_01_props.json | 5 + .../data/assemblyset_case_02_props.json | 5 + .../data/assemblyset_case_03_expected.json | 3 + .../data/assemblyset_case_03_props.json | 8 + .../data/assemblyset_case_04_expected.json | 7 + .../data/assemblyset_case_04_props.json | 6026 +++++++++++++++++ .../KBaseSets/data/readsalignmentset_1.json | 443 -- .../data/readsalignmentset_case_01_props.json | 5 + .../data/readsalignmentset_case_02_props.json | 5 + .../readsalignmentset_case_03_expected.json | 3 + .../data/readsalignmentset_case_03_props.json | 8 + .../readsalignmentset_case_04_expected.json | 12 + .../data/readsalignmentset_case_04_props.json | 445 ++ .../KBaseSets/types/AssemblySet-spec.js | 33 - .../KBaseSets/types/AssemblySetViewer-spec.js | 69 + .../KBaseSets/types/ReadsAlignmentSet-spec.js | 33 - .../types/ReadsAlignmentSetViewer-spec.js | 68 + test/unit/utils/domUtils.js | 41 +- 19 files changed, 6705 insertions(+), 2123 deletions(-) delete mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_expected.json create mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json delete mode 100644 test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js create mode 100644 test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js delete mode 100644 test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js create mode 100644 test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json deleted file mode 100644 index 49e4c2de8a..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/assemblyset_1.json +++ /dev/null @@ -1,1609 +0,0 @@ -{ - "status": "loaded", - "value": { - "description": "binned assemblies from NewBins", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "items": [ - { - "label": "", - "ref": "42874/24/1", - "info": [ - 24, - "NewBins.001.fasta_assembly", - "KBaseGenomeAnnotations.Assembly-6.0", - "2019-05-21T18:56:26+0000", - 1, - "eapearson", - 42874, - "eapearson:narrative_1558464800819", - "7a8b50b010bfc22ff14a5b688e30fd73", - 27036, - { - "GC content": "0.67468", - "Size": "3178097", - "N Contigs": "181", - "MD5": "3c038ea131ddc1001b6d93ee90bfd603" - } - ], - "objectInfo": { - "id": 24, - "name": "NewBins.001.fasta_assembly", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "save_date": "2019-05-21T18:56:26+0000", - "version": 1, - "saved_by": "eapearson", - "wsid": 42874, - "ws": "eapearson:narrative_1558464800819", - "checksum": "7a8b50b010bfc22ff14a5b688e30fd73", - "size": 27036, - "metadata": { - "GC content": "0.67468", - "Size": "3178097", - "N Contigs": "181", - "MD5": "3c038ea131ddc1001b6d93ee90bfd603" - }, - "ref": "42874/24/1", - "obj_id": "ws.42874.obj.24", - "typeModule": "KBaseGenomeAnnotations", - "typeName": "Assembly", - "typeMajorVersion": "6", - "typeMinorVersion": "0", - "saveDate": "2019-05-21T18:56:26.000Z" - } - }, - { - "label": "", - "ref": "42874/25/1", - "info": [ - 25, - "NewBins.002.fasta_assembly", - "KBaseGenomeAnnotations.Assembly-6.0", - "2019-05-21T18:56:52+0000", - 1, - "eapearson", - 42874, - "eapearson:narrative_1558464800819", - "f8f0debe80cbd10a23a0459cdec47498", - 7187, - { - "GC content": "0.6215", - "Size": "536073", - "N Contigs": "45", - "MD5": "6cdaccf20e0026b6bbc0d676b08093a4" - } - ], - "objectInfo": { - "id": 25, - "name": "NewBins.002.fasta_assembly", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "save_date": "2019-05-21T18:56:52+0000", - "version": 1, - "saved_by": "eapearson", - "wsid": 42874, - "ws": "eapearson:narrative_1558464800819", - "checksum": "f8f0debe80cbd10a23a0459cdec47498", - "size": 7187, - "metadata": { - "GC content": "0.6215", - "Size": "536073", - "N Contigs": "45", - "MD5": "6cdaccf20e0026b6bbc0d676b08093a4" - }, - "ref": "42874/25/1", - "obj_id": "ws.42874.obj.25", - "typeModule": "KBaseGenomeAnnotations", - "typeName": "Assembly", - "typeMajorVersion": "6", - "typeMinorVersion": "0", - "saveDate": "2019-05-21T18:56:52.000Z" - } - } - ] - }, - "selectedItem": { - "status": "loaded", - "value": { - "assembly_id": "NewBins.001.fasta_assembly", - "base_counts": { - "A": 523014, - "C": 1104409, - "G": 1039788, - "T": 510886 - }, - "contigs": { - "k119_100": { - "contig_id": "k119_100", - "description": "", - "gc_content": 0.66932, - "length": 13333, - "md5": "92548ce8450b06b4542ec64dc086787c", - "name": "k119_100" - }, - "k119_101": { - "contig_id": "k119_101", - "description": "", - "gc_content": 0.66151, - "length": 11510, - "md5": "7472ac9f7916ad73b95fe821c5142484", - "name": "k119_101" - }, - "k119_102": { - "contig_id": "k119_102", - "description": "", - "gc_content": 0.68051, - "length": 8573, - "md5": "c5d62257b78f1857fb38ac82e34bb6c4", - "name": "k119_102" - }, - "k119_103": { - "contig_id": "k119_103", - "description": "", - "gc_content": 0.69133, - "length": 8177, - "md5": "0a6ae17d56c0fa816d24b4a80473e665", - "name": "k119_103" - }, - "k119_104": { - "contig_id": "k119_104", - "description": "", - "gc_content": 0.67122, - "length": 42956, - "md5": "6585e0590618b63445603428f1864d86", - "name": "k119_104" - }, - "k119_105": { - "contig_id": "k119_105", - "description": "", - "gc_content": 0.66254, - "length": 26036, - "md5": "a1acb284d83ca49a3e85fc7af26e2178", - "name": "k119_105" - }, - "k119_106": { - "contig_id": "k119_106", - "description": "", - "gc_content": 0.66446, - "length": 8595, - "md5": "08f7d5e375d6e4abcc15a345100f02ec", - "name": "k119_106" - }, - "k119_107": { - "contig_id": "k119_107", - "description": "", - "gc_content": 0.67255, - "length": 9690, - "md5": "e3a74c933231525ebb747e79c8a2a24d", - "name": "k119_107" - }, - "k119_108": { - "contig_id": "k119_108", - "description": "", - "gc_content": 0.68605, - "length": 19401, - "md5": "1ce4b5faa3901d8d945ba51898424dfd", - "name": "k119_108" - }, - "k119_109": { - "contig_id": "k119_109", - "description": "", - "gc_content": 0.66352, - "length": 16943, - "md5": "a2a8d42c7b9a5f5c40ea9c19d2d1e15f", - "name": "k119_109" - }, - "k119_11": { - "contig_id": "k119_11", - "description": "", - "gc_content": 0.7063, - "length": 11573, - "md5": "234158d7f5240ef0a24d85d3d0e74492", - "name": "k119_11" - }, - "k119_110": { - "contig_id": "k119_110", - "description": "", - "gc_content": 0.69419, - "length": 10853, - "md5": "d324d47b1e071c06b711f7fb8635f53b", - "name": "k119_110" - }, - "k119_111": { - "contig_id": "k119_111", - "description": "", - "gc_content": 0.66598, - "length": 4889, - "md5": "f5e97c4834a402e7c088d187f3564195", - "name": "k119_111" - }, - "k119_112": { - "contig_id": "k119_112", - "description": "", - "gc_content": 0.65599, - "length": 23107, - "md5": "33ea2de4dad3eb2b5ad851b97562b172", - "name": "k119_112" - }, - "k119_113": { - "contig_id": "k119_113", - "description": "", - "gc_content": 0.67011, - "length": 7160, - "md5": "88970048c61fc90e3ecf22c7d82d39f9", - "name": "k119_113" - }, - "k119_114": { - "contig_id": "k119_114", - "description": "", - "gc_content": 0.7066, - "length": 8306, - "md5": "966508dad8b30334b5828e2cfd77fdf4", - "name": "k119_114" - }, - "k119_115": { - "contig_id": "k119_115", - "description": "", - "gc_content": 0.65923, - "length": 22317, - "md5": "845bc7cd7ce13823b68ca410ae0ad8d5", - "name": "k119_115" - }, - "k119_117": { - "contig_id": "k119_117", - "description": "", - "gc_content": 0.67671, - "length": 10591, - "md5": "6d5d545257dbea1c96bfe32d37fcbe88", - "name": "k119_117" - }, - "k119_12": { - "contig_id": "k119_12", - "description": "", - "gc_content": 0.67902, - "length": 9016, - "md5": "fc3a7bfddb5be5fe23157c91c620d736", - "name": "k119_12" - }, - "k119_120": { - "contig_id": "k119_120", - "description": "", - "gc_content": 0.67532, - "length": 9745, - "md5": "6ef85d8591ae2cdba079040848b3e598", - "name": "k119_120" - }, - "k119_121": { - "contig_id": "k119_121", - "description": "", - "gc_content": 0.65521, - "length": 7010, - "md5": "5ae62e7c19ee98989d2e57a18649f2ee", - "name": "k119_121" - }, - "k119_123": { - "contig_id": "k119_123", - "description": "", - "gc_content": 0.67053, - "length": 13795, - "md5": "58a3c27ace377b6e90166c6fcca89521", - "name": "k119_123" - }, - "k119_125": { - "contig_id": "k119_125", - "description": "", - "gc_content": 0.66457, - "length": 16036, - "md5": "b17c4790cb5b1d0eceeebd413d181e4b", - "name": "k119_125" - }, - "k119_126": { - "contig_id": "k119_126", - "description": "", - "gc_content": 0.65869, - "length": 15722, - "md5": "b321c53e775004c5c3aec1d141ce2126", - "name": "k119_126" - }, - "k119_128": { - "contig_id": "k119_128", - "description": "", - "gc_content": 0.6631, - "length": 7299, - "md5": "e2cd9d6d2e4491caed0eacfab28f9758", - "name": "k119_128" - }, - "k119_129": { - "contig_id": "k119_129", - "description": "", - "gc_content": 0.66193, - "length": 9087, - "md5": "55bb4846ce5d067adc3b69c052e5f53a", - "name": "k119_129" - }, - "k119_13": { - "contig_id": "k119_13", - "description": "", - "gc_content": 0.71472, - "length": 9149, - "md5": "4b6df1521d6d5aa7ade2a9a1af63e5b4", - "name": "k119_13" - }, - "k119_130": { - "contig_id": "k119_130", - "description": "", - "gc_content": 0.67102, - "length": 23816, - "md5": "fd302e1ddaca329687b7ce294f98c5b1", - "name": "k119_130" - }, - "k119_131": { - "contig_id": "k119_131", - "description": "", - "gc_content": 0.67976, - "length": 13699, - "md5": "cbc01eee614e2d9accf8d703f1b695a3", - "name": "k119_131" - }, - "k119_134": { - "contig_id": "k119_134", - "description": "", - "gc_content": 0.66589, - "length": 8165, - "md5": "1ee1bde2f0ddb52bafaf4323fcc7d6d9", - "name": "k119_134" - }, - "k119_136": { - "contig_id": "k119_136", - "description": "", - "gc_content": 0.66454, - "length": 6734, - "md5": "611dbf830fb21e8cb60c93e5728aca97", - "name": "k119_136" - }, - "k119_137": { - "contig_id": "k119_137", - "description": "", - "gc_content": 0.66557, - "length": 27432, - "md5": "1f99db00e415ee95a6a730f49028b74c", - "name": "k119_137" - }, - "k119_138": { - "contig_id": "k119_138", - "description": "", - "gc_content": 0.67408, - "length": 11877, - "md5": "04e2e9e492d9158468bc81aeeb8ea6e9", - "name": "k119_138" - }, - "k119_139": { - "contig_id": "k119_139", - "description": "", - "gc_content": 0.66989, - "length": 25985, - "md5": "a9843513c14f8286240f178f76d6f239", - "name": "k119_139" - }, - "k119_14": { - "contig_id": "k119_14", - "description": "", - "gc_content": 0.67842, - "length": 15365, - "md5": "51babc8745032a1caa97bf768e3d9316", - "name": "k119_14" - }, - "k119_140": { - "contig_id": "k119_140", - "description": "", - "gc_content": 0.68272, - "length": 29056, - "md5": "ddad175851943301c634822e68f5590c", - "name": "k119_140" - }, - "k119_141": { - "contig_id": "k119_141", - "description": "", - "gc_content": 0.68317, - "length": 8784, - "md5": "96f6b0ade8842d81215473023a70b8db", - "name": "k119_141" - }, - "k119_142": { - "contig_id": "k119_142", - "description": "", - "gc_content": 0.66217, - "length": 16218, - "md5": "0c8c447d614267415787cdebd81264fb", - "name": "k119_142" - }, - "k119_143": { - "contig_id": "k119_143", - "description": "", - "gc_content": 0.6981, - "length": 8546, - "md5": "79c93d621957e74b90d76e9044362160", - "name": "k119_143" - }, - "k119_144": { - "contig_id": "k119_144", - "description": "", - "gc_content": 0.6762, - "length": 8079, - "md5": "2cf4dac089590287cf1bd7236b79ff82", - "name": "k119_144" - }, - "k119_145": { - "contig_id": "k119_145", - "description": "", - "gc_content": 0.6716, - "length": 21413, - "md5": "38239e1e27a0fa173ac07d4243c7a5ff", - "name": "k119_145" - }, - "k119_146": { - "contig_id": "k119_146", - "description": "", - "gc_content": 0.68372, - "length": 15404, - "md5": "e1e898c8853c59bda3eb308a9340634e", - "name": "k119_146" - }, - "k119_147": { - "contig_id": "k119_147", - "description": "", - "gc_content": 0.68509, - "length": 9501, - "md5": "e9c2abf4f3afea44cbf505a1c3b83d80", - "name": "k119_147" - }, - "k119_149": { - "contig_id": "k119_149", - "description": "", - "gc_content": 0.669, - "length": 15991, - "md5": "e05637e0a70249d479c2f5bfbb14b8d8", - "name": "k119_149" - }, - "k119_150": { - "contig_id": "k119_150", - "description": "", - "gc_content": 0.66293, - "length": 17418, - "md5": "ef493606d58ce3b0be93fa2eb7939d7f", - "name": "k119_150" - }, - "k119_151": { - "contig_id": "k119_151", - "description": "", - "gc_content": 0.67301, - "length": 20181, - "md5": "2a3bebb54e11139c3548296968393d4d", - "name": "k119_151" - }, - "k119_152": { - "contig_id": "k119_152", - "description": "", - "gc_content": 0.68243, - "length": 9645, - "md5": "b97c7ca305e569236c531979d01b17aa", - "name": "k119_152" - }, - "k119_153": { - "contig_id": "k119_153", - "description": "", - "gc_content": 0.67604, - "length": 13122, - "md5": "557cb9bf1ecdcb8e5fae52c793d748e7", - "name": "k119_153" - }, - "k119_154": { - "contig_id": "k119_154", - "description": "", - "gc_content": 0.68066, - "length": 5004, - "md5": "fe4334f3a51ab567db14b64fa245d864", - "name": "k119_154" - }, - "k119_155": { - "contig_id": "k119_155", - "description": "", - "gc_content": 0.67119, - "length": 25510, - "md5": "37bcc559a4e20b942ca167bfab8571b5", - "name": "k119_155" - }, - "k119_157": { - "contig_id": "k119_157", - "description": "", - "gc_content": 0.67205, - "length": 20814, - "md5": "8a32f1f8482af8c799bd35d51a1d3a5d", - "name": "k119_157" - }, - "k119_158": { - "contig_id": "k119_158", - "description": "", - "gc_content": 0.68436, - "length": 9891, - "md5": "6260904450e712ad28955e1271963414", - "name": "k119_158" - }, - "k119_16": { - "contig_id": "k119_16", - "description": "", - "gc_content": 0.69508, - "length": 10124, - "md5": "529e943c6a1c66de7b344acc5545843f", - "name": "k119_16" - }, - "k119_160": { - "contig_id": "k119_160", - "description": "", - "gc_content": 0.6794, - "length": 43652, - "md5": "7224f6124ab3eb85058d9071862e172a", - "name": "k119_160" - }, - "k119_161": { - "contig_id": "k119_161", - "description": "", - "gc_content": 0.68201, - "length": 23101, - "md5": "428889a175593083f6791b51625aafd9", - "name": "k119_161" - }, - "k119_163": { - "contig_id": "k119_163", - "description": "", - "gc_content": 0.6874, - "length": 17764, - "md5": "b91d9a6d4b4947339d8d92ffd7819de0", - "name": "k119_163" - }, - "k119_167": { - "contig_id": "k119_167", - "description": "", - "gc_content": 0.65746, - "length": 16553, - "md5": "4c6e1b4a86d4dc5320460d4651eb83e5", - "name": "k119_167" - }, - "k119_169": { - "contig_id": "k119_169", - "description": "", - "gc_content": 0.66478, - "length": 15032, - "md5": "cbfa2992bdbd5a4d7694af9f75aac1bb", - "name": "k119_169" - }, - "k119_17": { - "contig_id": "k119_17", - "description": "", - "gc_content": 0.69108, - "length": 22119, - "md5": "7f86015ed8b241a9e57921d93e58c76d", - "name": "k119_17" - }, - "k119_170": { - "contig_id": "k119_170", - "description": "", - "gc_content": 0.68458, - "length": 8934, - "md5": "898cbc422a1550819ed7be56202f9d04", - "name": "k119_170" - }, - "k119_171": { - "contig_id": "k119_171", - "description": "", - "gc_content": 0.6901, - "length": 16231, - "md5": "1756d57410ae0073cc27c71aa79f0094", - "name": "k119_171" - }, - "k119_175": { - "contig_id": "k119_175", - "description": "", - "gc_content": 0.68166, - "length": 20092, - "md5": "bc053a180d4fbe1277d38aa9c290a600", - "name": "k119_175" - }, - "k119_176": { - "contig_id": "k119_176", - "description": "", - "gc_content": 0.67201, - "length": 31019, - "md5": "adb107c13c46c44b868954651b99fc95", - "name": "k119_176" - }, - "k119_177": { - "contig_id": "k119_177", - "description": "", - "gc_content": 0.67105, - "length": 37598, - "md5": "ebf513ed37d3a43e2870092647065136", - "name": "k119_177" - }, - "k119_178": { - "contig_id": "k119_178", - "description": "", - "gc_content": 0.67866, - "length": 17035, - "md5": "ec19fa62f23e59fb08444720978364a5", - "name": "k119_178" - }, - "k119_179": { - "contig_id": "k119_179", - "description": "", - "gc_content": 0.66743, - "length": 43549, - "md5": "8847c61a0f9ba10bd8aaf9a3760f7c93", - "name": "k119_179" - }, - "k119_180": { - "contig_id": "k119_180", - "description": "", - "gc_content": 0.6596, - "length": 11372, - "md5": "a91514b196e32e0c058963a91edcb192", - "name": "k119_180" - }, - "k119_181": { - "contig_id": "k119_181", - "description": "", - "gc_content": 0.66214, - "length": 13038, - "md5": "af1281da6ebe50cd05251bb0154fe42f", - "name": "k119_181" - }, - "k119_182": { - "contig_id": "k119_182", - "description": "", - "gc_content": 0.67672, - "length": 21214, - "md5": "478225cdc2dd294733e023ad25daf566", - "name": "k119_182" - }, - "k119_187": { - "contig_id": "k119_187", - "description": "", - "gc_content": 0.67187, - "length": 5318, - "md5": "485bbe2670d341c277e26bf35bad751d", - "name": "k119_187" - }, - "k119_188": { - "contig_id": "k119_188", - "description": "", - "gc_content": 0.66882, - "length": 26641, - "md5": "89ab53c85ce434dccbaa4e859c5aff69", - "name": "k119_188" - }, - "k119_19": { - "contig_id": "k119_19", - "description": "", - "gc_content": 0.69848, - "length": 7220, - "md5": "09ed80110bf695787a3071a891958458", - "name": "k119_19" - }, - "k119_190": { - "contig_id": "k119_190", - "description": "", - "gc_content": 0.65582, - "length": 15861, - "md5": "d53e67820566067a0dc746381edd853d", - "name": "k119_190" - }, - "k119_193": { - "contig_id": "k119_193", - "description": "", - "gc_content": 0.66785, - "length": 9318, - "md5": "fadf44b850ffbd7320c8212419fd0f0c", - "name": "k119_193" - }, - "k119_195": { - "contig_id": "k119_195", - "description": "", - "gc_content": 0.68266, - "length": 8524, - "md5": "f140ae4ded0ab44a409748fa7b51fe7e", - "name": "k119_195" - }, - "k119_196": { - "contig_id": "k119_196", - "description": "", - "gc_content": 0.67438, - "length": 36810, - "md5": "c1248c9684852dd20005687f2a7f4e9f", - "name": "k119_196" - }, - "k119_197": { - "contig_id": "k119_197", - "description": "", - "gc_content": 0.67158, - "length": 12222, - "md5": "40d706b797495609c195c62d37347245", - "name": "k119_197" - }, - "k119_198": { - "contig_id": "k119_198", - "description": "", - "gc_content": 0.67776, - "length": 15535, - "md5": "43e3840589e79a6b0fe837b3ac609cb6", - "name": "k119_198" - }, - "k119_199": { - "contig_id": "k119_199", - "description": "", - "gc_content": 0.65108, - "length": 4855, - "md5": "5c5a3cb811389267d4a76397f6e405dc", - "name": "k119_199" - }, - "k119_2": { - "contig_id": "k119_2", - "description": "", - "gc_content": 0.66275, - "length": 6974, - "md5": "e29e2b48883670ef3fb39f7018993693", - "name": "k119_2" - }, - "k119_20": { - "contig_id": "k119_20", - "description": "", - "gc_content": 0.65947, - "length": 22961, - "md5": "6b41a0f21f81b12207ee5db8b19d4ce4", - "name": "k119_20" - }, - "k119_201": { - "contig_id": "k119_201", - "description": "", - "gc_content": 0.69183, - "length": 5961, - "md5": "c8f5f41d42202dc6b42e309e070dec2c", - "name": "k119_201" - }, - "k119_202": { - "contig_id": "k119_202", - "description": "", - "gc_content": 0.66424, - "length": 30572, - "md5": "e70dff769ffeea4435aea2af0651813f", - "name": "k119_202" - }, - "k119_203": { - "contig_id": "k119_203", - "description": "", - "gc_content": 0.66739, - "length": 25047, - "md5": "dc0217848317d6b9cbe8b2f350c8db00", - "name": "k119_203" - }, - "k119_205": { - "contig_id": "k119_205", - "description": "", - "gc_content": 0.66546, - "length": 13858, - "md5": "ec03da556964156095fd4259da4d52c0", - "name": "k119_205" - }, - "k119_206": { - "contig_id": "k119_206", - "description": "", - "gc_content": 0.6679, - "length": 4866, - "md5": "6cfa8ac064403864cf20fe7ea524beef", - "name": "k119_206" - }, - "k119_207": { - "contig_id": "k119_207", - "description": "", - "gc_content": 0.67642, - "length": 32289, - "md5": "2960980ae280babbf0a9636e4736f5a8", - "name": "k119_207" - }, - "k119_208": { - "contig_id": "k119_208", - "description": "", - "gc_content": 0.66817, - "length": 53591, - "md5": "b16ebfe3e86f696428625f21fe725c50", - "name": "k119_208" - }, - "k119_209": { - "contig_id": "k119_209", - "description": "", - "gc_content": 0.6789, - "length": 18941, - "md5": "4cad4a8fa542d7795fb3ad0bcb17f3a5", - "name": "k119_209" - }, - "k119_21": { - "contig_id": "k119_21", - "description": "", - "gc_content": 0.69626, - "length": 10305, - "md5": "4588cf37f2f0d2676c9614d48ef21142", - "name": "k119_21" - }, - "k119_210": { - "contig_id": "k119_210", - "description": "", - "gc_content": 0.66613, - "length": 39920, - "md5": "6534507759f48544f47299cef2839889", - "name": "k119_210" - }, - "k119_211": { - "contig_id": "k119_211", - "description": "", - "gc_content": 0.68649, - "length": 8322, - "md5": "36f3049ad74875a04da101ab9b09d8d9", - "name": "k119_211" - }, - "k119_214": { - "contig_id": "k119_214", - "description": "", - "gc_content": 0.70775, - "length": 18183, - "md5": "7bf387a080ddf828df94371327a02ba6", - "name": "k119_214" - }, - "k119_215": { - "contig_id": "k119_215", - "description": "", - "gc_content": 0.68056, - "length": 6596, - "md5": "ce90f41dddf143767e7b271dc01479cc", - "name": "k119_215" - }, - "k119_216": { - "contig_id": "k119_216", - "description": "", - "gc_content": 0.65736, - "length": 36146, - "md5": "4a335fb8583e278f346d809b23bffda5", - "name": "k119_216" - }, - "k119_217": { - "contig_id": "k119_217", - "description": "", - "gc_content": 0.66995, - "length": 17452, - "md5": "741df68f38e539096a6ccec801894d74", - "name": "k119_217" - }, - "k119_22": { - "contig_id": "k119_22", - "description": "", - "gc_content": 0.71281, - "length": 13096, - "md5": "27c3d05b1e956a4bdd6f1ec2884e5ce8", - "name": "k119_22" - }, - "k119_220": { - "contig_id": "k119_220", - "description": "", - "gc_content": 0.68457, - "length": 36132, - "md5": "0b3986d5124f151f8560a1bfd0c212fa", - "name": "k119_220" - }, - "k119_222": { - "contig_id": "k119_222", - "description": "", - "gc_content": 0.6799, - "length": 17654, - "md5": "cd7d81a337d5a8b275869b83272b985b", - "name": "k119_222" - }, - "k119_224": { - "contig_id": "k119_224", - "description": "", - "gc_content": 0.69066, - "length": 11890, - "md5": "0e60cbcae46943fcd8a22fee53893bd8", - "name": "k119_224" - }, - "k119_225": { - "contig_id": "k119_225", - "description": "", - "gc_content": 0.66895, - "length": 18680, - "md5": "910a14091371a6ecf81672d707e012a3", - "name": "k119_225" - }, - "k119_227": { - "contig_id": "k119_227", - "description": "", - "gc_content": 0.69071, - "length": 6156, - "md5": "7c1f579fb0c19f96383ef094de2a66e8", - "name": "k119_227" - }, - "k119_228": { - "contig_id": "k119_228", - "description": "", - "gc_content": 0.67181, - "length": 24181, - "md5": "4848ba08190bdb46e1abf6ec82b1fda6", - "name": "k119_228" - }, - "k119_230": { - "contig_id": "k119_230", - "description": "", - "gc_content": 0.6657, - "length": 16916, - "md5": "def8a6bc3d23e9dd08a1ea389cf8ffce", - "name": "k119_230" - }, - "k119_232": { - "contig_id": "k119_232", - "description": "", - "gc_content": 0.66888, - "length": 18510, - "md5": "641f379a680dc82e067c4ef936c026a9", - "name": "k119_232" - }, - "k119_233": { - "contig_id": "k119_233", - "description": "", - "gc_content": 0.69106, - "length": 14501, - "md5": "de0dca9ad99efdad42779fb94bfc4e1f", - "name": "k119_233" - }, - "k119_234": { - "contig_id": "k119_234", - "description": "", - "gc_content": 0.6578, - "length": 7817, - "md5": "7e74464a05ee432dbc8388db0505a06b", - "name": "k119_234" - }, - "k119_235": { - "contig_id": "k119_235", - "description": "", - "gc_content": 0.68112, - "length": 10882, - "md5": "35e181e68cefc854b16a91d846aa4f75", - "name": "k119_235" - }, - "k119_236": { - "contig_id": "k119_236", - "description": "", - "gc_content": 0.67884, - "length": 59422, - "md5": "748f3da4240c2203e2f4f68bb7fd0a2d", - "name": "k119_236" - }, - "k119_237": { - "contig_id": "k119_237", - "description": "", - "gc_content": 0.70596, - "length": 18035, - "md5": "33c451c6794f3f8254d5369f0e5e5550", - "name": "k119_237" - }, - "k119_25": { - "contig_id": "k119_25", - "description": "", - "gc_content": 0.67784, - "length": 33881, - "md5": "09fad293af3636bd855033c2028a8f7d", - "name": "k119_25" - }, - "k119_26": { - "contig_id": "k119_26", - "description": "", - "gc_content": 0.6713, - "length": 5750, - "md5": "a2b28e823cfe415c288e310e3e943e8c", - "name": "k119_26" - }, - "k119_27": { - "contig_id": "k119_27", - "description": "", - "gc_content": 0.68828, - "length": 7109, - "md5": "755273fb6e3445fb53dbd40a9e9ca4b7", - "name": "k119_27" - }, - "k119_28": { - "contig_id": "k119_28", - "description": "", - "gc_content": 0.68532, - "length": 37975, - "md5": "81146a71be4088d0192cce4f2e8495ae", - "name": "k119_28" - }, - "k119_29": { - "contig_id": "k119_29", - "description": "", - "gc_content": 0.67967, - "length": 19424, - "md5": "c6f450b065e98b170398340a17018b17", - "name": "k119_29" - }, - "k119_3": { - "contig_id": "k119_3", - "description": "", - "gc_content": 0.67531, - "length": 8405, - "md5": "5246720879a5e0be5eafa5adb069f4fa", - "name": "k119_3" - }, - "k119_30": { - "contig_id": "k119_30", - "description": "", - "gc_content": 0.69466, - "length": 6406, - "md5": "8a3f90f8a9e1bd19f5722a17a4b637b2", - "name": "k119_30" - }, - "k119_32": { - "contig_id": "k119_32", - "description": "", - "gc_content": 0.67479, - "length": 38381, - "md5": "dec7f75d4d102b4ae5817d407cb02280", - "name": "k119_32" - }, - "k119_33": { - "contig_id": "k119_33", - "description": "", - "gc_content": 0.67331, - "length": 13205, - "md5": "2ae175567cd1e8dc0f2cacaebf222855", - "name": "k119_33" - }, - "k119_34": { - "contig_id": "k119_34", - "description": "", - "gc_content": 0.68217, - "length": 35809, - "md5": "741dc4f4a7da44582ddafc02166c0b2b", - "name": "k119_34" - }, - "k119_36": { - "contig_id": "k119_36", - "description": "", - "gc_content": 0.66604, - "length": 11768, - "md5": "8a755e2dcc42b996c4e7479dc86dd410", - "name": "k119_36" - }, - "k119_37": { - "contig_id": "k119_37", - "description": "", - "gc_content": 0.65757, - "length": 58552, - "md5": "224bb01a1227d920b2d89c2ad6bffebf", - "name": "k119_37" - }, - "k119_38": { - "contig_id": "k119_38", - "description": "", - "gc_content": 0.67704, - "length": 8518, - "md5": "78f89dfb99701b16e59aab2b53a089df", - "name": "k119_38" - }, - "k119_39": { - "contig_id": "k119_39", - "description": "", - "gc_content": 0.69353, - "length": 7955, - "md5": "eb522e9a4677cee9d53fea6fc6c0d73b", - "name": "k119_39" - }, - "k119_40": { - "contig_id": "k119_40", - "description": "", - "gc_content": 0.6731, - "length": 9795, - "md5": "3de3c34fa1b5ea553ed49000751883b7", - "name": "k119_40" - }, - "k119_41": { - "contig_id": "k119_41", - "description": "", - "gc_content": 0.6838, - "length": 5449, - "md5": "5f99729a2d7a01f95fa52c31a8dad2bf", - "name": "k119_41" - }, - "k119_42": { - "contig_id": "k119_42", - "description": "", - "gc_content": 0.66763, - "length": 6604, - "md5": "9af143b6fe0abed2f40be0a43e8c653a", - "name": "k119_42" - }, - "k119_43": { - "contig_id": "k119_43", - "description": "", - "gc_content": 0.68942, - "length": 17538, - "md5": "3367a5aed8554150e8440c7f0ca35262", - "name": "k119_43" - }, - "k119_44": { - "contig_id": "k119_44", - "description": "", - "gc_content": 0.68729, - "length": 5964, - "md5": "4bc2df7cb78edc572af45a79754e3d82", - "name": "k119_44" - }, - "k119_45": { - "contig_id": "k119_45", - "description": "", - "gc_content": 0.68293, - "length": 9304, - "md5": "a2225ae67ab0baf3ac0b3288ad48c074", - "name": "k119_45" - }, - "k119_46": { - "contig_id": "k119_46", - "description": "", - "gc_content": 0.67011, - "length": 9879, - "md5": "a208a613d09ffca1f7bf7367a382d658", - "name": "k119_46" - }, - "k119_47": { - "contig_id": "k119_47", - "description": "", - "gc_content": 0.65804, - "length": 17002, - "md5": "ce9fcc2b675f24782664e4c394d24cde", - "name": "k119_47" - }, - "k119_5": { - "contig_id": "k119_5", - "description": "", - "gc_content": 0.68337, - "length": 8818, - "md5": "7e3d5c51ccd11a566e013049a435ee5a", - "name": "k119_5" - }, - "k119_50": { - "contig_id": "k119_50", - "description": "", - "gc_content": 0.66063, - "length": 35928, - "md5": "b7a207909a893e06a9aac81174cd72e7", - "name": "k119_50" - }, - "k119_51": { - "contig_id": "k119_51", - "description": "", - "gc_content": 0.652, - "length": 12730, - "md5": "cf8f42a64d10eef5ec3e18cbc3f299e8", - "name": "k119_51" - }, - "k119_52": { - "contig_id": "k119_52", - "description": "", - "gc_content": 0.68801, - "length": 11667, - "md5": "0f6d9541ff3c5178029cf40cdfc23ca4", - "name": "k119_52" - }, - "k119_55": { - "contig_id": "k119_55", - "description": "", - "gc_content": 0.68873, - "length": 9095, - "md5": "24ef6da599fd2395ccb5dcb76cf061ae", - "name": "k119_55" - }, - "k119_56": { - "contig_id": "k119_56", - "description": "", - "gc_content": 0.66455, - "length": 21526, - "md5": "da466bf5d96e78a406397dd849fe62b4", - "name": "k119_56" - }, - "k119_57": { - "contig_id": "k119_57", - "description": "", - "gc_content": 0.68627, - "length": 5288, - "md5": "d0416132e08a0620d788e7136a40e69b", - "name": "k119_57" - }, - "k119_58": { - "contig_id": "k119_58", - "description": "", - "gc_content": 0.66346, - "length": 18194, - "md5": "e9abb991932a933ee5aef805a4f9f460", - "name": "k119_58" - }, - "k119_6": { - "contig_id": "k119_6", - "description": "", - "gc_content": 0.66583, - "length": 3202, - "md5": "fc2260de267ad2990aeae357b94170ae", - "name": "k119_6" - }, - "k119_60": { - "contig_id": "k119_60", - "description": "", - "gc_content": 0.67411, - "length": 26052, - "md5": "3396b6b15175db830e9dde85e3cb5a7c", - "name": "k119_60" - }, - "k119_61": { - "contig_id": "k119_61", - "description": "", - "gc_content": 0.67869, - "length": 62672, - "md5": "f5290f417632338cd5ea12fbfffd3ea0", - "name": "k119_61" - }, - "k119_62": { - "contig_id": "k119_62", - "description": "", - "gc_content": 0.66043, - "length": 5242, - "md5": "2362190f572701d775b3e57d613e0ff0", - "name": "k119_62" - }, - "k119_64": { - "contig_id": "k119_64", - "description": "", - "gc_content": 0.65317, - "length": 5037, - "md5": "1c1efd8910272a493e37b7dd42eb48bb", - "name": "k119_64" - }, - "k119_65": { - "contig_id": "k119_65", - "description": "", - "gc_content": 0.66651, - "length": 15011, - "md5": "b3e39ba1f5df1b08c818bafbd111ff2f", - "name": "k119_65" - }, - "k119_66": { - "contig_id": "k119_66", - "description": "", - "gc_content": 0.69427, - "length": 10794, - "md5": "2eb55f8348dbf476b747323ad426ad00", - "name": "k119_66" - }, - "k119_67": { - "contig_id": "k119_67", - "description": "", - "gc_content": 0.67487, - "length": 5647, - "md5": "6378fad7d3d41ec6d1c795ad53e12a04", - "name": "k119_67" - }, - "k119_68": { - "contig_id": "k119_68", - "description": "", - "gc_content": 0.68121, - "length": 24433, - "md5": "1b2083773cbfa4c720bf4ebe9c1564f9", - "name": "k119_68" - }, - "k119_69": { - "contig_id": "k119_69", - "description": "", - "gc_content": 0.67452, - "length": 30272, - "md5": "5c6e3755bee04022d377d154b439c8a8", - "name": "k119_69" - }, - "k119_7": { - "contig_id": "k119_7", - "description": "", - "gc_content": 0.67447, - "length": 14395, - "md5": "e698c53ac4b7c759a321662de26c2530", - "name": "k119_7" - }, - "k119_70": { - "contig_id": "k119_70", - "description": "", - "gc_content": 0.65185, - "length": 4972, - "md5": "66d2baaa452c5d718c0f84b8c82b0e5b", - "name": "k119_70" - }, - "k119_71": { - "contig_id": "k119_71", - "description": "", - "gc_content": 0.70236, - "length": 5641, - "md5": "b33df2c0b977b2e9793cca25ab621785", - "name": "k119_71" - }, - "k119_72": { - "contig_id": "k119_72", - "description": "", - "gc_content": 0.66392, - "length": 6912, - "md5": "93b68240d26fe3fd5f2d7e208aa4f3a4", - "name": "k119_72" - }, - "k119_73": { - "contig_id": "k119_73", - "description": "", - "gc_content": 0.68507, - "length": 11609, - "md5": "d9bd66f15e9784e589715b906c436b9d", - "name": "k119_73" - }, - "k119_74": { - "contig_id": "k119_74", - "description": "", - "gc_content": 0.67566, - "length": 21946, - "md5": "95340d45536052f94e12a784adc8f793", - "name": "k119_74" - }, - "k119_75": { - "contig_id": "k119_75", - "description": "", - "gc_content": 0.66053, - "length": 7606, - "md5": "c943d39b6a128f1457c39f4c756d3dd5", - "name": "k119_75" - }, - "k119_76": { - "contig_id": "k119_76", - "description": "", - "gc_content": 0.67532, - "length": 39155, - "md5": "8c55efd32d1cc29efe86f00e38c093a8", - "name": "k119_76" - }, - "k119_77": { - "contig_id": "k119_77", - "description": "", - "gc_content": 0.66408, - "length": 13021, - "md5": "3e0c8f90bb8800f01350a31b4234685a", - "name": "k119_77" - }, - "k119_78": { - "contig_id": "k119_78", - "description": "", - "gc_content": 0.68484, - "length": 19317, - "md5": "66ee072a4736444450abd847b9a6b6cb", - "name": "k119_78" - }, - "k119_79": { - "contig_id": "k119_79", - "description": "", - "gc_content": 0.67117, - "length": 33817, - "md5": "4c21213487f709b9071c1e1c496b28c9", - "name": "k119_79" - }, - "k119_8": { - "contig_id": "k119_8", - "description": "", - "gc_content": 0.66741, - "length": 10319, - "md5": "b2e4cc5c6155973ba465bea77cf4811c", - "name": "k119_8" - }, - "k119_80": { - "contig_id": "k119_80", - "description": "", - "gc_content": 0.67589, - "length": 5924, - "md5": "7ccbbe27b8292abb895172e1d569637d", - "name": "k119_80" - }, - "k119_81": { - "contig_id": "k119_81", - "description": "", - "gc_content": 0.6733, - "length": 7738, - "md5": "3035d94d44ec8c19ad244fbd7fa9d31b", - "name": "k119_81" - }, - "k119_82": { - "contig_id": "k119_82", - "description": "", - "gc_content": 0.68636, - "length": 14797, - "md5": "6aede4f7226992f4e2ff6df85c59b710", - "name": "k119_82" - }, - "k119_83": { - "contig_id": "k119_83", - "description": "", - "gc_content": 0.68209, - "length": 6763, - "md5": "9d81349f641777541ebf9bd49661d325", - "name": "k119_83" - }, - "k119_84": { - "contig_id": "k119_84", - "description": "", - "gc_content": 0.67774, - "length": 7677, - "md5": "fb5e865c9cdacf87d734748cb9d22c05", - "name": "k119_84" - }, - "k119_85": { - "contig_id": "k119_85", - "description": "", - "gc_content": 0.666, - "length": 15614, - "md5": "f64e49284e883defa9cc494f35ee3c15", - "name": "k119_85" - }, - "k119_86": { - "contig_id": "k119_86", - "description": "", - "gc_content": 0.68894, - "length": 17704, - "md5": "cf4b0799f1dd27bebeea17d6d9706046", - "name": "k119_86" - }, - "k119_87": { - "contig_id": "k119_87", - "description": "", - "gc_content": 0.68203, - "length": 27874, - "md5": "473bb827e61c60830dcfbdeb4fe5671d", - "name": "k119_87" - }, - "k119_88": { - "contig_id": "k119_88", - "description": "", - "gc_content": 0.6709, - "length": 23525, - "md5": "313d61bd96e83db6d93d91225172c496", - "name": "k119_88" - }, - "k119_89": { - "contig_id": "k119_89", - "description": "", - "gc_content": 0.71124, - "length": 8301, - "md5": "69a58062ee1a46111321c481c45764f0", - "name": "k119_89" - }, - "k119_9": { - "contig_id": "k119_9", - "description": "", - "gc_content": 0.66677, - "length": 6182, - "md5": "32c4079b210567645466e9b6590a4c75", - "name": "k119_9" - }, - "k119_90": { - "contig_id": "k119_90", - "description": "", - "gc_content": 0.67577, - "length": 22071, - "md5": "0b3d38724e0b2adb9b04f4ddb4919d40", - "name": "k119_90" - }, - "k119_91": { - "contig_id": "k119_91", - "description": "", - "gc_content": 0.67168, - "length": 89360, - "md5": "7fbc43cbb81f826614d838df4a21a44b", - "name": "k119_91" - }, - "k119_92": { - "contig_id": "k119_92", - "description": "", - "gc_content": 0.67276, - "length": 16245, - "md5": "3082120e8d46b5fb724eada9a37f5849", - "name": "k119_92" - }, - "k119_93": { - "contig_id": "k119_93", - "description": "", - "gc_content": 0.67877, - "length": 18308, - "md5": "a3eba10e77ac68315bbbf86cca2c8c43", - "name": "k119_93" - }, - "k119_94": { - "contig_id": "k119_94", - "description": "", - "gc_content": 0.68054, - "length": 38189, - "md5": "f26b33749350f8ca61ac291bee92a61b", - "name": "k119_94" - }, - "k119_95": { - "contig_id": "k119_95", - "description": "", - "gc_content": 0.69158, - "length": 6530, - "md5": "960613bae77c928e4e91c1c81c7a29fb", - "name": "k119_95" - }, - "k119_96": { - "contig_id": "k119_96", - "description": "", - "gc_content": 0.68187, - "length": 64754, - "md5": "fa399ddfffd05c00b3f14cf3f4208162", - "name": "k119_96" - }, - "k119_97": { - "contig_id": "k119_97", - "description": "", - "gc_content": 0.66303, - "length": 20444, - "md5": "36ba843a8a33384d97ec1fbb7a976d9d", - "name": "k119_97" - } - }, - "dna_size": 3178097, - "fasta_handle_info": { - "handle": { - "file_name": "NewBins.001.fasta", - "hid": "KBH_473953", - "id": "a600b645-9666-4106-9be7-1acf5139a6ee", - "remote_md5": "43dee551a79139f295b0ce1479048677", - "type": "shock", - "url": "https://ci.kbase.us/services/shock-api" - }, - "node_file_name": "NewBins.001.fasta", - "shock_id": "a600b645-9666-4106-9be7-1acf5139a6ee", - "size": 3179999 - }, - "fasta_handle_ref": "KBH_473953", - "gc_content": 0.67468, - "md5": "3c038ea131ddc1001b6d93ee90bfd603", - "num_contigs": 181, - "type": "Unknown", - "objectInfo": { - "id": 24, - "name": "NewBins.001.fasta_assembly", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "save_date": "2019-05-21T18:56:26+0000", - "version": 1, - "saved_by": "eapearson", - "wsid": 42874, - "ws": "eapearson:narrative_1558464800819", - "checksum": "7a8b50b010bfc22ff14a5b688e30fd73", - "size": 27036, - "metadata": { - "GC content": "0.67468", - "Size": "3178097", - "N Contigs": "181", - "MD5": "3c038ea131ddc1001b6d93ee90bfd603" - }, - "ref": "42874/24/1", - "obj_id": "ws.42874.obj.24", - "typeModule": "KBaseGenomeAnnotations", - "typeName": "Assembly", - "typeMajorVersion": "6", - "typeMinorVersion": "0", - "saveDate": "2019-05-21T18:56:26.000Z" - } - } - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json new file mode 100644 index 0000000000..e7af1715a8 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json @@ -0,0 +1,5 @@ +{ + "set": { + "status": null + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json new file mode 100644 index 0000000000..9874cf6b50 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json @@ -0,0 +1,5 @@ +{ + "set": { + "status": "loading" + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json new file mode 100644 index 0000000000..ef35650eae --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json @@ -0,0 +1,3 @@ +{ + "message": "This is an Error" +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json new file mode 100644 index 0000000000..1e760cc72f --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json @@ -0,0 +1,8 @@ +{ + "set": { + "status": "error", + "error": { + "message": "This is an Error" + } + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json new file mode 100644 index 0000000000..a0a9ba05de --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json @@ -0,0 +1,7 @@ +{ + "Description": "test assembly set", + "Alignment type": "KBaseGenomeAnnotations.Assembly-6.0", + "DNA Size": "32,411,722", + "Contig Count": "709", + "GC Content": "54.94%" +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json new file mode 100644 index 0000000000..302e3e1bb6 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json @@ -0,0 +1,6026 @@ +{ + "set": { + "status": "loaded", + "value": { + "description": "test assembly set", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "items": [ + { + "label": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", + "ref": "64493/7/1", + "info": [ + 7, + "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", + "KBaseGenomeAnnotations.Assembly-6.0", + "2021-10-10T22:14:02+0000", + 1, + "kbaseuitest", + 64493, + "kbaseuitest:narrative_1633901898363", + "8da310c9ff85e9d448204f113553d7e7", + 166430, + { + "GC content": "0.54941", + "Size": "32411722", + "N Contigs": "709", + "MD5": "b07e1c9be725d6c9220fddebd59bc75b" + } + ], + "objectInfo": { + "id": 7, + "name": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2021-10-10T22:14:02+0000", + "version": 1, + "saved_by": "kbaseuitest", + "wsid": 64493, + "ws": "kbaseuitest:narrative_1633901898363", + "checksum": "8da310c9ff85e9d448204f113553d7e7", + "size": 166430, + "metadata": { + "GC content": "0.54941", + "Size": "32411722", + "N Contigs": "709", + "MD5": "b07e1c9be725d6c9220fddebd59bc75b" + }, + "ref": "64493/7/1", + "obj_id": "ws.64493.obj.7", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2021-10-10T22:14:02.000Z" + } + }, + { + "label": "prochlorococus_prokka_output.assembly", + "ref": "64493/10/1", + "info": [ + 10, + "prochlorococus_prokka_output.assembly", + "KBaseGenomeAnnotations.Assembly-6.0", + "2021-10-10T22:19:42+0000", + 1, + "kbaseuitest", + 64493, + "kbaseuitest:narrative_1633901898363", + "d199837cdfb65c9813c881d6a7f70212", + 783, + { + "GC content": "0.36442", + "Size": "1751080", + "N Contigs": "1", + "MD5": "9575448e7385db1195bf0b74c1d63850" + } + ], + "objectInfo": { + "id": 10, + "name": "prochlorococus_prokka_output.assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2021-10-10T22:19:42+0000", + "version": 1, + "saved_by": "kbaseuitest", + "wsid": 64493, + "ws": "kbaseuitest:narrative_1633901898363", + "checksum": "d199837cdfb65c9813c881d6a7f70212", + "size": 783, + "metadata": { + "GC content": "0.36442", + "Size": "1751080", + "N Contigs": "1", + "MD5": "9575448e7385db1195bf0b74c1d63850" + }, + "ref": "64493/10/1", + "obj_id": "ws.64493.obj.10", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2021-10-10T22:19:42.000Z" + } + }, + { + "label": "GCF_000007925.1_ASM792v1_genomic.fna_assembly", + "ref": "64493/11/1", + "info": [ + 11, + "GCF_000007925.1_ASM792v1_genomic.fna_assembly", + "KBaseGenomeAnnotations.Assembly-6.0", + "2021-10-10T22:19:44+0000", + 1, + "kbaseuitest", + 64493, + "kbaseuitest:narrative_1633901898363", + "d22a33f77c25bbc76d0da3e62d056e64", + 919, + { + "GC content": "0.36442", + "Size": "1751080", + "N Contigs": "1", + "MD5": "9575448e7385db1195bf0b74c1d63850" + } + ], + "objectInfo": { + "id": 11, + "name": "GCF_000007925.1_ASM792v1_genomic.fna_assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2021-10-10T22:19:44+0000", + "version": 1, + "saved_by": "kbaseuitest", + "wsid": 64493, + "ws": "kbaseuitest:narrative_1633901898363", + "checksum": "d22a33f77c25bbc76d0da3e62d056e64", + "size": 919, + "metadata": { + "GC content": "0.36442", + "Size": "1751080", + "N Contigs": "1", + "MD5": "9575448e7385db1195bf0b74c1d63850" + }, + "ref": "64493/11/1", + "obj_id": "ws.64493.obj.11", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2021-10-10T22:19:44.000Z" + } + } + ] + }, + "selectedItem": { + "status": "loaded", + "value": { + "assembly_id": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", + "base_counts": { + "A": 7284227, + "C": 8872108, + "G": 8935140, + "N": 17916, + "T": 7302331 + }, + "contigs": { + "NODE_10017_length_4750_cov_159.169968": { + "contig_id": "NODE_10017_length_4750_cov_159.169968", + "description": "", + "gc_content": 0.36379, + "length": 4750, + "md5": "98d432c21e8668546554a77905e920e9", + "name": "NODE_10017_length_4750_cov_159.169968" + }, + "NODE_10058_length_4734_cov_25.066253": { + "contig_id": "NODE_10058_length_4734_cov_25.066253", + "description": "", + "gc_content": 0.36713, + "length": 4734, + "md5": "54910be76e860fef5ca235cec74e50b6", + "name": "NODE_10058_length_4734_cov_25.066253" + }, + "NODE_1007_length_41543_cov_92.931980": { + "contig_id": "NODE_1007_length_41543_cov_92.931980", + "description": "", + "gc_content": 0.43264, + "length": 41543, + "md5": "d709fdbb7603364c9f86c09e08316ccd", + "name": "NODE_1007_length_41543_cov_92.931980" + }, + "NODE_100_length_180411_cov_16.745603": { + "contig_id": "NODE_100_length_180411_cov_16.745603", + "description": "", + "gc_content": 0.39194, + "length": 180411, + "md5": "e2753b8c88d5acf60af98f1e62f559fd", + "name": "NODE_100_length_180411_cov_16.745603" + }, + "NODE_10162_length_4682_cov_159.917441": { + "Ncount": 100, + "contig_id": "NODE_10162_length_4682_cov_159.917441", + "description": "", + "gc_content": 0.36138, + "length": 4682, + "md5": "3f73b2880fe0c6205673f659ebad96d2", + "name": "NODE_10162_length_4682_cov_159.917441" + }, + "NODE_10189_length_4671_cov_57.500217": { + "contig_id": "NODE_10189_length_4671_cov_57.500217", + "description": "", + "gc_content": 0.63177, + "length": 4671, + "md5": "7db19bba78dbb9afb61ffc4a0acd7544", + "name": "NODE_10189_length_4671_cov_57.500217" + }, + "NODE_1023_length_41198_cov_139.202683": { + "contig_id": "NODE_1023_length_41198_cov_139.202683", + "description": "", + "gc_content": 0.39378, + "length": 41198, + "md5": "45c043af78db4ee17bc83d26d61da8ee", + "name": "NODE_1023_length_41198_cov_139.202683" + }, + "NODE_103_length_176357_cov_9.075881": { + "Ncount": 100, + "contig_id": "NODE_103_length_176357_cov_9.075881", + "description": "", + "gc_content": 0.67569, + "length": 176357, + "md5": "62c82137f7b34d8bb19e1abb0bf3b700", + "name": "NODE_103_length_176357_cov_9.075881" + }, + "NODE_104_length_175670_cov_147.466936": { + "contig_id": "NODE_104_length_175670_cov_147.466936", + "description": "", + "gc_content": 0.52235, + "length": 175670, + "md5": "8f7ecce4377767405e412de531f9c156", + "name": "NODE_104_length_175670_cov_147.466936" + }, + "NODE_1050_length_40362_cov_89.890887": { + "Ncount": 300, + "contig_id": "NODE_1050_length_40362_cov_89.890887", + "description": "", + "gc_content": 0.60963, + "length": 40362, + "md5": "6c8c64361e6ad2ffa2395c4a4dd56a98", + "name": "NODE_1050_length_40362_cov_89.890887" + }, + "NODE_1054_length_40207_cov_31.091677": { + "contig_id": "NODE_1054_length_40207_cov_31.091677", + "description": "", + "gc_content": 0.63822, + "length": 40207, + "md5": "e82550e717687e4d9da948367b6fd73e", + "name": "NODE_1054_length_40207_cov_31.091677" + }, + "NODE_10554_length_4530_cov_30.726704": { + "contig_id": "NODE_10554_length_4530_cov_30.726704", + "description": "", + "gc_content": 0.43024, + "length": 4530, + "md5": "3c47e4087ddd77ff8adaaff45d8554b2", + "name": "NODE_10554_length_4530_cov_30.726704" + }, + "NODE_1057_length_40056_cov_30.995825": { + "contig_id": "NODE_1057_length_40056_cov_30.995825", + "description": "", + "gc_content": 0.63943, + "length": 40056, + "md5": "aeb45ead1917a8dfc1ecb17937ba0c77", + "name": "NODE_1057_length_40056_cov_30.995825" + }, + "NODE_1063_length_39828_cov_602.691524": { + "contig_id": "NODE_1063_length_39828_cov_602.691524", + "description": "", + "gc_content": 0.62793, + "length": 39828, + "md5": "5e079127b0bb820f119414d55f7722d5", + "name": "NODE_1063_length_39828_cov_602.691524" + }, + "NODE_1064_length_39795_cov_147.757549": { + "contig_id": "NODE_1064_length_39795_cov_147.757549", + "description": "", + "gc_content": 0.62772, + "length": 39795, + "md5": "84be6246633590a696fc0bcf7300ad6e", + "name": "NODE_1064_length_39795_cov_147.757549" + }, + "NODE_10687_length_4472_cov_43.925515": { + "contig_id": "NODE_10687_length_4472_cov_43.925515", + "description": "", + "gc_content": 0.39401, + "length": 4472, + "md5": "8c6d92fbefe6f0144b817d1c8c9d3de3", + "name": "NODE_10687_length_4472_cov_43.925515" + }, + "NODE_106_length_175061_cov_19.076672": { + "contig_id": "NODE_106_length_175061_cov_19.076672", + "description": "", + "gc_content": 0.40105, + "length": 175061, + "md5": "154b5cf6ba454efd6ba6f5af75e602c9", + "name": "NODE_106_length_175061_cov_19.076672" + }, + "NODE_1070_length_39489_cov_16.199751": { + "Ncount": 160, + "contig_id": "NODE_1070_length_39489_cov_16.199751", + "description": "", + "gc_content": 0.39758, + "length": 39489, + "md5": "f617f28feda791e2990c1354d2e3072e", + "name": "NODE_1070_length_39489_cov_16.199751" + }, + "NODE_107_length_174613_cov_14.986543": { + "contig_id": "NODE_107_length_174613_cov_14.986543", + "description": "", + "gc_content": 0.47794, + "length": 174613, + "md5": "7afb8c94bb17af15ffb0b6e0cec7f6e7", + "name": "NODE_107_length_174613_cov_14.986543" + }, + "NODE_10839_length_4415_cov_13.632110": { + "contig_id": "NODE_10839_length_4415_cov_13.632110", + "description": "", + "gc_content": 0.35651, + "length": 4415, + "md5": "dda21b3b8e75bae07dbe19a05f8f053f", + "name": "NODE_10839_length_4415_cov_13.632110" + }, + "NODE_108_length_171878_cov_15.745773": { + "contig_id": "NODE_108_length_171878_cov_15.745773", + "description": "", + "gc_content": 0.48685, + "length": 171878, + "md5": "8aca2314b8d60d48d382a9363f9cfe2f", + "name": "NODE_108_length_171878_cov_15.745773" + }, + "NODE_1093_length_38730_cov_20.574428": { + "contig_id": "NODE_1093_length_38730_cov_20.574428", + "description": "", + "gc_content": 0.40207, + "length": 38730, + "md5": "3045b6e207b3177afdb210cf79fbbcf9", + "name": "NODE_1093_length_38730_cov_20.574428" + }, + "NODE_1098_length_38514_cov_30.807717": { + "contig_id": "NODE_1098_length_38514_cov_30.807717", + "description": "", + "gc_content": 0.64197, + "length": 38514, + "md5": "56435f988bb8a087c4de878ac812aed8", + "name": "NODE_1098_length_38514_cov_30.807717" + }, + "NODE_1103_length_38450_cov_133.530017": { + "contig_id": "NODE_1103_length_38450_cov_133.530017", + "description": "", + "gc_content": 0.64377, + "length": 38450, + "md5": "64f786bf093b33185322e665ceab015a", + "name": "NODE_1103_length_38450_cov_133.530017" + }, + "NODE_1105_length_38381_cov_8.888718": { + "contig_id": "NODE_1105_length_38381_cov_8.888718", + "description": "", + "gc_content": 0.67171, + "length": 38381, + "md5": "89c5d3d1f02a56ce3dc059705aa3936b", + "name": "NODE_1105_length_38381_cov_8.888718" + }, + "NODE_11095_length_4330_cov_22.627602": { + "contig_id": "NODE_11095_length_4330_cov_22.627602", + "description": "", + "gc_content": 0.58383, + "length": 4330, + "md5": "2f274e592a6a029675012f6abf0ace8e", + "name": "NODE_11095_length_4330_cov_22.627602" + }, + "NODE_11139_length_4315_cov_17.737793": { + "Ncount": 100, + "contig_id": "NODE_11139_length_4315_cov_17.737793", + "description": "", + "gc_content": 0.40371, + "length": 4315, + "md5": "54179a3be8c7bf4483f217ed6249a5d9", + "name": "NODE_11139_length_4315_cov_17.737793" + }, + "NODE_11141_length_4314_cov_156.916412": { + "contig_id": "NODE_11141_length_4314_cov_156.916412", + "description": "", + "gc_content": 0.49536, + "length": 4314, + "md5": "7cc195cb30ec63098ba221d1111755c0", + "name": "NODE_11141_length_4314_cov_156.916412" + }, + "NODE_11153_length_4307_cov_58.286689": { + "contig_id": "NODE_11153_length_4307_cov_58.286689", + "description": "", + "gc_content": 0.58417, + "length": 4307, + "md5": "1a5c03518416f36d6efc7e52e462412e", + "name": "NODE_11153_length_4307_cov_58.286689" + }, + "NODE_11178_length_4301_cov_668.951719": { + "contig_id": "NODE_11178_length_4301_cov_668.951719", + "description": "", + "gc_content": 0.60823, + "length": 4301, + "md5": "0a9883ee273c6ff3d8ad1ece5f714c92", + "name": "NODE_11178_length_4301_cov_668.951719" + }, + "NODE_1122_length_37857_cov_30.796228": { + "contig_id": "NODE_1122_length_37857_cov_30.796228", + "description": "", + "gc_content": 0.64197, + "length": 37857, + "md5": "64c9c73291caae256e4314e7e94be6d4", + "name": "NODE_1122_length_37857_cov_30.796228" + }, + "NODE_1126_length_37809_cov_129.350744": { + "Ncount": 100, + "contig_id": "NODE_1126_length_37809_cov_129.350744", + "description": "", + "gc_content": 0.63726, + "length": 37809, + "md5": "f1a6edae88c97fbbe7164411f55bb060", + "name": "NODE_1126_length_37809_cov_129.350744" + }, + "NODE_1128_length_37768_cov_9.120250": { + "contig_id": "NODE_1128_length_37768_cov_9.120250", + "description": "", + "gc_content": 0.68677, + "length": 37768, + "md5": "2b48302a94a43b7ed22e9c8d419eca97", + "name": "NODE_1128_length_37768_cov_9.120250" + }, + "NODE_112_length_170680_cov_15.618678": { + "Ncount": 100, + "contig_id": "NODE_112_length_170680_cov_15.618678", + "description": "", + "gc_content": 0.49289, + "length": 170680, + "md5": "10411bfc46de2bb4e97b53064f06a9ad", + "name": "NODE_112_length_170680_cov_15.618678" + }, + "NODE_11369_length_4242_cov_11.336279": { + "contig_id": "NODE_11369_length_4242_cov_11.336279", + "description": "", + "gc_content": 0.38873, + "length": 4242, + "md5": "79b0c3e17170c861f3fb30285a7ac5cc", + "name": "NODE_11369_length_4242_cov_11.336279" + }, + "NODE_11389_length_4237_cov_9.885222": { + "contig_id": "NODE_11389_length_4237_cov_9.885222", + "description": "", + "gc_content": 0.62945, + "length": 4237, + "md5": "ba3eebbeb887d7013b5137dbe30d7778", + "name": "NODE_11389_length_4237_cov_9.885222" + }, + "NODE_11396_length_4234_cov_25.534099": { + "contig_id": "NODE_11396_length_4234_cov_25.534099", + "description": "", + "gc_content": 0.64761, + "length": 4234, + "md5": "02022bb2bf7ec5a1f43de9b04570a0d8", + "name": "NODE_11396_length_4234_cov_25.534099" + }, + "NODE_1139_length_37316_cov_18.741955": { + "contig_id": "NODE_1139_length_37316_cov_18.741955", + "description": "", + "gc_content": 0.39198, + "length": 37316, + "md5": "a6cb6d4d85c4184fcab36a04208a3753", + "name": "NODE_1139_length_37316_cov_18.741955" + }, + "NODE_113_length_170363_cov_131.693044": { + "Ncount": 100, + "contig_id": "NODE_113_length_170363_cov_131.693044", + "description": "", + "gc_content": 0.64721, + "length": 170363, + "md5": "cbceec79f85c08d9c97d1e62a261af14", + "name": "NODE_113_length_170363_cov_131.693044" + }, + "NODE_11420_length_4227_cov_120.473394": { + "contig_id": "NODE_11420_length_4227_cov_120.473394", + "description": "", + "gc_content": 0.64845, + "length": 4227, + "md5": "2e969f88216f7c4fc1fee350dd3c402b", + "name": "NODE_11420_length_4227_cov_120.473394" + }, + "NODE_1145_length_37075_cov_126.388088": { + "contig_id": "NODE_1145_length_37075_cov_126.388088", + "description": "", + "gc_content": 0.6355, + "length": 37075, + "md5": "df7a9987255328ac070dbd9f0ce0646a", + "name": "NODE_1145_length_37075_cov_126.388088" + }, + "NODE_11464_length_4215_cov_41.485337": { + "contig_id": "NODE_11464_length_4215_cov_41.485337", + "description": "", + "gc_content": 0.63203, + "length": 4215, + "md5": "259cb9a0f0fd5ce1c030ef0be080529f", + "name": "NODE_11464_length_4215_cov_41.485337" + }, + "NODE_11492_length_4207_cov_92.317437": { + "contig_id": "NODE_11492_length_4207_cov_92.317437", + "description": "", + "gc_content": 0.66461, + "length": 4207, + "md5": "12453c82282b1cc1e8ca414ef21cbce1", + "name": "NODE_11492_length_4207_cov_92.317437" + }, + "NODE_1155_length_36715_cov_27.545881": { + "contig_id": "NODE_1155_length_36715_cov_27.545881", + "description": "", + "gc_content": 0.66591, + "length": 36715, + "md5": "4ab5c1501a366974220cf0d3fb55a930", + "name": "NODE_1155_length_36715_cov_27.545881" + }, + "NODE_11621_length_4168_cov_158.778021": { + "contig_id": "NODE_11621_length_4168_cov_158.778021", + "description": "", + "gc_content": 0.47769, + "length": 4168, + "md5": "ddd8558452b25922c548b16ef3c4b6e1", + "name": "NODE_11621_length_4168_cov_158.778021" + }, + "NODE_1162_length_36499_cov_119.348233": { + "contig_id": "NODE_1162_length_36499_cov_119.348233", + "description": "", + "gc_content": 0.62404, + "length": 36499, + "md5": "6300f349da7520e0027640bf1a3361e4", + "name": "NODE_1162_length_36499_cov_119.348233" + }, + "NODE_11634_length_4165_cov_10.957908": { + "contig_id": "NODE_11634_length_4165_cov_10.957908", + "description": "", + "gc_content": 0.38103, + "length": 4165, + "md5": "f79dc3e5042ef8c1761f739b17a17580", + "name": "NODE_11634_length_4165_cov_10.957908" + }, + "NODE_11637_length_4164_cov_24.961061": { + "contig_id": "NODE_11637_length_4164_cov_24.961061", + "description": "", + "gc_content": 0.35327, + "length": 4164, + "md5": "84a53010cc40edcd72f3bdb53e099770", + "name": "NODE_11637_length_4164_cov_24.961061" + }, + "NODE_11666_length_4157_cov_132.040956": { + "contig_id": "NODE_11666_length_4157_cov_132.040956", + "description": "", + "gc_content": 0.344, + "length": 4157, + "md5": "43014e8356e7147eca9bb8f4cdf8890e", + "name": "NODE_11666_length_4157_cov_132.040956" + }, + "NODE_1166_length_36399_cov_557.481483": { + "contig_id": "NODE_1166_length_36399_cov_557.481483", + "description": "", + "gc_content": 0.63304, + "length": 36399, + "md5": "f2bcc5ee5c662a75ce1ab9a341ef210d", + "name": "NODE_1166_length_36399_cov_557.481483" + }, + "NODE_11755_length_4119_cov_158.610974": { + "contig_id": "NODE_11755_length_4119_cov_158.610974", + "description": "", + "gc_content": 0.45399, + "length": 4119, + "md5": "44ea44e1e3344c7d15afb0160550b985", + "name": "NODE_11755_length_4119_cov_158.610974" + }, + "NODE_1179_length_36092_cov_150.062908": { + "Ncount": 10, + "contig_id": "NODE_1179_length_36092_cov_150.062908", + "description": "", + "gc_content": 0.2935, + "length": 36092, + "md5": "412bbf54f5ce3b825c75411270c0ea1f", + "name": "NODE_1179_length_36092_cov_150.062908" + }, + "NODE_1182_length_35938_cov_16.677953": { + "contig_id": "NODE_1182_length_35938_cov_16.677953", + "description": "", + "gc_content": 0.3956, + "length": 35938, + "md5": "9f7a810f5146985a0b3c6014aaf702de", + "name": "NODE_1182_length_35938_cov_16.677953" + }, + "NODE_118_length_166625_cov_28.846251": { + "Ncount": 200, + "contig_id": "NODE_118_length_166625_cov_28.846251", + "description": "", + "gc_content": 0.64029, + "length": 166625, + "md5": "693ca1270b2daf7f064547c3fa019a15", + "name": "NODE_118_length_166625_cov_28.846251" + }, + "NODE_11973_length_4054_cov_79.629407": { + "contig_id": "NODE_11973_length_4054_cov_79.629407", + "description": "", + "gc_content": 0.68254, + "length": 4054, + "md5": "135fc756cb07e8841a103ee1d6f3ea4f", + "name": "NODE_11973_length_4054_cov_79.629407" + }, + "NODE_119_length_166541_cov_138.393805": { + "contig_id": "NODE_119_length_166541_cov_138.393805", + "description": "", + "gc_content": 0.3936, + "length": 166541, + "md5": "20fa9ffe46ffc16d5b0708eaa91a1a35", + "name": "NODE_119_length_166541_cov_138.393805" + }, + "NODE_12039_length_4040_cov_26.019824": { + "contig_id": "NODE_12039_length_4040_cov_26.019824", + "description": "", + "gc_content": 0.59084, + "length": 4040, + "md5": "c6e65983018d2d57cad2558871c02d15", + "name": "NODE_12039_length_4040_cov_26.019824" + }, + "NODE_1204_length_35428_cov_8.768157": { + "Ncount": 23, + "contig_id": "NODE_1204_length_35428_cov_8.768157", + "description": "", + "gc_content": 0.68011, + "length": 35428, + "md5": "e24aa82857a3d9e397688c13cbdda62f", + "name": "NODE_1204_length_35428_cov_8.768157" + }, + "NODE_12090_length_4026_cov_148.421304": { + "contig_id": "NODE_12090_length_4026_cov_148.421304", + "description": "", + "gc_content": 0.42996, + "length": 4026, + "md5": "61b8765150b85046de8db23b2f72214d", + "name": "NODE_12090_length_4026_cov_148.421304" + }, + "NODE_1209_length_35302_cov_113.690357": { + "Ncount": 200, + "contig_id": "NODE_1209_length_35302_cov_113.690357", + "description": "", + "gc_content": 0.64872, + "length": 35302, + "md5": "4c3cda4b8d57539065e75f711abd82af", + "name": "NODE_1209_length_35302_cov_113.690357" + }, + "NODE_12131_length_4013_cov_136.417888": { + "contig_id": "NODE_12131_length_4013_cov_136.417888", + "description": "", + "gc_content": 0.615, + "length": 4013, + "md5": "171bc7969a08b823dcb6266278cb5ca8", + "name": "NODE_12131_length_4013_cov_136.417888" + }, + "NODE_1223_length_35080_cov_5.716602": { + "Ncount": 10, + "contig_id": "NODE_1223_length_35080_cov_5.716602", + "description": "", + "gc_content": 0.66594, + "length": 35080, + "md5": "15b0a92b58a77c5d85de2f2ac06f46f4", + "name": "NODE_1223_length_35080_cov_5.716602" + }, + "NODE_1224_length_35025_cov_32.184272": { + "contig_id": "NODE_1224_length_35025_cov_32.184272", + "description": "", + "gc_content": 0.6382, + "length": 35025, + "md5": "e3e9d2542698bbd6f576266f0fb8c6f1", + "name": "NODE_1224_length_35025_cov_32.184272" + }, + "NODE_1229_length_34755_cov_8.414524": { + "contig_id": "NODE_1229_length_34755_cov_8.414524", + "description": "", + "gc_content": 0.673, + "length": 34755, + "md5": "46ad03974f30acf7ea67ca17745f716b", + "name": "NODE_1229_length_34755_cov_8.414524" + }, + "NODE_12322_length_3960_cov_15.397695": { + "contig_id": "NODE_12322_length_3960_cov_15.397695", + "description": "", + "gc_content": 0.45051, + "length": 3960, + "md5": "1778f62236f5fab89ea89d1f750ee22a", + "name": "NODE_12322_length_3960_cov_15.397695" + }, + "NODE_12414_length_3934_cov_69.821088": { + "contig_id": "NODE_12414_length_3934_cov_69.821088", + "description": "", + "gc_content": 0.48246, + "length": 3934, + "md5": "c6f6bfe65d8d90dffcfe71e38095021b", + "name": "NODE_12414_length_3934_cov_69.821088" + }, + "NODE_12532_length_3902_cov_9.641539": { + "contig_id": "NODE_12532_length_3902_cov_9.641539", + "description": "", + "gc_content": 0.68965, + "length": 3902, + "md5": "2f049ed7fa16f5a46c27705c5c6b9096", + "name": "NODE_12532_length_3902_cov_9.641539" + }, + "NODE_12575_length_3891_cov_99.934307": { + "contig_id": "NODE_12575_length_3891_cov_99.934307", + "description": "", + "gc_content": 0.40427, + "length": 3891, + "md5": "59d276a00e552a9520c6bd8ec334970d", + "name": "NODE_12575_length_3891_cov_99.934307" + }, + "NODE_12579_length_3890_cov_300.798175": { + "contig_id": "NODE_12579_length_3890_cov_300.798175", + "description": "", + "gc_content": 0.52725, + "length": 3890, + "md5": "8d38eba0024c346abd443b9f8d6cf5b6", + "name": "NODE_12579_length_3890_cov_300.798175" + }, + "NODE_12599_length_3882_cov_71.918474": { + "contig_id": "NODE_12599_length_3882_cov_71.918474", + "description": "", + "gc_content": 0.36476, + "length": 3882, + "md5": "e55e593b6849044a2dbcdfe41de80f31", + "name": "NODE_12599_length_3882_cov_71.918474" + }, + "NODE_12602_length_3880_cov_13.072157": { + "contig_id": "NODE_12602_length_3880_cov_13.072157", + "description": "", + "gc_content": 0.67062, + "length": 3880, + "md5": "5788edb5944efe149ac8ddc764ffb240", + "name": "NODE_12602_length_3880_cov_13.072157" + }, + "NODE_1261_length_34121_cov_22.040099": { + "contig_id": "NODE_1261_length_34121_cov_22.040099", + "description": "", + "gc_content": 0.39527, + "length": 34121, + "md5": "7dc64465980e40e282416bb8bd7686fc", + "name": "NODE_1261_length_34121_cov_22.040099" + }, + "NODE_12639_length_3871_cov_85.626834": { + "contig_id": "NODE_12639_length_3871_cov_85.626834", + "description": "", + "gc_content": 0.63084, + "length": 3871, + "md5": "1fd891191e94757d7147959341c9a5ef", + "name": "NODE_12639_length_3871_cov_85.626834" + }, + "NODE_1263_length_34106_cov_32.715574": { + "Ncount": 100, + "contig_id": "NODE_1263_length_34106_cov_32.715574", + "description": "", + "gc_content": 0.64748, + "length": 34106, + "md5": "2bd107aa69cfcda467ad7ed120ffcd66", + "name": "NODE_1263_length_34106_cov_32.715574" + }, + "NODE_1264_length_34064_cov_146.452998": { + "contig_id": "NODE_1264_length_34064_cov_146.452998", + "description": "", + "gc_content": 0.39015, + "length": 34064, + "md5": "a3146d08ec5f0766752370d91d0d739b", + "name": "NODE_1264_length_34064_cov_146.452998" + }, + "NODE_12741_length_3844_cov_23.475851": { + "contig_id": "NODE_12741_length_3844_cov_23.475851", + "description": "", + "gc_content": 0.65765, + "length": 3844, + "md5": "61b7bf1700a6689fd1bbaee0cf0bf6b7", + "name": "NODE_12741_length_3844_cov_23.475851" + }, + "NODE_12754_length_3840_cov_29.600528": { + "contig_id": "NODE_12754_length_3840_cov_29.600528", + "description": "", + "gc_content": 0.35339, + "length": 3840, + "md5": "68d75eace67673d6f5086734b40c78be", + "name": "NODE_12754_length_3840_cov_29.600528" + }, + "NODE_1278_length_33808_cov_172.368975": { + "contig_id": "NODE_1278_length_33808_cov_172.368975", + "description": "", + "gc_content": 0.49432, + "length": 33808, + "md5": "edb8f6b8ca9e640e6a3aa65cfac22e42", + "name": "NODE_1278_length_33808_cov_172.368975" + }, + "NODE_1279_length_33801_cov_8.643039": { + "contig_id": "NODE_1279_length_33801_cov_8.643039", + "description": "", + "gc_content": 0.68959, + "length": 33801, + "md5": "ab4e2b59ef13536b42a3dfd63e789a1b", + "name": "NODE_1279_length_33801_cov_8.643039" + }, + "NODE_12808_length_3825_cov_3.663130": { + "contig_id": "NODE_12808_length_3825_cov_3.663130", + "description": "", + "gc_content": 0.68392, + "length": 3825, + "md5": "6b52d6e13e83e8454115053e77db65cd", + "name": "NODE_12808_length_3825_cov_3.663130" + }, + "NODE_1286_length_33717_cov_132.909364": { + "contig_id": "NODE_1286_length_33717_cov_132.909364", + "description": "", + "gc_content": 0.62452, + "length": 33717, + "md5": "5b751d2a73f324ad8cd591f56766b5e1", + "name": "NODE_1286_length_33717_cov_132.909364" + }, + "NODE_12876_length_3810_cov_67.741411": { + "contig_id": "NODE_12876_length_3810_cov_67.741411", + "description": "", + "gc_content": 0.65801, + "length": 3810, + "md5": "de0e94d7236142856b96459f4a2fdea5", + "name": "NODE_12876_length_3810_cov_67.741411" + }, + "NODE_12922_length_3797_cov_8.080973": { + "contig_id": "NODE_12922_length_3797_cov_8.080973", + "description": "", + "gc_content": 0.67606, + "length": 3797, + "md5": "00fa8b80d59d6f1ed42c1086135d7725", + "name": "NODE_12922_length_3797_cov_8.080973" + }, + "NODE_1292_length_33567_cov_9.282138": { + "contig_id": "NODE_1292_length_33567_cov_9.282138", + "description": "", + "gc_content": 0.66676, + "length": 33567, + "md5": "349ecb7add0d1bdefc95aefa03fc3285", + "name": "NODE_1292_length_33567_cov_9.282138" + }, + "NODE_1293_length_33560_cov_123.840740": { + "Ncount": 200, + "contig_id": "NODE_1293_length_33560_cov_123.840740", + "description": "", + "gc_content": 0.63701, + "length": 33560, + "md5": "6dfd378b4f1902e62cd9e7b422b0bf64", + "name": "NODE_1293_length_33560_cov_123.840740" + }, + "NODE_1299_length_33454_cov_103.690440": { + "contig_id": "NODE_1299_length_33454_cov_103.690440", + "description": "", + "gc_content": 0.65051, + "length": 33454, + "md5": "4863f2173f8eb7f8ec144b66b1f3a772", + "name": "NODE_1299_length_33454_cov_103.690440" + }, + "NODE_1309_length_33260_cov_18.201144": { + "contig_id": "NODE_1309_length_33260_cov_18.201144", + "description": "", + "gc_content": 0.40622, + "length": 33260, + "md5": "e84ad0455c5ce0103c1fdb94d71a8701", + "name": "NODE_1309_length_33260_cov_18.201144" + }, + "NODE_1310_length_33211_cov_27.665219": { + "contig_id": "NODE_1310_length_33211_cov_27.665219", + "description": "", + "gc_content": 0.6359, + "length": 33211, + "md5": "38aa182ea746e917225e8f63bef74351", + "name": "NODE_1310_length_33211_cov_27.665219" + }, + "NODE_13186_length_3731_cov_17.399075": { + "contig_id": "NODE_13186_length_3731_cov_17.399075", + "description": "", + "gc_content": 0.40499, + "length": 3731, + "md5": "44a67032636160e48e0cf41a7e132c09", + "name": "NODE_13186_length_3731_cov_17.399075" + }, + "NODE_1325_length_32823_cov_118.561707": { + "Ncount": 100, + "contig_id": "NODE_1325_length_32823_cov_118.561707", + "description": "", + "gc_content": 0.64763, + "length": 32823, + "md5": "a8e10ba25c17b852efa1f244cce6e6af", + "name": "NODE_1325_length_32823_cov_118.561707" + }, + "NODE_1327_length_32806_cov_112.976153": { + "contig_id": "NODE_1327_length_32806_cov_112.976153", + "description": "", + "gc_content": 0.64775, + "length": 32806, + "md5": "c2509d70c129f0f5a01f975110860c1b", + "name": "NODE_1327_length_32806_cov_112.976153" + }, + "NODE_1328_length_32773_cov_51.295220": { + "contig_id": "NODE_1328_length_32773_cov_51.295220", + "description": "", + "gc_content": 0.64227, + "length": 32773, + "md5": "386a2e282aed3b3baa916a35b9075fe5", + "name": "NODE_1328_length_32773_cov_51.295220" + }, + "NODE_13303_length_3699_cov_30.213502": { + "contig_id": "NODE_13303_length_3699_cov_30.213502", + "description": "", + "gc_content": 0.62801, + "length": 3699, + "md5": "c02a9ea43aca1e6bed6417d3bec57ab9", + "name": "NODE_13303_length_3699_cov_30.213502" + }, + "NODE_133_length_154186_cov_30.952093": { + "Ncount": 100, + "contig_id": "NODE_133_length_154186_cov_30.952093", + "description": "", + "gc_content": 0.64174, + "length": 154186, + "md5": "ca33421c8e9e992b0f1b62700e7bbaeb", + "name": "NODE_133_length_154186_cov_30.952093" + }, + "NODE_1342_length_32571_cov_32.245510": { + "Ncount": 100, + "contig_id": "NODE_1342_length_32571_cov_32.245510", + "description": "", + "gc_content": 0.64309, + "length": 32571, + "md5": "457aba30d0e223e1a55cd8a44d3e57c1", + "name": "NODE_1342_length_32571_cov_32.245510" + }, + "NODE_13484_length_3653_cov_96.151473": { + "contig_id": "NODE_13484_length_3653_cov_96.151473", + "description": "", + "gc_content": 0.64112, + "length": 3653, + "md5": "295b8ffdf722f022e15bf51e671db87f", + "name": "NODE_13484_length_3653_cov_96.151473" + }, + "NODE_13494_length_3651_cov_7.834260": { + "contig_id": "NODE_13494_length_3651_cov_7.834260", + "description": "", + "gc_content": 0.66639, + "length": 3651, + "md5": "bae57f21977608cf8166f451bac815b7", + "name": "NODE_13494_length_3651_cov_7.834260" + }, + "NODE_1350_length_32490_cov_562.040543": { + "Ncount": 100, + "contig_id": "NODE_1350_length_32490_cov_562.040543", + "description": "", + "gc_content": 0.635, + "length": 32490, + "md5": "c20dc7c62d536e59a612142ad37dbcb6", + "name": "NODE_1350_length_32490_cov_562.040543" + }, + "NODE_13555_length_3638_cov_12.013397": { + "contig_id": "NODE_13555_length_3638_cov_12.013397", + "description": "", + "gc_content": 0.34689, + "length": 3638, + "md5": "da889dda0fcdeb54c108edb170390d3c", + "name": "NODE_13555_length_3638_cov_12.013397" + }, + "NODE_1356_length_32339_cov_113.595558": { + "Ncount": 100, + "contig_id": "NODE_1356_length_32339_cov_113.595558", + "description": "", + "gc_content": 0.64847, + "length": 32339, + "md5": "397096e3b19515f59179e4bc1b5dfd4c", + "name": "NODE_1356_length_32339_cov_113.595558" + }, + "NODE_13601_length_3631_cov_19.111577": { + "contig_id": "NODE_13601_length_3631_cov_19.111577", + "description": "", + "gc_content": 0.38915, + "length": 3631, + "md5": "52d9d1ff124447165be6d323fc8d67ee", + "name": "NODE_13601_length_3631_cov_19.111577" + }, + "NODE_1364_length_32171_cov_22.017437": { + "contig_id": "NODE_1364_length_32171_cov_22.017437", + "description": "", + "gc_content": 0.40692, + "length": 32171, + "md5": "e0dcf3279058bbea48c455a5968111e5", + "name": "NODE_1364_length_32171_cov_22.017437" + }, + "NODE_1367_length_32119_cov_15.847836": { + "contig_id": "NODE_1367_length_32119_cov_15.847836", + "description": "", + "gc_content": 0.48535, + "length": 32119, + "md5": "b6584731481098b2c1db7dfd6113acf2", + "name": "NODE_1367_length_32119_cov_15.847836" + }, + "NODE_13682_length_3613_cov_17.007307": { + "contig_id": "NODE_13682_length_3613_cov_17.007307", + "description": "", + "gc_content": 0.59673, + "length": 3613, + "md5": "973f2c75560f720e2948e0b792289f40", + "name": "NODE_13682_length_3613_cov_17.007307" + }, + "NODE_136_length_152140_cov_145.014426": { + "Ncount": 200, + "contig_id": "NODE_136_length_152140_cov_145.014426", + "description": "", + "gc_content": 0.63986, + "length": 152140, + "md5": "b0fef651db01af97af69f6d35af44eb7", + "name": "NODE_136_length_152140_cov_145.014426" + }, + "NODE_1370_length_32077_cov_9.088221": { + "contig_id": "NODE_1370_length_32077_cov_9.088221", + "description": "", + "gc_content": 0.64364, + "length": 32077, + "md5": "d5c7520af00d0349401ce1818141c608", + "name": "NODE_1370_length_32077_cov_9.088221" + }, + "NODE_13710_length_3608_cov_79.719674": { + "contig_id": "NODE_13710_length_3608_cov_79.719674", + "description": "", + "gc_content": 0.36558, + "length": 3608, + "md5": "aff6e6b544648e6d934da8572129005b", + "name": "NODE_13710_length_3608_cov_79.719674" + }, + "NODE_1372_length_32036_cov_8.824052": { + "contig_id": "NODE_1372_length_32036_cov_8.824052", + "description": "", + "gc_content": 0.67059, + "length": 32036, + "md5": "dc716fbe95730c3bcf77a8875c9bd817", + "name": "NODE_1372_length_32036_cov_8.824052" + }, + "NODE_13752_length_3598_cov_114.250353": { + "contig_id": "NODE_13752_length_3598_cov_114.250353", + "description": "", + "gc_content": 0.37215, + "length": 3598, + "md5": "240079b5fd627eca1c4543c4fb88eb2c", + "name": "NODE_13752_length_3598_cov_114.250353" + }, + "NODE_1382_length_31734_cov_8.648884": { + "contig_id": "NODE_1382_length_31734_cov_8.648884", + "description": "", + "gc_content": 0.67896, + "length": 31734, + "md5": "9b2a8158d6bdaaadd0ed1cca2b411a15", + "name": "NODE_1382_length_31734_cov_8.648884" + }, + "NODE_13875_length_3573_cov_27.033542": { + "contig_id": "NODE_13875_length_3573_cov_27.033542", + "description": "", + "gc_content": 0.60621, + "length": 3573, + "md5": "50cf207c3adffa86358f60f55a067ff7", + "name": "NODE_13875_length_3573_cov_27.033542" + }, + "NODE_1389_length_31599_cov_139.299201": { + "Ncount": 110, + "contig_id": "NODE_1389_length_31599_cov_139.299201", + "description": "", + "gc_content": 0.38843, + "length": 31599, + "md5": "c72073d35e89a4d9fcda8d842a5ae8bc", + "name": "NODE_1389_length_31599_cov_139.299201" + }, + "NODE_13927_length_3562_cov_72.468492": { + "contig_id": "NODE_13927_length_3562_cov_72.468492", + "description": "", + "gc_content": 0.32622, + "length": 3562, + "md5": "d6d76272d72798d60c232f8f8f05cd12", + "name": "NODE_13927_length_3562_cov_72.468492" + }, + "NODE_1392_length_31545_cov_136.657193": { + "contig_id": "NODE_1392_length_31545_cov_136.657193", + "description": "", + "gc_content": 0.38523, + "length": 31545, + "md5": "366def7c81265b3b331c0f9a2f8ccf1e", + "name": "NODE_1392_length_31545_cov_136.657193" + }, + "NODE_139_length_147361_cov_118.533760": { + "Ncount": 300, + "contig_id": "NODE_139_length_147361_cov_118.533760", + "description": "", + "gc_content": 0.64036, + "length": 147361, + "md5": "5270ee25ec21def387cc5f96c944c1aa", + "name": "NODE_139_length_147361_cov_118.533760" + }, + "NODE_14001_length_3547_cov_10.766323": { + "contig_id": "NODE_14001_length_3547_cov_10.766323", + "description": "", + "gc_content": 0.49958, + "length": 3547, + "md5": "9bb5966d06d23cdb74fab4c8b28ed420", + "name": "NODE_14001_length_3547_cov_10.766323" + }, + "NODE_1400_length_31287_cov_28.762647": { + "contig_id": "NODE_1400_length_31287_cov_28.762647", + "description": "", + "gc_content": 0.64327, + "length": 31287, + "md5": "58e9a9c93e882f61bf88ac032296efb7", + "name": "NODE_1400_length_31287_cov_28.762647" + }, + "NODE_14019_length_3544_cov_37.337919": { + "contig_id": "NODE_14019_length_3544_cov_37.337919", + "description": "", + "gc_content": 0.60948, + "length": 3544, + "md5": "ecadef2be0f12001df788bb6c47c6811", + "name": "NODE_14019_length_3544_cov_37.337919" + }, + "NODE_1401_length_31274_cov_163.348249": { + "contig_id": "NODE_1401_length_31274_cov_163.348249", + "description": "", + "gc_content": 0.49367, + "length": 31274, + "md5": "482d04a04b02a47cdc71864fb1f7c7a9", + "name": "NODE_1401_length_31274_cov_163.348249" + }, + "NODE_14101_length_3526_cov_9.505330": { + "contig_id": "NODE_14101_length_3526_cov_9.505330", + "description": "", + "gc_content": 0.64294, + "length": 3526, + "md5": "6b9fe1c631bdc804895472f23227ed09", + "name": "NODE_14101_length_3526_cov_9.505330" + }, + "NODE_14176_length_3510_cov_27.822287": { + "contig_id": "NODE_14176_length_3510_cov_27.822287", + "description": "", + "gc_content": 0.58262, + "length": 3510, + "md5": "aaeee86a015aa63a8ce170d6fbacc524", + "name": "NODE_14176_length_3510_cov_27.822287" + }, + "NODE_1417_length_30921_cov_17.653891": { + "contig_id": "NODE_1417_length_30921_cov_17.653891", + "description": "", + "gc_content": 0.39886, + "length": 30921, + "md5": "4bcc097609c6a3d6d8921b23956f39c3", + "name": "NODE_1417_length_30921_cov_17.653891" + }, + "NODE_14212_length_3501_cov_4.354614": { + "contig_id": "NODE_14212_length_3501_cov_4.354614", + "description": "", + "gc_content": 0.66467, + "length": 3501, + "md5": "0827cad019b8d0f52d7673a31a927108", + "name": "NODE_14212_length_3501_cov_4.354614" + }, + "NODE_14279_length_3482_cov_26.060111": { + "contig_id": "NODE_14279_length_3482_cov_26.060111", + "description": "", + "gc_content": 0.43308, + "length": 3482, + "md5": "0ced53e4e670c373ffff80b3cdbba151", + "name": "NODE_14279_length_3482_cov_26.060111" + }, + "NODE_14289_length_3480_cov_194.713869": { + "contig_id": "NODE_14289_length_3480_cov_194.713869", + "description": "", + "gc_content": 0.6704, + "length": 3480, + "md5": "3e4b46eb88746c0aea1556f2e33e73b4", + "name": "NODE_14289_length_3480_cov_194.713869" + }, + "NODE_142_length_146445_cov_17.789555": { + "Ncount": 100, + "contig_id": "NODE_142_length_146445_cov_17.789555", + "description": "", + "gc_content": 0.39396, + "length": 146445, + "md5": "f7d49a9ecb7c3145fbadb4e9a9a5291a", + "name": "NODE_142_length_146445_cov_17.789555" + }, + "NODE_14364_length_3465_cov_6.076833": { + "contig_id": "NODE_14364_length_3465_cov_6.076833", + "description": "", + "gc_content": 0.68745, + "length": 3465, + "md5": "b30e134987a50217d704a1c203703e2f", + "name": "NODE_14364_length_3465_cov_6.076833" + }, + "NODE_14451_length_3449_cov_42.208898": { + "contig_id": "NODE_14451_length_3449_cov_42.208898", + "description": "", + "gc_content": 0.41983, + "length": 3449, + "md5": "c8de02274ce8624b87d9d0cbc3ff0c9e", + "name": "NODE_14451_length_3449_cov_42.208898" + }, + "NODE_1447_length_30236_cov_9.676088": { + "contig_id": "NODE_1447_length_30236_cov_9.676088", + "description": "", + "gc_content": 0.65869, + "length": 30236, + "md5": "fec2a52e23463054ea68b60dec15dfc1", + "name": "NODE_1447_length_30236_cov_9.676088" + }, + "NODE_14495_length_3441_cov_14.802717": { + "contig_id": "NODE_14495_length_3441_cov_14.802717", + "description": "", + "gc_content": 0.34641, + "length": 3441, + "md5": "fa1cb730119196e4ff45cb1b121bfd8a", + "name": "NODE_14495_length_3441_cov_14.802717" + }, + "NODE_1449_length_30142_cov_22.601090": { + "contig_id": "NODE_1449_length_30142_cov_22.601090", + "description": "", + "gc_content": 0.37303, + "length": 30142, + "md5": "e2a61bc8e656a201a430181602d11c65", + "name": "NODE_1449_length_30142_cov_22.601090" + }, + "NODE_1455_length_29972_cov_30.358024": { + "contig_id": "NODE_1455_length_29972_cov_30.358024", + "description": "", + "gc_content": 0.64113, + "length": 29972, + "md5": "28cfca7de7e3cf165c4afbfad75f6e31", + "name": "NODE_1455_length_29972_cov_30.358024" + }, + "NODE_1456_length_29906_cov_108.807779": { + "Ncount": 200, + "contig_id": "NODE_1456_length_29906_cov_108.807779", + "description": "", + "gc_content": 0.63663, + "length": 29906, + "md5": "86c19f1c9fdda1c8cbe3f2baa3dc1fd8", + "name": "NODE_1456_length_29906_cov_108.807779" + }, + "NODE_145_length_145676_cov_623.757301": { + "contig_id": "NODE_145_length_145676_cov_623.757301", + "description": "", + "gc_content": 0.63679, + "length": 145676, + "md5": "4429350a9379ee2b79dad4f442757271", + "name": "NODE_145_length_145676_cov_623.757301" + }, + "NODE_1476_length_29572_cov_131.514686": { + "contig_id": "NODE_1476_length_29572_cov_131.514686", + "description": "", + "gc_content": 0.63709, + "length": 29572, + "md5": "8b57e9b2856cc39232cd85096bef774b", + "name": "NODE_1476_length_29572_cov_131.514686" + }, + "NODE_14876_length_3363_cov_19.192563": { + "contig_id": "NODE_14876_length_3363_cov_19.192563", + "description": "", + "gc_content": 0.38924, + "length": 3363, + "md5": "b10d3a617231e0282fd9bc1a0df6d0fe", + "name": "NODE_14876_length_3363_cov_19.192563" + }, + "NODE_1487_length_29423_cov_117.210161": { + "contig_id": "NODE_1487_length_29423_cov_117.210161", + "description": "", + "gc_content": 0.64681, + "length": 29423, + "md5": "66fbd63cbe04aa927c9b91f85261f498", + "name": "NODE_1487_length_29423_cov_117.210161" + }, + "NODE_148_length_144947_cov_17.130228": { + "Ncount": 10, + "contig_id": "NODE_148_length_144947_cov_17.130228", + "description": "", + "gc_content": 0.40015, + "length": 144947, + "md5": "2b3efd1f7f73864638c4e6e42d33e07f", + "name": "NODE_148_length_144947_cov_17.130228" + }, + "NODE_14_length_428193_cov_602.559876": { + "Ncount": 110, + "contig_id": "NODE_14_length_428193_cov_602.559876", + "description": "", + "gc_content": 0.63326, + "length": 428193, + "md5": "fe02ab973c801cf43ae2e018bbd05651", + "name": "NODE_14_length_428193_cov_602.559876" + }, + "NODE_1501_length_29068_cov_15.998621": { + "contig_id": "NODE_1501_length_29068_cov_15.998621", + "description": "", + "gc_content": 0.49608, + "length": 29068, + "md5": "c68467c5adfdcc842308c23d4c372e3c", + "name": "NODE_1501_length_29068_cov_15.998621" + }, + "NODE_15053_length_3326_cov_31.182513": { + "Ncount": 10, + "contig_id": "NODE_15053_length_3326_cov_31.182513", + "description": "", + "gc_content": 0.58208, + "length": 3326, + "md5": "56c67308aceecf92b7a027b80b49273b", + "name": "NODE_15053_length_3326_cov_31.182513" + }, + "NODE_15072_length_3322_cov_20.016835": { + "contig_id": "NODE_15072_length_3322_cov_20.016835", + "description": "", + "gc_content": 0.34256, + "length": 3322, + "md5": "9f268ba7e74576836d85189d69be1a38", + "name": "NODE_15072_length_3322_cov_20.016835" + }, + "NODE_15085_length_3320_cov_85.869832": { + "contig_id": "NODE_15085_length_3320_cov_85.869832", + "description": "", + "gc_content": 0.33795, + "length": 3320, + "md5": "3a53950c9eb46aa3c36a6ccefa404111", + "name": "NODE_15085_length_3320_cov_85.869832" + }, + "NODE_150_length_144291_cov_19.611838": { + "Ncount": 10, + "contig_id": "NODE_150_length_144291_cov_19.611838", + "description": "", + "gc_content": 0.38923, + "length": 144291, + "md5": "5a0ab3f207f6b3bc2d0da0325ecb5465", + "name": "NODE_150_length_144291_cov_19.611838" + }, + "NODE_1515_length_28822_cov_139.827024": { + "contig_id": "NODE_1515_length_28822_cov_139.827024", + "description": "", + "gc_content": 0.38554, + "length": 28822, + "md5": "4d81b68380bd48ae2e991ff254be7a6e", + "name": "NODE_1515_length_28822_cov_139.827024" + }, + "NODE_15187_length_3299_cov_8.962700": { + "contig_id": "NODE_15187_length_3299_cov_8.962700", + "description": "", + "gc_content": 0.64717, + "length": 3299, + "md5": "cfaa1cbd5daa588d3c186f1383faca31", + "name": "NODE_15187_length_3299_cov_8.962700" + }, + "NODE_151_length_143838_cov_137.991355": { + "contig_id": "NODE_151_length_143838_cov_137.991355", + "description": "", + "gc_content": 0.38263, + "length": 143838, + "md5": "4d2dd80bfd9fba2a9aa380fdd050f9a8", + "name": "NODE_151_length_143838_cov_137.991355" + }, + "NODE_15234_length_3290_cov_11.550541": { + "contig_id": "NODE_15234_length_3290_cov_11.550541", + "description": "", + "gc_content": 0.40304, + "length": 3290, + "md5": "6aae70ebccbffeafa86773fff018ffda", + "name": "NODE_15234_length_3290_cov_11.550541" + }, + "NODE_15260_length_3285_cov_143.983282": { + "contig_id": "NODE_15260_length_3285_cov_143.983282", + "description": "", + "gc_content": 0.39209, + "length": 3285, + "md5": "1edb5bc482771cdc50487448a8e92a5f", + "name": "NODE_15260_length_3285_cov_143.983282" + }, + "NODE_153_length_143649_cov_144.194771": { + "Ncount": 10, + "contig_id": "NODE_153_length_143649_cov_144.194771", + "description": "", + "gc_content": 0.52984, + "length": 143649, + "md5": "ac13a12b129963cbb335169c40f6471e", + "name": "NODE_153_length_143649_cov_144.194771" + }, + "NODE_1540_length_28308_cov_17.568435": { + "contig_id": "NODE_1540_length_28308_cov_17.568435", + "description": "", + "gc_content": 0.38258, + "length": 28308, + "md5": "87041f60d9199b93a3b037b77c95f75f", + "name": "NODE_1540_length_28308_cov_17.568435" + }, + "NODE_1544_length_28256_cov_29.989468": { + "contig_id": "NODE_1544_length_28256_cov_29.989468", + "description": "", + "gc_content": 0.65993, + "length": 28256, + "md5": "b2e014b29fba3d205e3b0ff464274a4a", + "name": "NODE_1544_length_28256_cov_29.989468" + }, + "NODE_15453_length_3248_cov_16.550893": { + "contig_id": "NODE_15453_length_3248_cov_16.550893", + "description": "", + "gc_content": 0.64532, + "length": 3248, + "md5": "ff8424f23204b2ecd9ad73f87df55606", + "name": "NODE_15453_length_3248_cov_16.550893" + }, + "NODE_15454_length_3248_cov_7.074538": { + "contig_id": "NODE_15454_length_3248_cov_7.074538", + "description": "", + "gc_content": 0.68627, + "length": 3248, + "md5": "af50a087792efe49eca6544af59ec040", + "name": "NODE_15454_length_3248_cov_7.074538" + }, + "NODE_1548_length_28190_cov_29.570855": { + "contig_id": "NODE_1548_length_28190_cov_29.570855", + "description": "", + "gc_content": 0.64218, + "length": 28190, + "md5": "c91a2963ef49181eff1841fc497ae701", + "name": "NODE_1548_length_28190_cov_29.570855" + }, + "NODE_1553_length_28051_cov_148.154951": { + "Ncount": 100, + "contig_id": "NODE_1553_length_28051_cov_148.154951", + "description": "", + "gc_content": 0.36815, + "length": 28051, + "md5": "686bf64c81642b655bb7aac8447e03e3", + "name": "NODE_1553_length_28051_cov_148.154951" + }, + "NODE_15634_length_3215_cov_8.567722": { + "contig_id": "NODE_15634_length_3215_cov_8.567722", + "description": "", + "gc_content": 0.36765, + "length": 3215, + "md5": "8f129ed9faacdd93cff1a29ef7b14617", + "name": "NODE_15634_length_3215_cov_8.567722" + }, + "NODE_15837_length_3180_cov_25.395840": { + "contig_id": "NODE_15837_length_3180_cov_25.395840", + "description": "", + "gc_content": 0.60755, + "length": 3180, + "md5": "07bdf6ee3dee87bd66d4eb72781659e7", + "name": "NODE_15837_length_3180_cov_25.395840" + }, + "NODE_158_length_140790_cov_141.445831": { + "Ncount": 100, + "contig_id": "NODE_158_length_140790_cov_141.445831", + "description": "", + "gc_content": 0.38685, + "length": 140790, + "md5": "29e432f5c48c38ffa8c4bbcc9bd6f061", + "name": "NODE_158_length_140790_cov_141.445831" + }, + "NODE_1590_length_27644_cov_114.231433": { + "contig_id": "NODE_1590_length_27644_cov_114.231433", + "description": "", + "gc_content": 0.64141, + "length": 27644, + "md5": "c40dd2ec36d19c7b7176191fc4105985", + "name": "NODE_1590_length_27644_cov_114.231433" + }, + "NODE_16055_length_3138_cov_135.388258": { + "contig_id": "NODE_16055_length_3138_cov_135.388258", + "description": "", + "gc_content": 0.61185, + "length": 3138, + "md5": "3c25aa72c9af838f7c8d5c8ce97d377d", + "name": "NODE_16055_length_3138_cov_135.388258" + }, + "NODE_1612_length_27325_cov_135.700367": { + "contig_id": "NODE_1612_length_27325_cov_135.700367", + "description": "", + "gc_content": 0.39854, + "length": 27325, + "md5": "aabafb767921c5e96e8b00f6e2b4345b", + "name": "NODE_1612_length_27325_cov_135.700367" + }, + "NODE_1616_length_27244_cov_121.934312": { + "Ncount": 200, + "contig_id": "NODE_1616_length_27244_cov_121.934312", + "description": "", + "gc_content": 0.64752, + "length": 27244, + "md5": "911461d4144d0ab9ae767d56a94de59e", + "name": "NODE_1616_length_27244_cov_121.934312" + }, + "NODE_16221_length_3113_cov_28.085677": { + "contig_id": "NODE_16221_length_3113_cov_28.085677", + "description": "", + "gc_content": 0.62576, + "length": 3113, + "md5": "c4b2013c62e9fc6534460c9718bca619", + "name": "NODE_16221_length_3113_cov_28.085677" + }, + "NODE_162_length_138986_cov_562.017282": { + "contig_id": "NODE_162_length_138986_cov_562.017282", + "description": "", + "gc_content": 0.63634, + "length": 138986, + "md5": "015f6ee11a315bf999f4a84ddbde7fa8", + "name": "NODE_162_length_138986_cov_562.017282" + }, + "NODE_16331_length_3095_cov_11.212829": { + "contig_id": "NODE_16331_length_3095_cov_11.212829", + "description": "", + "gc_content": 0.41583, + "length": 3095, + "md5": "78eb56a040c11ae8caf9a9548576db5e", + "name": "NODE_16331_length_3095_cov_11.212829" + }, + "NODE_16335_length_3094_cov_72.553801": { + "contig_id": "NODE_16335_length_3094_cov_72.553801", + "description": "", + "gc_content": 0.33226, + "length": 3094, + "md5": "143c98511b76d6d6419fa0fb2f2832e4", + "name": "NODE_16335_length_3094_cov_72.553801" + }, + "NODE_16448_length_3075_cov_37.654636": { + "contig_id": "NODE_16448_length_3075_cov_37.654636", + "description": "", + "gc_content": 0.37138, + "length": 3075, + "md5": "6894148a315d24af188cb6643e9df606", + "name": "NODE_16448_length_3075_cov_37.654636" + }, + "NODE_1666_length_26483_cov_14.595089": { + "contig_id": "NODE_1666_length_26483_cov_14.595089", + "description": "", + "gc_content": 0.50115, + "length": 26483, + "md5": "76eebe3fd04428092579814a9168a8dc", + "name": "NODE_1666_length_26483_cov_14.595089" + }, + "NODE_1672_length_26401_cov_15.600812": { + "contig_id": "NODE_1672_length_26401_cov_15.600812", + "description": "", + "gc_content": 0.47044, + "length": 26401, + "md5": "8df6636a52f5fde15caab3a6e616bb79", + "name": "NODE_1672_length_26401_cov_15.600812" + }, + "NODE_16734_length_3031_cov_75.056452": { + "contig_id": "NODE_16734_length_3031_cov_75.056452", + "description": "", + "gc_content": 0.59188, + "length": 3031, + "md5": "6018a2867acbf0ddbc50a699f78e4886", + "name": "NODE_16734_length_3031_cov_75.056452" + }, + "NODE_16797_length_3021_cov_17.255226": { + "contig_id": "NODE_16797_length_3021_cov_17.255226", + "description": "", + "gc_content": 0.37471, + "length": 3021, + "md5": "b54e54238457f43ead6c172226ec7cfc", + "name": "NODE_16797_length_3021_cov_17.255226" + }, + "NODE_167_length_135226_cov_152.989332": { + "contig_id": "NODE_167_length_135226_cov_152.989332", + "description": "", + "gc_content": 0.50246, + "length": 135226, + "md5": "45cffd0eea654dd42766cbd2a8a6a981", + "name": "NODE_167_length_135226_cov_152.989332" + }, + "NODE_16828_length_3016_cov_26.027693": { + "contig_id": "NODE_16828_length_3016_cov_26.027693", + "description": "", + "gc_content": 0.70391, + "length": 3016, + "md5": "49ac1c64fce160a4527e92cff5b42c3b", + "name": "NODE_16828_length_3016_cov_26.027693" + }, + "NODE_168_length_135047_cov_592.623837": { + "contig_id": "NODE_168_length_135047_cov_592.623837", + "description": "", + "gc_content": 0.64262, + "length": 135047, + "md5": "ee8a9616c4fef949c7292fc549c94ee7", + "name": "NODE_168_length_135047_cov_592.623837" + }, + "NODE_16933_length_2997_cov_13.590755": { + "contig_id": "NODE_16933_length_2997_cov_13.590755", + "description": "", + "gc_content": 0.39606, + "length": 2997, + "md5": "a8da86f24402a1ed61ec417c189ebe2f", + "name": "NODE_16933_length_2997_cov_13.590755" + }, + "NODE_16966_length_2992_cov_35.441948": { + "contig_id": "NODE_16966_length_2992_cov_35.441948", + "description": "", + "gc_content": 0.3496, + "length": 2992, + "md5": "79d55aac9b2f1829ec4555960bb28ab5", + "name": "NODE_16966_length_2992_cov_35.441948" + }, + "NODE_169_length_134933_cov_29.104183": { + "Ncount": 400, + "contig_id": "NODE_169_length_134933_cov_29.104183", + "description": "", + "gc_content": 0.64061, + "length": 134933, + "md5": "22b0e921499d2c0448addf60693f8dd7", + "name": "NODE_169_length_134933_cov_29.104183" + }, + "NODE_16_length_403177_cov_139.594602": { + "Ncount": 100, + "contig_id": "NODE_16_length_403177_cov_139.594602", + "description": "", + "gc_content": 0.38806, + "length": 403177, + "md5": "ceb3bf60e86b3c90719cbd7308ea0298", + "name": "NODE_16_length_403177_cov_139.594602" + }, + "NODE_17021_length_2984_cov_95.954592": { + "contig_id": "NODE_17021_length_2984_cov_95.954592", + "description": "", + "gc_content": 0.63405, + "length": 2984, + "md5": "fc11bb5ee1568996f21fb4d0e45e66ef", + "name": "NODE_17021_length_2984_cov_95.954592" + }, + "NODE_1703_length_25886_cov_28.523092": { + "contig_id": "NODE_1703_length_25886_cov_28.523092", + "description": "", + "gc_content": 0.64348, + "length": 25886, + "md5": "cfc3733b79e21c9d6d9ffc52962a9015", + "name": "NODE_1703_length_25886_cov_28.523092" + }, + "NODE_17146_length_2964_cov_29.693022": { + "contig_id": "NODE_17146_length_2964_cov_29.693022", + "description": "", + "gc_content": 0.62787, + "length": 2964, + "md5": "e2cb0e73e74a04d33263869442971653", + "name": "NODE_17146_length_2964_cov_29.693022" + }, + "NODE_171_length_134096_cov_124.790064": { + "Ncount": 100, + "contig_id": "NODE_171_length_134096_cov_124.790064", + "description": "", + "gc_content": 0.65024, + "length": 134096, + "md5": "c571e5d6f0b9d2d4316a60c5464ee098", + "name": "NODE_171_length_134096_cov_124.790064" + }, + "NODE_17224_length_2953_cov_83.425811": { + "contig_id": "NODE_17224_length_2953_cov_83.425811", + "description": "", + "gc_content": 0.62479, + "length": 2953, + "md5": "5109d172224f155d2110c540e31d6816", + "name": "NODE_17224_length_2953_cov_83.425811" + }, + "NODE_172_length_133920_cov_545.394599": { + "Ncount": 10, + "contig_id": "NODE_172_length_133920_cov_545.394599", + "description": "", + "gc_content": 0.65467, + "length": 133920, + "md5": "b69665126fbe6913f699de774f46f5cd", + "name": "NODE_172_length_133920_cov_545.394599" + }, + "NODE_17409_length_2925_cov_31.701742": { + "contig_id": "NODE_17409_length_2925_cov_31.701742", + "description": "", + "gc_content": 0.54769, + "length": 2925, + "md5": "8d8ae4462f9fce031eb65c51b09cc96e", + "name": "NODE_17409_length_2925_cov_31.701742" + }, + "NODE_17551_length_2904_cov_18.234117": { + "contig_id": "NODE_17551_length_2904_cov_18.234117", + "description": "", + "gc_content": 0.6553, + "length": 2904, + "md5": "1fa51d1cca9ce0ab667f4827f26279f5", + "name": "NODE_17551_length_2904_cov_18.234117" + }, + "NODE_17576_length_2901_cov_13.493675": { + "contig_id": "NODE_17576_length_2901_cov_13.493675", + "description": "", + "gc_content": 0.63289, + "length": 2901, + "md5": "6f605ed8ba4538a7ff2aee1fecbffdbd", + "name": "NODE_17576_length_2901_cov_13.493675" + }, + "NODE_175_length_133245_cov_21.314190": { + "contig_id": "NODE_175_length_133245_cov_21.314190", + "description": "", + "gc_content": 0.40149, + "length": 133245, + "md5": "d5755a6e754e1b874df256d8d054a7c5", + "name": "NODE_175_length_133245_cov_21.314190" + }, + "NODE_1769_length_25081_cov_8.896028": { + "contig_id": "NODE_1769_length_25081_cov_8.896028", + "description": "", + "gc_content": 0.66987, + "length": 25081, + "md5": "5d1b21620912f0a87097f07c6ff81815", + "name": "NODE_1769_length_25081_cov_8.896028" + }, + "NODE_1782_length_24909_cov_9.287519": { + "contig_id": "NODE_1782_length_24909_cov_9.287519", + "description": "", + "gc_content": 0.66598, + "length": 24909, + "md5": "5305448eeeed7d65b6c587d3cf4a254b", + "name": "NODE_1782_length_24909_cov_9.287519" + }, + "NODE_179_length_132124_cov_17.804617": { + "Ncount": 100, + "contig_id": "NODE_179_length_132124_cov_17.804617", + "description": "", + "gc_content": 0.39578, + "length": 132124, + "md5": "cff1c20e94411403e9f0291abe283046", + "name": "NODE_179_length_132124_cov_17.804617" + }, + "NODE_180_length_132064_cov_15.023271": { + "contig_id": "NODE_180_length_132064_cov_15.023271", + "description": "", + "gc_content": 0.49057, + "length": 132064, + "md5": "8696ae2f8a5864a3cb4ca4c3725eb5d5", + "name": "NODE_180_length_132064_cov_15.023271" + }, + "NODE_1826_length_24411_cov_31.072015": { + "contig_id": "NODE_1826_length_24411_cov_31.072015", + "description": "", + "gc_content": 0.63643, + "length": 24411, + "md5": "7fe2656aecce7df3d726ac5a431b1aa6", + "name": "NODE_1826_length_24411_cov_31.072015" + }, + "NODE_18289_length_2805_cov_26.254182": { + "contig_id": "NODE_18289_length_2805_cov_26.254182", + "description": "", + "gc_content": 0.36435, + "length": 2805, + "md5": "60f11c78eae7eeb1f188a32af99b2346", + "name": "NODE_18289_length_2805_cov_26.254182" + }, + "NODE_1829_length_24326_cov_629.623996": { + "contig_id": "NODE_1829_length_24326_cov_629.623996", + "description": "", + "gc_content": 0.62785, + "length": 24326, + "md5": "c698febb9972e150cc733fe2487cd218", + "name": "NODE_1829_length_24326_cov_629.623996" + }, + "NODE_18309_length_2802_cov_30.676010": { + "contig_id": "NODE_18309_length_2802_cov_30.676010", + "description": "", + "gc_content": 0.63669, + "length": 2802, + "md5": "b76e4b31421b602acc5fe12d7c8c2452", + "name": "NODE_18309_length_2802_cov_30.676010" + }, + "NODE_18318_length_2800_cov_665.208379": { + "contig_id": "NODE_18318_length_2800_cov_665.208379", + "description": "", + "gc_content": 0.62036, + "length": 2800, + "md5": "58ffc5f80e8662c2d3810831ac642ac7", + "name": "NODE_18318_length_2800_cov_665.208379" + }, + "NODE_183_length_131550_cov_19.374767": { + "contig_id": "NODE_183_length_131550_cov_19.374767", + "description": "", + "gc_content": 0.40335, + "length": 131550, + "md5": "dcef32a05141fa4f2d2a4ee6a6cc4a88", + "name": "NODE_183_length_131550_cov_19.374767" + }, + "NODE_18433_length_2787_cov_5.058199": { + "contig_id": "NODE_18433_length_2787_cov_5.058199", + "description": "", + "gc_content": 0.63294, + "length": 2787, + "md5": "aba41fdbf19d72ff43686b16a4d25ccb", + "name": "NODE_18433_length_2787_cov_5.058199" + }, + "NODE_18438_length_2786_cov_16.510070": { + "contig_id": "NODE_18438_length_2786_cov_16.510070", + "description": "", + "gc_content": 0.61486, + "length": 2786, + "md5": "83f200bc36237e1d0b0a8532c6004512", + "name": "NODE_18438_length_2786_cov_16.510070" + }, + "NODE_1843_length_24171_cov_20.557514": { + "contig_id": "NODE_1843_length_24171_cov_20.557514", + "description": "", + "gc_content": 0.38356, + "length": 24171, + "md5": "f6f80a5c2ac30c82fd1405dbce732a92", + "name": "NODE_1843_length_24171_cov_20.557514" + }, + "NODE_184_length_130038_cov_125.959364": { + "Ncount": 400, + "contig_id": "NODE_184_length_130038_cov_125.959364", + "description": "", + "gc_content": 0.64347, + "length": 130038, + "md5": "00e79bce0de7b2b796ce6cf5dc01b3ff", + "name": "NODE_184_length_130038_cov_125.959364" + }, + "NODE_18510_length_2777_cov_21.845334": { + "contig_id": "NODE_18510_length_2777_cov_21.845334", + "description": "", + "gc_content": 0.35182, + "length": 2777, + "md5": "1cc72a7f8b83541e9815c3840fec5232", + "name": "NODE_18510_length_2777_cov_21.845334" + }, + "NODE_1857_length_24001_cov_84.576840": { + "contig_id": "NODE_1857_length_24001_cov_84.576840", + "description": "", + "gc_content": 0.62164, + "length": 24001, + "md5": "2d91c62a614c2d0cd44831508de69bfe", + "name": "NODE_1857_length_24001_cov_84.576840" + }, + "NODE_18587_length_2768_cov_96.088094": { + "contig_id": "NODE_18587_length_2768_cov_96.088094", + "description": "", + "gc_content": 0.36561, + "length": 2768, + "md5": "5be58c52a02b44c0c71abb05f45475e4", + "name": "NODE_18587_length_2768_cov_96.088094" + }, + "NODE_1858_length_23989_cov_26.531085": { + "contig_id": "NODE_1858_length_23989_cov_26.531085", + "description": "", + "gc_content": 0.39972, + "length": 23989, + "md5": "5b8a604f50de80ed284d878ce5b4e181", + "name": "NODE_1858_length_23989_cov_26.531085" + }, + "NODE_18609_length_2765_cov_32.278229": { + "contig_id": "NODE_18609_length_2765_cov_32.278229", + "description": "", + "gc_content": 0.62785, + "length": 2765, + "md5": "ab49549ff6e1329c4171357052c74c43", + "name": "NODE_18609_length_2765_cov_32.278229" + }, + "NODE_18629_length_2763_cov_507.609675": { + "contig_id": "NODE_18629_length_2763_cov_507.609675", + "description": "", + "gc_content": 0.5114, + "length": 2763, + "md5": "d2a2a2d935c8dac249d82201f72fb759", + "name": "NODE_18629_length_2763_cov_507.609675" + }, + "NODE_1865_length_23902_cov_30.896759": { + "contig_id": "NODE_1865_length_23902_cov_30.896759", + "description": "", + "gc_content": 0.64848, + "length": 23902, + "md5": "1e00be4c88836b250de41f593137dd5e", + "name": "NODE_1865_length_23902_cov_30.896759" + }, + "NODE_18693_length_2758_cov_69.943766": { + "contig_id": "NODE_18693_length_2758_cov_69.943766", + "description": "", + "gc_content": 0.63778, + "length": 2758, + "md5": "b6680ff851ef8e85c9eeb404278640f2", + "name": "NODE_18693_length_2758_cov_69.943766" + }, + "NODE_18694_length_2758_cov_23.451350": { + "contig_id": "NODE_18694_length_2758_cov_23.451350", + "description": "", + "gc_content": 0.40065, + "length": 2758, + "md5": "719e9fa1a61e8ddc3893fd04af42a080", + "name": "NODE_18694_length_2758_cov_23.451350" + }, + "NODE_186_length_129359_cov_636.942438": { + "Ncount": 10, + "contig_id": "NODE_186_length_129359_cov_636.942438", + "description": "", + "gc_content": 0.63884, + "length": 129359, + "md5": "1d8ac33e7d566aff4c85a24b88b4c828", + "name": "NODE_186_length_129359_cov_636.942438" + }, + "NODE_18703_length_2757_cov_16.057365": { + "contig_id": "NODE_18703_length_2757_cov_16.057365", + "description": "", + "gc_content": 0.54044, + "length": 2757, + "md5": "2583db852bb7303089371fc8683d12c1", + "name": "NODE_18703_length_2757_cov_16.057365" + }, + "NODE_1871_length_23793_cov_23.765608": { + "contig_id": "NODE_1871_length_23793_cov_23.765608", + "description": "", + "gc_content": 0.65187, + "length": 23793, + "md5": "68c2a9845ea8278cbdf4bdac8b401dd6", + "name": "NODE_1871_length_23793_cov_23.765608" + }, + "NODE_18736_length_2754_cov_38.499815": { + "contig_id": "NODE_18736_length_2754_cov_38.499815", + "description": "", + "gc_content": 0.45788, + "length": 2754, + "md5": "4562c308f0b42c21a4c0a6113649a5cb", + "name": "NODE_18736_length_2754_cov_38.499815" + }, + "NODE_18776_length_2748_cov_154.342369": { + "contig_id": "NODE_18776_length_2748_cov_154.342369", + "description": "", + "gc_content": 0.46507, + "length": 2748, + "md5": "62575b17742349cbcc5e71e44fb753f4", + "name": "NODE_18776_length_2748_cov_154.342369" + }, + "NODE_18819_length_2744_cov_202.729267": { + "contig_id": "NODE_18819_length_2744_cov_202.729267", + "description": "", + "gc_content": 0.48907, + "length": 2744, + "md5": "515262e1a98f05306aad6926752d9837", + "name": "NODE_18819_length_2744_cov_202.729267" + }, + "NODE_18872_length_2738_cov_31.739098": { + "contig_id": "NODE_18872_length_2738_cov_31.739098", + "description": "", + "gc_content": 0.41417, + "length": 2738, + "md5": "192f8d7e56781f93e19dae83969e474c", + "name": "NODE_18872_length_2738_cov_31.739098" + }, + "NODE_18880_length_2737_cov_77.130872": { + "contig_id": "NODE_18880_length_2737_cov_77.130872", + "description": "", + "gc_content": 0.63683, + "length": 2737, + "md5": "206c05e398aaab57aed8240045a508e6", + "name": "NODE_18880_length_2737_cov_77.130872" + }, + "NODE_18891_length_2736_cov_166.775457": { + "contig_id": "NODE_18891_length_2736_cov_166.775457", + "description": "", + "gc_content": 0.44627, + "length": 2736, + "md5": "244002f6f511a4650f25da1a993f9c97", + "name": "NODE_18891_length_2736_cov_166.775457" + }, + "NODE_188_length_128661_cov_32.004051": { + "contig_id": "NODE_188_length_128661_cov_32.004051", + "description": "", + "gc_content": 0.64933, + "length": 128661, + "md5": "5bc6173efe0494ee1db24df279297d06", + "name": "NODE_188_length_128661_cov_32.004051" + }, + "NODE_189_length_128656_cov_15.853695": { + "contig_id": "NODE_189_length_128656_cov_15.853695", + "description": "", + "gc_content": 0.40342, + "length": 128656, + "md5": "0e834476b9592f25735ae546bdb671f3", + "name": "NODE_189_length_128656_cov_15.853695" + }, + "NODE_1900_length_23477_cov_28.834899": { + "contig_id": "NODE_1900_length_23477_cov_28.834899", + "description": "", + "gc_content": 0.64591, + "length": 23477, + "md5": "be5e8125a55d835f272cc7940db7e3b7", + "name": "NODE_1900_length_23477_cov_28.834899" + }, + "NODE_19091_length_2712_cov_26.974784": { + "contig_id": "NODE_19091_length_2712_cov_26.974784", + "description": "", + "gc_content": 0.62942, + "length": 2712, + "md5": "61ac9b71305dd08cdbabc82faa8befe2", + "name": "NODE_19091_length_2712_cov_26.974784" + }, + "NODE_190_length_127978_cov_577.337062": { + "contig_id": "NODE_190_length_127978_cov_577.337062", + "description": "", + "gc_content": 0.64481, + "length": 127978, + "md5": "53ac6baba2ce190a3383154ae56ac35a", + "name": "NODE_190_length_127978_cov_577.337062" + }, + "NODE_19200_length_2698_cov_1616.952327": { + "contig_id": "NODE_19200_length_2698_cov_1616.952327", + "description": "", + "gc_content": 0.60489, + "length": 2698, + "md5": "4cfe440dc23002ac351a6903bd6a7dc6", + "name": "NODE_19200_length_2698_cov_1616.952327" + }, + "NODE_19201_length_2698_cov_37.102535": { + "contig_id": "NODE_19201_length_2698_cov_37.102535", + "description": "", + "gc_content": 0.52483, + "length": 2698, + "md5": "68c1c2d7848425a26230e3ddd3e52012", + "name": "NODE_19201_length_2698_cov_37.102535" + }, + "NODE_19324_length_2685_cov_33.368821": { + "contig_id": "NODE_19324_length_2685_cov_33.368821", + "description": "", + "gc_content": 0.67076, + "length": 2685, + "md5": "d266d7b863b9aba328c3f6e409466af8", + "name": "NODE_19324_length_2685_cov_33.368821" + }, + "NODE_19348_length_2681_cov_11.974486": { + "contig_id": "NODE_19348_length_2681_cov_11.974486", + "description": "", + "gc_content": 0.44536, + "length": 2681, + "md5": "3a7770cad001744a38f6996cab8d42c6", + "name": "NODE_19348_length_2681_cov_11.974486" + }, + "NODE_19373_length_2678_cov_77.566146": { + "contig_id": "NODE_19373_length_2678_cov_77.566146", + "description": "", + "gc_content": 0.36669, + "length": 2678, + "md5": "a59d842888c6b674997015294198dd40", + "name": "NODE_19373_length_2678_cov_77.566146" + }, + "NODE_19382_length_2677_cov_10.319603": { + "contig_id": "NODE_19382_length_2677_cov_10.319603", + "description": "", + "gc_content": 0.66418, + "length": 2677, + "md5": "9928293b9abecea7a2b4e802e42718d6", + "name": "NODE_19382_length_2677_cov_10.319603" + }, + "NODE_193_length_127741_cov_146.712341": { + "contig_id": "NODE_193_length_127741_cov_146.712341", + "description": "", + "gc_content": 0.50927, + "length": 127741, + "md5": "ed199b76924b270dffdcc44d56092121", + "name": "NODE_193_length_127741_cov_146.712341" + }, + "NODE_1940_length_22981_cov_32.568394": { + "contig_id": "NODE_1940_length_22981_cov_32.568394", + "description": "", + "gc_content": 0.65097, + "length": 22981, + "md5": "0b2594cfdd1bcfa7137f5837f53389bb", + "name": "NODE_1940_length_22981_cov_32.568394" + }, + "NODE_1951_length_22891_cov_14.763838": { + "contig_id": "NODE_1951_length_22891_cov_14.763838", + "description": "", + "gc_content": 0.49509, + "length": 22891, + "md5": "d473c15fe94c71705b8d26e03da96cc8", + "name": "NODE_1951_length_22891_cov_14.763838" + }, + "NODE_19526_length_2662_cov_120.446490": { + "contig_id": "NODE_19526_length_2662_cov_120.446490", + "description": "", + "gc_content": 0.35913, + "length": 2662, + "md5": "c1594e9b469a1ab43e16c1f182c7d561", + "name": "NODE_19526_length_2662_cov_120.446490" + }, + "NODE_196_length_126864_cov_144.754946": { + "contig_id": "NODE_196_length_126864_cov_144.754946", + "description": "", + "gc_content": 0.51792, + "length": 126864, + "md5": "46551e53b0747a42deb433fe03dd5934", + "name": "NODE_196_length_126864_cov_144.754946" + }, + "NODE_19805_length_2629_cov_9.435897": { + "contig_id": "NODE_19805_length_2629_cov_9.435897", + "description": "", + "gc_content": 0.68011, + "length": 2629, + "md5": "ad82d69cf37c82c895b769d1f490abab", + "name": "NODE_19805_length_2629_cov_9.435897" + }, + "NODE_1981_length_22658_cov_16.537053": { + "contig_id": "NODE_1981_length_22658_cov_16.537053", + "description": "", + "gc_content": 0.39505, + "length": 22658, + "md5": "b89620312938e8589c74baf45465f6c4", + "name": "NODE_1981_length_22658_cov_16.537053" + }, + "NODE_19866_length_2622_cov_1687.858979": { + "contig_id": "NODE_19866_length_2622_cov_1687.858979", + "description": "", + "gc_content": 0.61327, + "length": 2622, + "md5": "605a3e6072d9a0bacfc6c929542a2fcf", + "name": "NODE_19866_length_2622_cov_1687.858979" + }, + "NODE_1987_length_22624_cov_31.664008": { + "Ncount": 100, + "contig_id": "NODE_1987_length_22624_cov_31.664008", + "description": "", + "gc_content": 0.63287, + "length": 22624, + "md5": "501860bcda0d4fe79dbbd2588c2abbc8", + "name": "NODE_1987_length_22624_cov_31.664008" + }, + "NODE_19_length_369542_cov_149.371956": { + "Ncount": 100, + "contig_id": "NODE_19_length_369542_cov_149.371956", + "description": "", + "gc_content": 0.51124, + "length": 369542, + "md5": "bd22a6a7e58ffd0fc3efe246acae0ed4", + "name": "NODE_19_length_369542_cov_149.371956" + }, + "NODE_20166_length_2591_cov_106.585174": { + "contig_id": "NODE_20166_length_2591_cov_106.585174", + "description": "", + "gc_content": 0.3655, + "length": 2591, + "md5": "2129a2833e2e81153f76390a2f88839e", + "name": "NODE_20166_length_2591_cov_106.585174" + }, + "NODE_201_length_125344_cov_15.090998": { + "contig_id": "NODE_201_length_125344_cov_15.090998", + "description": "", + "gc_content": 0.49697, + "length": 125344, + "md5": "3406ee041afc61471eebad74ee51cb3e", + "name": "NODE_201_length_125344_cov_15.090998" + }, + "NODE_2021_length_22303_cov_19.278407": { + "contig_id": "NODE_2021_length_22303_cov_19.278407", + "description": "", + "gc_content": 0.39596, + "length": 22303, + "md5": "c8ae4a1d9a97d3d0f442046ec2f89585", + "name": "NODE_2021_length_22303_cov_19.278407" + }, + "NODE_2024_length_22288_cov_140.035488": { + "contig_id": "NODE_2024_length_22288_cov_140.035488", + "description": "", + "gc_content": 0.50538, + "length": 22288, + "md5": "68c558444f1ce83376f2f322bf9c6699", + "name": "NODE_2024_length_22288_cov_140.035488" + }, + "NODE_202_length_125251_cov_15.912897": { + "Ncount": 10, + "contig_id": "NODE_202_length_125251_cov_15.912897", + "description": "", + "gc_content": 0.40702, + "length": 125251, + "md5": "adebbb797c61a9b389e371de7e28732b", + "name": "NODE_202_length_125251_cov_15.912897" + }, + "NODE_20345_length_2571_cov_1645.415342": { + "contig_id": "NODE_20345_length_2571_cov_1645.415342", + "description": "", + "gc_content": 0.60249, + "length": 2571, + "md5": "5e46c63be8d486d2309dbf17ecaddd91", + "name": "NODE_20345_length_2571_cov_1645.415342" + }, + "NODE_203_length_125150_cov_14.346760": { + "contig_id": "NODE_203_length_125150_cov_14.346760", + "description": "", + "gc_content": 0.49377, + "length": 125150, + "md5": "59c792a90eca1a059567165ebd00c55d", + "name": "NODE_203_length_125150_cov_14.346760" + }, + "NODE_20414_length_2565_cov_5.152191": { + "contig_id": "NODE_20414_length_2565_cov_5.152191", + "description": "", + "gc_content": 0.68421, + "length": 2565, + "md5": "df6ad80bf9cc81487f80cc30fa68269e", + "name": "NODE_20414_length_2565_cov_5.152191" + }, + "NODE_2041_length_22180_cov_121.835028": { + "Ncount": 200, + "contig_id": "NODE_2041_length_22180_cov_121.835028", + "description": "", + "gc_content": 0.62516, + "length": 22180, + "md5": "4c25c30b52ef83d36eadd611d90669bf", + "name": "NODE_2041_length_22180_cov_121.835028" + }, + "NODE_20438_length_2562_cov_105.445552": { + "contig_id": "NODE_20438_length_2562_cov_105.445552", + "description": "", + "gc_content": 0.66198, + "length": 2562, + "md5": "6d470704b9d6750657873f9c3a660837", + "name": "NODE_20438_length_2562_cov_105.445552" + }, + "NODE_20454_length_2560_cov_53.267864": { + "contig_id": "NODE_20454_length_2560_cov_53.267864", + "description": "", + "gc_content": 0.61445, + "length": 2560, + "md5": "a2ab7058f11a2ea51121a1ff262a5999", + "name": "NODE_20454_length_2560_cov_53.267864" + }, + "NODE_20500_length_2554_cov_11.466186": { + "contig_id": "NODE_20500_length_2554_cov_11.466186", + "description": "", + "gc_content": 0.67933, + "length": 2554, + "md5": "52cc427e88f766af71b2d3f287186c5f", + "name": "NODE_20500_length_2554_cov_11.466186" + }, + "NODE_20572_length_2545_cov_18.901205": { + "contig_id": "NODE_20572_length_2545_cov_18.901205", + "description": "", + "gc_content": 0.57525, + "length": 2545, + "md5": "c207f9437c4ab42cbc5165b56649b998", + "name": "NODE_20572_length_2545_cov_18.901205" + }, + "NODE_205_length_123479_cov_17.235262": { + "Ncount": 10, + "contig_id": "NODE_205_length_123479_cov_17.235262", + "description": "", + "gc_content": 0.38904, + "length": 123479, + "md5": "f97400776c6c4755ba4ccb85ce2e4544", + "name": "NODE_205_length_123479_cov_17.235262" + }, + "NODE_20681_length_2532_cov_76.142915": { + "contig_id": "NODE_20681_length_2532_cov_76.142915", + "description": "", + "gc_content": 0.63784, + "length": 2532, + "md5": "95c716db1affcb2e3a2aa610a5cfefb4", + "name": "NODE_20681_length_2532_cov_76.142915" + }, + "NODE_20699_length_2530_cov_73.686061": { + "contig_id": "NODE_20699_length_2530_cov_73.686061", + "description": "", + "gc_content": 0.64664, + "length": 2530, + "md5": "8c38eff7220b08cba864095bd40f446a", + "name": "NODE_20699_length_2530_cov_73.686061" + }, + "NODE_206_length_122828_cov_148.107426": { + "contig_id": "NODE_206_length_122828_cov_148.107426", + "description": "", + "gc_content": 0.52381, + "length": 122828, + "md5": "e0a27675214b3494873ffc9eee603137", + "name": "NODE_206_length_122828_cov_148.107426" + }, + "NODE_20705_length_2529_cov_14.567906": { + "contig_id": "NODE_20705_length_2529_cov_14.567906", + "description": "", + "gc_content": 0.66667, + "length": 2529, + "md5": "5b9bff34e98a1e6eb09501ddf80ee54c", + "name": "NODE_20705_length_2529_cov_14.567906" + }, + "NODE_20862_length_2514_cov_123.695811": { + "Ncount": 100, + "contig_id": "NODE_20862_length_2514_cov_123.695811", + "description": "", + "gc_content": 0.58512, + "length": 2514, + "md5": "2ca721c8f711da887aa89fcf82cf6d7b", + "name": "NODE_20862_length_2514_cov_123.695811" + }, + "NODE_2094_length_21613_cov_129.374014": { + "contig_id": "NODE_2094_length_21613_cov_129.374014", + "description": "", + "gc_content": 0.64854, + "length": 21613, + "md5": "89109bd9d10379b63f1fb30f6cef7f03", + "name": "NODE_2094_length_21613_cov_129.374014" + }, + "NODE_209_length_121248_cov_15.258893": { + "contig_id": "NODE_209_length_121248_cov_15.258893", + "description": "", + "gc_content": 0.48802, + "length": 121248, + "md5": "afcac66a25a871b1b7c78b6185843ae0", + "name": "NODE_209_length_121248_cov_15.258893" + }, + "NODE_21060_length_2494_cov_20.006150": { + "contig_id": "NODE_21060_length_2494_cov_20.006150", + "description": "", + "gc_content": 0.38292, + "length": 2494, + "md5": "83a7540de3fbfa8abd5cf0b36c1f750a", + "name": "NODE_21060_length_2494_cov_20.006150" + }, + "NODE_210_length_121139_cov_143.656643": { + "contig_id": "NODE_210_length_121139_cov_143.656643", + "description": "", + "gc_content": 0.39, + "length": 121139, + "md5": "9015f02fa87821d35907fcb73959d83b", + "name": "NODE_210_length_121139_cov_143.656643" + }, + "NODE_21139_length_2486_cov_32.889346": { + "contig_id": "NODE_21139_length_2486_cov_32.889346", + "description": "", + "gc_content": 0.64079, + "length": 2486, + "md5": "59f8cdf233b4ac588f02926cb4147c78", + "name": "NODE_21139_length_2486_cov_32.889346" + }, + "NODE_2114_length_21380_cov_33.128581": { + "contig_id": "NODE_2114_length_21380_cov_33.128581", + "description": "", + "gc_content": 0.64471, + "length": 21380, + "md5": "f9a9233dbb4cfbc5b2dd6e5b282c0bd3", + "name": "NODE_2114_length_21380_cov_33.128581" + }, + "NODE_211_length_120816_cov_152.852071": { + "contig_id": "NODE_211_length_120816_cov_152.852071", + "description": "", + "gc_content": 0.51144, + "length": 120816, + "md5": "b7845b10b5b6a593894c48824af69ba0", + "name": "NODE_211_length_120816_cov_152.852071" + }, + "NODE_2123_length_21252_cov_123.174789": { + "contig_id": "NODE_2123_length_21252_cov_123.174789", + "description": "", + "gc_content": 0.64775, + "length": 21252, + "md5": "2f1fa4170ffc2ecefb1957b62050f437", + "name": "NODE_2123_length_21252_cov_123.174789" + }, + "NODE_212_length_120224_cov_9.172449": { + "Ncount": 100, + "contig_id": "NODE_212_length_120224_cov_9.172449", + "description": "", + "gc_content": 0.67688, + "length": 120224, + "md5": "659fcfb677fe8cb4718e51db2628a579", + "name": "NODE_212_length_120224_cov_9.172449" + }, + "NODE_21312_length_2470_cov_30.257557": { + "contig_id": "NODE_21312_length_2470_cov_30.257557", + "description": "", + "gc_content": 0.63482, + "length": 2470, + "md5": "22b84a8d0d216339640d885f18d2a849", + "name": "NODE_21312_length_2470_cov_30.257557" + }, + "NODE_2131_length_21181_cov_127.316908": { + "contig_id": "NODE_2131_length_21181_cov_127.316908", + "description": "", + "gc_content": 0.35064, + "length": 21181, + "md5": "14705763fbcd8729dc2d9824815f0a0b", + "name": "NODE_2131_length_21181_cov_127.316908" + }, + "NODE_21449_length_2458_cov_32.880150": { + "contig_id": "NODE_21449_length_2458_cov_32.880150", + "description": "", + "gc_content": 0.64605, + "length": 2458, + "md5": "6be20dbbac680377aa9121e70b1d2ac0", + "name": "NODE_21449_length_2458_cov_32.880150" + }, + "NODE_21472_length_2455_cov_21.988333": { + "contig_id": "NODE_21472_length_2455_cov_21.988333", + "description": "", + "gc_content": 0.41222, + "length": 2455, + "md5": "3465614b571ac2c5be8067c01f67e82b", + "name": "NODE_21472_length_2455_cov_21.988333" + }, + "NODE_214_length_120175_cov_136.545521": { + "contig_id": "NODE_214_length_120175_cov_136.545521", + "description": "", + "gc_content": 0.38629, + "length": 120175, + "md5": "411ea797a18191e19e3c94c958e78e55", + "name": "NODE_214_length_120175_cov_136.545521" + }, + "NODE_2154_length_21011_cov_29.233823": { + "contig_id": "NODE_2154_length_21011_cov_29.233823", + "description": "", + "gc_content": 0.64062, + "length": 21011, + "md5": "18f2660439051eebdc3ac9655de76ee5", + "name": "NODE_2154_length_21011_cov_29.233823" + }, + "NODE_21600_length_2445_cov_104.370711": { + "contig_id": "NODE_21600_length_2445_cov_104.370711", + "description": "", + "gc_content": 0.65153, + "length": 2445, + "md5": "73bc99563d2be72a7a5aff116ef2d920", + "name": "NODE_21600_length_2445_cov_104.370711" + }, + "NODE_21634_length_2441_cov_82.142498": { + "contig_id": "NODE_21634_length_2441_cov_82.142498", + "description": "", + "gc_content": 0.38058, + "length": 2441, + "md5": "87d25b1373d7fb26f93a50cd60676e3e", + "name": "NODE_21634_length_2441_cov_82.142498" + }, + "NODE_21643_length_2440_cov_30.818868": { + "contig_id": "NODE_21643_length_2440_cov_30.818868", + "description": "", + "gc_content": 0.66066, + "length": 2440, + "md5": "bcce3bcd01580314243e66cd42f17256", + "name": "NODE_21643_length_2440_cov_30.818868" + }, + "NODE_21644_length_2440_cov_13.709015": { + "contig_id": "NODE_21644_length_2440_cov_13.709015", + "description": "", + "gc_content": 0.63115, + "length": 2440, + "md5": "c457e1ea439ad6bacf7d3cbdf49b2d6d", + "name": "NODE_21644_length_2440_cov_13.709015" + }, + "NODE_2169_length_20871_cov_28.733907": { + "contig_id": "NODE_2169_length_20871_cov_28.733907", + "description": "", + "gc_content": 0.63888, + "length": 20871, + "md5": "1744ac49e576aab1295b71dce0e6f800", + "name": "NODE_2169_length_20871_cov_28.733907" + }, + "NODE_216_length_119933_cov_165.404553": { + "contig_id": "NODE_216_length_119933_cov_165.404553", + "description": "", + "gc_content": 0.48752, + "length": 119933, + "md5": "5ac2672a8816ff8447c0b9c524171bfd", + "name": "NODE_216_length_119933_cov_165.404553" + }, + "NODE_21726_length_2432_cov_41.725284": { + "contig_id": "NODE_21726_length_2432_cov_41.725284", + "description": "", + "gc_content": 0.65419, + "length": 2432, + "md5": "f453270a274667562d85ad62a4955f2c", + "name": "NODE_21726_length_2432_cov_41.725284" + }, + "NODE_218_length_119186_cov_14.999673": { + "contig_id": "NODE_218_length_119186_cov_14.999673", + "description": "", + "gc_content": 0.4915, + "length": 119186, + "md5": "56a1dd15ee50ae84dcd7042c301a8116", + "name": "NODE_218_length_119186_cov_14.999673" + }, + "NODE_21910_length_2415_cov_73.944915": { + "contig_id": "NODE_21910_length_2415_cov_73.944915", + "description": "", + "gc_content": 0.35942, + "length": 2415, + "md5": "98bce8ee509a2c60a7393fe53c4ca140", + "name": "NODE_21910_length_2415_cov_73.944915" + }, + "NODE_21957_length_2411_cov_14.854839": { + "contig_id": "NODE_21957_length_2411_cov_14.854839", + "description": "", + "gc_content": 0.34343, + "length": 2411, + "md5": "56bd42c9d44828566065c90183ec47fe", + "name": "NODE_21957_length_2411_cov_14.854839" + }, + "NODE_2197_length_20546_cov_26.578742": { + "contig_id": "NODE_2197_length_20546_cov_26.578742", + "description": "", + "gc_content": 0.39857, + "length": 20546, + "md5": "ba3c4cdf1dd42b8e256dad7518f333f9", + "name": "NODE_2197_length_20546_cov_26.578742" + }, + "NODE_21993_length_2408_cov_30.219720": { + "contig_id": "NODE_21993_length_2408_cov_30.219720", + "description": "", + "gc_content": 0.65864, + "length": 2408, + "md5": "3f71a80f3bef24eeccc004da3df712b2", + "name": "NODE_21993_length_2408_cov_30.219720" + }, + "NODE_21_length_350571_cov_150.902159": { + "contig_id": "NODE_21_length_350571_cov_150.902159", + "description": "", + "gc_content": 0.51789, + "length": 350571, + "md5": "a82c25ebdfb659918d2c6f4d86e59dc8", + "name": "NODE_21_length_350571_cov_150.902159" + }, + "NODE_22074_length_2401_cov_66.304774": { + "contig_id": "NODE_22074_length_2401_cov_66.304774", + "description": "", + "gc_content": 0.34694, + "length": 2401, + "md5": "85a2a5dd4046280f01b14460ff325876", + "name": "NODE_22074_length_2401_cov_66.304774" + }, + "NODE_22075_length_2401_cov_50.753623": { + "contig_id": "NODE_22075_length_2401_cov_50.753623", + "description": "", + "gc_content": 0.64307, + "length": 2401, + "md5": "6742d5284e6bf1fbddc1008e1b60be79", + "name": "NODE_22075_length_2401_cov_50.753623" + }, + "NODE_22087_length_2400_cov_1776.462260": { + "contig_id": "NODE_22087_length_2400_cov_1776.462260", + "description": "", + "gc_content": 0.62, + "length": 2400, + "md5": "937c474d331edc9334c610bfe3d57017", + "name": "NODE_22087_length_2400_cov_1776.462260" + }, + "NODE_22303_length_2382_cov_106.602922": { + "contig_id": "NODE_22303_length_2382_cov_106.602922", + "description": "", + "gc_content": 0.67086, + "length": 2382, + "md5": "0da2462ef325456f0ee6782a01149250", + "name": "NODE_22303_length_2382_cov_106.602922" + }, + "NODE_2234_length_20258_cov_16.150027": { + "contig_id": "NODE_2234_length_20258_cov_16.150027", + "description": "", + "gc_content": 0.40384, + "length": 20258, + "md5": "9ff8a5a4092db9fb47cfb7dc144020c5", + "name": "NODE_2234_length_20258_cov_16.150027" + }, + "NODE_22376_length_2376_cov_12.784576": { + "contig_id": "NODE_22376_length_2376_cov_12.784576", + "description": "", + "gc_content": 0.38552, + "length": 2376, + "md5": "f786c0ac3dc8d809b8697217699d685b", + "name": "NODE_22376_length_2376_cov_12.784576" + }, + "NODE_224_length_117235_cov_16.299206": { + "contig_id": "NODE_224_length_117235_cov_16.299206", + "description": "", + "gc_content": 0.47304, + "length": 117235, + "md5": "39d6c659f6c5c60a2045985334a230df", + "name": "NODE_224_length_117235_cov_16.299206" + }, + "NODE_22520_length_2364_cov_7.979645": { + "contig_id": "NODE_22520_length_2364_cov_7.979645", + "description": "", + "gc_content": 0.68316, + "length": 2364, + "md5": "b9746150c81b1e379000e8e621dad094", + "name": "NODE_22520_length_2364_cov_7.979645" + }, + "NODE_22528_length_2363_cov_65.252600": { + "contig_id": "NODE_22528_length_2363_cov_65.252600", + "description": "", + "gc_content": 0.34236, + "length": 2363, + "md5": "5e00324d39c89adb68d58a40898fd151", + "name": "NODE_22528_length_2363_cov_65.252600" + }, + "NODE_22547_length_2361_cov_13.968777": { + "contig_id": "NODE_22547_length_2361_cov_13.968777", + "description": "", + "gc_content": 0.42948, + "length": 2361, + "md5": "f6e8e4d5f708decaa96adc75bc6c99bf", + "name": "NODE_22547_length_2361_cov_13.968777" + }, + "NODE_225_length_117118_cov_133.096674": { + "contig_id": "NODE_225_length_117118_cov_133.096674", + "description": "", + "gc_content": 0.39295, + "length": 117118, + "md5": "67d76a3cba24f4f449dce1157b351905", + "name": "NODE_225_length_117118_cov_133.096674" + }, + "NODE_2264_length_20025_cov_28.201552": { + "contig_id": "NODE_2264_length_20025_cov_28.201552", + "description": "", + "gc_content": 0.6404, + "length": 20025, + "md5": "6fef3b910a0da045be5b20603a4d53d9", + "name": "NODE_2264_length_20025_cov_28.201552" + }, + "NODE_22724_length_2346_cov_71.536010": { + "contig_id": "NODE_22724_length_2346_cov_71.536010", + "description": "", + "gc_content": 0.315, + "length": 2346, + "md5": "61b8f8031fefd331e0e7ebca84326b3d", + "name": "NODE_22724_length_2346_cov_71.536010" + }, + "NODE_22820_length_2338_cov_35.425756": { + "contig_id": "NODE_22820_length_2338_cov_35.425756", + "description": "", + "gc_content": 0.62789, + "length": 2338, + "md5": "a08eeed2a4d43bee7017c213b92c3972", + "name": "NODE_22820_length_2338_cov_35.425756" + }, + "NODE_22834_length_2337_cov_9.636722": { + "contig_id": "NODE_22834_length_2337_cov_9.636722", + "description": "", + "gc_content": 0.33718, + "length": 2337, + "md5": "8958de94b2a7e2d2713c79cff2eeb885", + "name": "NODE_22834_length_2337_cov_9.636722" + }, + "NODE_2287_length_19856_cov_166.299328": { + "contig_id": "NODE_2287_length_19856_cov_166.299328", + "description": "", + "gc_content": 0.50453, + "length": 19856, + "md5": "48ffba25f1a615468ab132ee2470462c", + "name": "NODE_2287_length_19856_cov_166.299328" + }, + "NODE_2292_length_19808_cov_29.671949": { + "Ncount": 100, + "contig_id": "NODE_2292_length_19808_cov_29.671949", + "description": "", + "gc_content": 0.65554, + "length": 19808, + "md5": "957353668df85c10e3a65d77b8d56e75", + "name": "NODE_2292_length_19808_cov_29.671949" + }, + "NODE_2295_length_19773_cov_112.840298": { + "contig_id": "NODE_2295_length_19773_cov_112.840298", + "description": "", + "gc_content": 0.63061, + "length": 19773, + "md5": "b65b4d2eb44929666f1fb4643cb97640", + "name": "NODE_2295_length_19773_cov_112.840298" + }, + "NODE_22992_length_2325_cov_160.096035": { + "contig_id": "NODE_22992_length_2325_cov_160.096035", + "description": "", + "gc_content": 0.3372, + "length": 2325, + "md5": "7f6dca3ec38155b5bc0c3f2e80d12c09", + "name": "NODE_22992_length_2325_cov_160.096035" + }, + "NODE_22_length_339019_cov_146.931987": { + "contig_id": "NODE_22_length_339019_cov_146.931987", + "description": "", + "gc_content": 0.51248, + "length": 339019, + "md5": "a5f90d563884abaf53bc44da0662e13e", + "name": "NODE_22_length_339019_cov_146.931987" + }, + "NODE_2301_length_19716_cov_13.865826": { + "Ncount": 100, + "contig_id": "NODE_2301_length_19716_cov_13.865826", + "description": "", + "gc_content": 0.49046, + "length": 19716, + "md5": "d89b2e55295d84dd3a1f31f6b9b1eb55", + "name": "NODE_2301_length_19716_cov_13.865826" + }, + "NODE_23090_length_2317_cov_289.395225": { + "contig_id": "NODE_23090_length_2317_cov_289.395225", + "description": "", + "gc_content": 0.48425, + "length": 2317, + "md5": "cbe5404b7508e5e074e72e590b6a1938", + "name": "NODE_23090_length_2317_cov_289.395225" + }, + "NODE_2315_length_19592_cov_9.143471": { + "contig_id": "NODE_2315_length_19592_cov_9.143471", + "description": "", + "gc_content": 0.65557, + "length": 19592, + "md5": "1c3c871e7176e0ee211ad0d35f9919cd", + "name": "NODE_2315_length_19592_cov_9.143471" + }, + "NODE_23175_length_2310_cov_1695.530820": { + "contig_id": "NODE_23175_length_2310_cov_1695.530820", + "description": "", + "gc_content": 0.63896, + "length": 2310, + "md5": "a3b68a12468be3a27a3f42587b7efbc1", + "name": "NODE_23175_length_2310_cov_1695.530820" + }, + "NODE_2318_length_19558_cov_130.422499": { + "contig_id": "NODE_2318_length_19558_cov_130.422499", + "description": "", + "gc_content": 0.63202, + "length": 19558, + "md5": "42a58a77224bda18b7ca2ccc2db52797", + "name": "NODE_2318_length_19558_cov_130.422499" + }, + "NODE_231_length_114862_cov_18.500910": { + "contig_id": "NODE_231_length_114862_cov_18.500910", + "description": "", + "gc_content": 0.40602, + "length": 114862, + "md5": "fe49f5adba9f790ff834f0086ad98e95", + "name": "NODE_231_length_114862_cov_18.500910" + }, + "NODE_23221_length_2307_cov_14.066163": { + "contig_id": "NODE_23221_length_2307_cov_14.066163", + "description": "", + "gc_content": 0.53273, + "length": 2307, + "md5": "9e1150dd6f712a01ba94a58a3b228964", + "name": "NODE_23221_length_2307_cov_14.066163" + }, + "NODE_23248_length_2305_cov_91.095111": { + "contig_id": "NODE_23248_length_2305_cov_91.095111", + "description": "", + "gc_content": 0.59913, + "length": 2305, + "md5": "3bfff33175900e01734557f46a05d1b9", + "name": "NODE_23248_length_2305_cov_91.095111" + }, + "NODE_232_length_114784_cov_136.072231": { + "contig_id": "NODE_232_length_114784_cov_136.072231", + "description": "", + "gc_content": 0.3914, + "length": 114784, + "md5": "beaa271e402b426cb3f5e1ffada114b4", + "name": "NODE_232_length_114784_cov_136.072231" + }, + "NODE_23324_length_2299_cov_10.996435": { + "contig_id": "NODE_23324_length_2299_cov_10.996435", + "description": "", + "gc_content": 0.31448, + "length": 2299, + "md5": "0138db32c0a9ad6651b1c0bfb724891e", + "name": "NODE_23324_length_2299_cov_10.996435" + }, + "NODE_2334_length_19474_cov_9.178228": { + "contig_id": "NODE_2334_length_19474_cov_9.178228", + "description": "", + "gc_content": 0.6294, + "length": 19474, + "md5": "52b62a931384588e4fcd17660233f9b6", + "name": "NODE_2334_length_19474_cov_9.178228" + }, + "NODE_23356_length_2296_cov_143.576528": { + "contig_id": "NODE_23356_length_2296_cov_143.576528", + "description": "", + "gc_content": 0.46951, + "length": 2296, + "md5": "f34bf44aa94b05975dfc8b5c17687fca", + "name": "NODE_23356_length_2296_cov_143.576528" + }, + "NODE_234_length_113993_cov_16.541207": { + "contig_id": "NODE_234_length_113993_cov_16.541207", + "description": "", + "gc_content": 0.49412, + "length": 113993, + "md5": "220c5aecee23f3136734226adc84eb08", + "name": "NODE_234_length_113993_cov_16.541207" + }, + "NODE_23514_length_2284_cov_75.495738": { + "contig_id": "NODE_23514_length_2284_cov_75.495738", + "description": "", + "gc_content": 0.39842, + "length": 2284, + "md5": "7d5abc00d79764ccfd47f4f0f26a19a1", + "name": "NODE_23514_length_2284_cov_75.495738" + }, + "NODE_23515_length_2284_cov_62.226110": { + "contig_id": "NODE_23515_length_2284_cov_62.226110", + "description": "", + "gc_content": 0.63704, + "length": 2284, + "md5": "cc56baf1a6397fbc49d33f1de6ee5712", + "name": "NODE_23515_length_2284_cov_62.226110" + }, + "NODE_235_length_113953_cov_29.965513": { + "contig_id": "NODE_235_length_113953_cov_29.965513", + "description": "", + "gc_content": 0.64437, + "length": 113953, + "md5": "243d21bd84f0b0854ff2f7e0e0516804", + "name": "NODE_235_length_113953_cov_29.965513" + }, + "NODE_2362_length_19236_cov_138.785048": { + "contig_id": "NODE_2362_length_19236_cov_138.785048", + "description": "", + "gc_content": 0.38303, + "length": 19236, + "md5": "4779f3998170cabb9a672b85427b0afb", + "name": "NODE_2362_length_19236_cov_138.785048" + }, + "NODE_2381_length_19117_cov_15.609118": { + "contig_id": "NODE_2381_length_19117_cov_15.609118", + "description": "", + "gc_content": 0.32772, + "length": 19117, + "md5": "17f31271e3cb12a3da0bdcc5034493be", + "name": "NODE_2381_length_19117_cov_15.609118" + }, + "NODE_23978_length_2249_cov_78.826345": { + "contig_id": "NODE_23978_length_2249_cov_78.826345", + "description": "", + "gc_content": 0.65273, + "length": 2249, + "md5": "82f0cd7b06abad54b5ba00b8804f9ce8", + "name": "NODE_23978_length_2249_cov_78.826345" + }, + "NODE_2398_length_19024_cov_30.808213": { + "Ncount": 200, + "contig_id": "NODE_2398_length_19024_cov_30.808213", + "description": "", + "gc_content": 0.63877, + "length": 19024, + "md5": "86dc98f081bf79fe6b17dd01d9b988fb", + "name": "NODE_2398_length_19024_cov_30.808213" + }, + "NODE_239_length_113581_cov_8.696986": { + "Ncount": 100, + "contig_id": "NODE_239_length_113581_cov_8.696986", + "description": "", + "gc_content": 0.65862, + "length": 113581, + "md5": "5386cdba4c4f9b403437712a85424c3f", + "name": "NODE_239_length_113581_cov_8.696986" + }, + "NODE_2401_length_18970_cov_31.233518": { + "contig_id": "NODE_2401_length_18970_cov_31.233518", + "description": "", + "gc_content": 0.64475, + "length": 18970, + "md5": "68cf29ee2b1e2ebb95733a88c10ef5da", + "name": "NODE_2401_length_18970_cov_31.233518" + }, + "NODE_24072_length_2243_cov_112.176417": { + "contig_id": "NODE_24072_length_2243_cov_112.176417", + "description": "", + "gc_content": 0.63085, + "length": 2243, + "md5": "2cc04e8d8b141a1dea3b0394e74e2d23", + "name": "NODE_24072_length_2243_cov_112.176417" + }, + "NODE_24139_length_2237_cov_94.315307": { + "contig_id": "NODE_24139_length_2237_cov_94.315307", + "description": "", + "gc_content": 0.36209, + "length": 2237, + "md5": "c7c8738f5719a9951b208a1de8da1c81", + "name": "NODE_24139_length_2237_cov_94.315307" + }, + "NODE_24199_length_2233_cov_76.191460": { + "contig_id": "NODE_24199_length_2233_cov_76.191460", + "description": "", + "gc_content": 0.34707, + "length": 2233, + "md5": "ef476a362496d2049b339cfbbf5d2253", + "name": "NODE_24199_length_2233_cov_76.191460" + }, + "NODE_24200_length_2233_cov_33.382002": { + "contig_id": "NODE_24200_length_2233_cov_33.382002", + "description": "", + "gc_content": 0.33766, + "length": 2233, + "md5": "a16045af8ea03a1e13e818814a6670b6", + "name": "NODE_24200_length_2233_cov_33.382002" + }, + "NODE_24211_length_2232_cov_11.887919": { + "contig_id": "NODE_24211_length_2232_cov_11.887919", + "description": "", + "gc_content": 0.66846, + "length": 2232, + "md5": "1b2aa681149bf79d1076d78b9aea402f", + "name": "NODE_24211_length_2232_cov_11.887919" + }, + "NODE_24270_length_2227_cov_41.495856": { + "contig_id": "NODE_24270_length_2227_cov_41.495856", + "description": "", + "gc_content": 0.61608, + "length": 2227, + "md5": "66956f568246eacc3cfe5ffe55aca56c", + "name": "NODE_24270_length_2227_cov_41.495856" + }, + "NODE_24411_length_2215_cov_15.628704": { + "contig_id": "NODE_24411_length_2215_cov_15.628704", + "description": "", + "gc_content": 0.38781, + "length": 2215, + "md5": "a73672703ce14e8f83c594fcfaf227e0", + "name": "NODE_24411_length_2215_cov_15.628704" + }, + "NODE_24505_length_2207_cov_58.144517": { + "contig_id": "NODE_24505_length_2207_cov_58.144517", + "description": "", + "gc_content": 0.66153, + "length": 2207, + "md5": "3998676374c20e64a32b954339fbf50b", + "name": "NODE_24505_length_2207_cov_58.144517" + }, + "NODE_245_length_112932_cov_135.593540": { + "contig_id": "NODE_245_length_112932_cov_135.593540", + "description": "", + "gc_content": 0.38977, + "length": 112932, + "md5": "58096bee56970104e3398a7516ccfd0f", + "name": "NODE_245_length_112932_cov_135.593540" + }, + "NODE_246_length_112673_cov_113.474240": { + "Ncount": 200, + "contig_id": "NODE_246_length_112673_cov_113.474240", + "description": "", + "gc_content": 0.6584, + "length": 112673, + "md5": "84318c56bda192f6d772e1db54441254", + "name": "NODE_246_length_112673_cov_113.474240" + }, + "NODE_24739_length_2190_cov_167.254801": { + "contig_id": "NODE_24739_length_2190_cov_167.254801", + "description": "", + "gc_content": 0.42374, + "length": 2190, + "md5": "81ae4ce7ac4c10dab4661595a7c613af", + "name": "NODE_24739_length_2190_cov_167.254801" + }, + "NODE_24766_length_2188_cov_34.692452": { + "contig_id": "NODE_24766_length_2188_cov_34.692452", + "description": "", + "gc_content": 0.67962, + "length": 2188, + "md5": "ba910974081ca4e210ecf71e4e295331", + "name": "NODE_24766_length_2188_cov_34.692452" + }, + "NODE_247_length_112285_cov_124.510683": { + "Ncount": 400, + "contig_id": "NODE_247_length_112285_cov_124.510683", + "description": "", + "gc_content": 0.64819, + "length": 112285, + "md5": "fa192fbbc749e6b669fcc98b9f386546", + "name": "NODE_247_length_112285_cov_124.510683" + }, + "NODE_24834_length_2183_cov_47.104323": { + "contig_id": "NODE_24834_length_2183_cov_47.104323", + "description": "", + "gc_content": 0.60834, + "length": 2183, + "md5": "48946ff4d9e1a76c32876d0bb74ac5d2", + "name": "NODE_24834_length_2183_cov_47.104323" + }, + "NODE_24835_length_2183_cov_20.057331": { + "contig_id": "NODE_24835_length_2183_cov_20.057331", + "description": "", + "gc_content": 0.33761, + "length": 2183, + "md5": "a593e4f325bf687c45ad50e1deb2b227", + "name": "NODE_24835_length_2183_cov_20.057331" + }, + "NODE_24869_length_2180_cov_150.608471": { + "contig_id": "NODE_24869_length_2180_cov_150.608471", + "description": "", + "gc_content": 0.36468, + "length": 2180, + "md5": "e48a8f2c07515e00fba4479ed6707202", + "name": "NODE_24869_length_2180_cov_150.608471" + }, + "NODE_248_length_112192_cov_149.328990": { + "contig_id": "NODE_248_length_112192_cov_149.328990", + "description": "", + "gc_content": 0.52424, + "length": 112192, + "md5": "f906ebe4a1ba078cabeb9996aad94388", + "name": "NODE_248_length_112192_cov_149.328990" + }, + "NODE_24915_length_2176_cov_24.019802": { + "contig_id": "NODE_24915_length_2176_cov_24.019802", + "description": "", + "gc_content": 0.63649, + "length": 2176, + "md5": "7ccf17a2c0cfb52b881a56e134c6bf5a", + "name": "NODE_24915_length_2176_cov_24.019802" + }, + "NODE_24944_length_2174_cov_26.401605": { + "contig_id": "NODE_24944_length_2174_cov_26.401605", + "description": "", + "gc_content": 0.55014, + "length": 2174, + "md5": "ad2fe03c3724a9ccb50f887ef4aed53d", + "name": "NODE_24944_length_2174_cov_26.401605" + }, + "NODE_24963_length_2173_cov_9.739849": { + "contig_id": "NODE_24963_length_2173_cov_9.739849", + "description": "", + "gc_content": 0.34929, + "length": 2173, + "md5": "bec9282c706a9a5f8d30d8db08f3dba6", + "name": "NODE_24963_length_2173_cov_9.739849" + }, + "NODE_25003_length_2170_cov_29.317258": { + "contig_id": "NODE_25003_length_2170_cov_29.317258", + "description": "", + "gc_content": 0.67235, + "length": 2170, + "md5": "12e2bc97ca5dc40943c9daaa4f1c99e5", + "name": "NODE_25003_length_2170_cov_29.317258" + }, + "NODE_25066_length_2165_cov_35.720853": { + "contig_id": "NODE_25066_length_2165_cov_35.720853", + "description": "", + "gc_content": 0.37783, + "length": 2165, + "md5": "aa3dde4ae07b0c7e3cb0682eb6ef602e", + "name": "NODE_25066_length_2165_cov_35.720853" + }, + "NODE_25122_length_2161_cov_26.171890": { + "contig_id": "NODE_25122_length_2161_cov_26.171890", + "description": "", + "gc_content": 0.61407, + "length": 2161, + "md5": "db5027cb2fe1b4c70c07215f91e54afe", + "name": "NODE_25122_length_2161_cov_26.171890" + }, + "NODE_25123_length_2161_cov_25.907407": { + "contig_id": "NODE_25123_length_2161_cov_25.907407", + "description": "", + "gc_content": 0.57566, + "length": 2161, + "md5": "29fa12a850c6f5db4fbfee2adbb7a1ea", + "name": "NODE_25123_length_2161_cov_25.907407" + }, + "NODE_25179_length_2156_cov_1710.533555": { + "contig_id": "NODE_25179_length_2156_cov_1710.533555", + "description": "", + "gc_content": 0.61224, + "length": 2156, + "md5": "0bf28f05a0da05ef6a28dc2d7bec0bbc", + "name": "NODE_25179_length_2156_cov_1710.533555" + }, + "NODE_25270_length_2150_cov_47.964200": { + "contig_id": "NODE_25270_length_2150_cov_47.964200", + "description": "", + "gc_content": 0.6707, + "length": 2150, + "md5": "b7661ae5ac96eccf82fadb312062b7cc", + "name": "NODE_25270_length_2150_cov_47.964200" + }, + "NODE_25271_length_2150_cov_8.526014": { + "contig_id": "NODE_25271_length_2150_cov_8.526014", + "description": "", + "gc_content": 0.69535, + "length": 2150, + "md5": "9995590ff62f8c4dba51c05b12d40d66", + "name": "NODE_25271_length_2150_cov_8.526014" + }, + "NODE_25353_length_2144_cov_13.205840": { + "contig_id": "NODE_25353_length_2144_cov_13.205840", + "description": "", + "gc_content": 0.39879, + "length": 2144, + "md5": "e3f56741a8afb204925cfbc3841b39f1", + "name": "NODE_25353_length_2144_cov_13.205840" + }, + "NODE_25381_length_2142_cov_9.712027": { + "contig_id": "NODE_25381_length_2142_cov_9.712027", + "description": "", + "gc_content": 0.36648, + "length": 2142, + "md5": "657d8e72c847e7a4d0aa6816e3027df3", + "name": "NODE_25381_length_2142_cov_9.712027" + }, + "NODE_253_length_110929_cov_15.534210": { + "contig_id": "NODE_253_length_110929_cov_15.534210", + "description": "", + "gc_content": 0.49392, + "length": 110929, + "md5": "bfe1171b672ff3dae59641041ff03ea0", + "name": "NODE_253_length_110929_cov_15.534210" + }, + "NODE_25409_length_2140_cov_32.541007": { + "contig_id": "NODE_25409_length_2140_cov_32.541007", + "description": "", + "gc_content": 0.3486, + "length": 2140, + "md5": "054e81e165834dd625c62d3c032bd5dc", + "name": "NODE_25409_length_2140_cov_32.541007" + }, + "NODE_25480_length_2135_cov_136.434135": { + "contig_id": "NODE_25480_length_2135_cov_136.434135", + "description": "", + "gc_content": 0.363, + "length": 2135, + "md5": "b73be3d91984907b77b58aece0860960", + "name": "NODE_25480_length_2135_cov_136.434135" + }, + "NODE_25508_length_2133_cov_10.584697": { + "contig_id": "NODE_25508_length_2133_cov_10.584697", + "description": "", + "gc_content": 0.35677, + "length": 2133, + "md5": "ade30762cb38dc503e856fb0b257020a", + "name": "NODE_25508_length_2133_cov_10.584697" + }, + "NODE_2554_length_17929_cov_9.254392": { + "contig_id": "NODE_2554_length_17929_cov_9.254392", + "description": "", + "gc_content": 0.67533, + "length": 17929, + "md5": "4cb4b72c74615a784c74ab1fcdba80f2", + "name": "NODE_2554_length_17929_cov_9.254392" + }, + "NODE_2563_length_17875_cov_28.742031": { + "contig_id": "NODE_2563_length_17875_cov_28.742031", + "description": "", + "gc_content": 0.61622, + "length": 17875, + "md5": "d75643d677dbbc821db8cf4f0f27555d", + "name": "NODE_2563_length_17875_cov_28.742031" + }, + "NODE_25653_length_2123_cov_30.176983": { + "contig_id": "NODE_25653_length_2123_cov_30.176983", + "description": "", + "gc_content": 0.41686, + "length": 2123, + "md5": "0739adf28f508bf55e2277663ee5c945", + "name": "NODE_25653_length_2123_cov_30.176983" + }, + "NODE_2570_length_17838_cov_29.131586": { + "Ncount": 100, + "contig_id": "NODE_2570_length_17838_cov_29.131586", + "description": "", + "gc_content": 0.62731, + "length": 17838, + "md5": "b0457a2f91592b950558ec6e5b51cadb", + "name": "NODE_2570_length_17838_cov_29.131586" + }, + "NODE_257_length_110767_cov_108.798847": { + "Ncount": 200, + "contig_id": "NODE_257_length_110767_cov_108.798847", + "description": "", + "gc_content": 0.6538, + "length": 110767, + "md5": "28dc43ae1a691928a729312ba874981e", + "name": "NODE_257_length_110767_cov_108.798847" + }, + "NODE_258_length_110174_cov_21.555608": { + "contig_id": "NODE_258_length_110174_cov_21.555608", + "description": "", + "gc_content": 0.39666, + "length": 110174, + "md5": "53d69f38a72fd960d6cb2a9ad1e8b78d", + "name": "NODE_258_length_110174_cov_21.555608" + }, + "NODE_25919_length_2103_cov_195.544922": { + "contig_id": "NODE_25919_length_2103_cov_195.544922", + "description": "", + "gc_content": 0.43747, + "length": 2103, + "md5": "f2b3e678660c2e41081e440387c68a7e", + "name": "NODE_25919_length_2103_cov_195.544922" + }, + "NODE_25_length_329311_cov_157.847954": { + "contig_id": "NODE_25_length_329311_cov_157.847954", + "description": "", + "gc_content": 0.50993, + "length": 329311, + "md5": "8ab621fb1b64b8c5afd3fc0b62bcf9b9", + "name": "NODE_25_length_329311_cov_157.847954" + }, + "NODE_26074_length_2092_cov_10.183603": { + "contig_id": "NODE_26074_length_2092_cov_10.183603", + "description": "", + "gc_content": 0.63671, + "length": 2092, + "md5": "dd97788eb9aaa0e54c147c1cbfee6263", + "name": "NODE_26074_length_2092_cov_10.183603" + }, + "NODE_2610_length_17619_cov_33.192895": { + "contig_id": "NODE_2610_length_17619_cov_33.192895", + "description": "", + "gc_content": 0.64765, + "length": 17619, + "md5": "f7078ab66ae61c70b65fc4f44fb0e315", + "name": "NODE_2610_length_17619_cov_33.192895" + }, + "NODE_26121_length_2089_cov_28.469027": { + "contig_id": "NODE_26121_length_2089_cov_28.469027", + "description": "", + "gc_content": 0.64241, + "length": 2089, + "md5": "b27acced2eaa70133a20c4100e22efa7", + "name": "NODE_26121_length_2089_cov_28.469027" + }, + "NODE_2616_length_17587_cov_35.150240": { + "contig_id": "NODE_2616_length_17587_cov_35.150240", + "description": "", + "gc_content": 0.65241, + "length": 17587, + "md5": "5a6d6a5782b1b47dca7b5a27dce0f4fc", + "name": "NODE_2616_length_17587_cov_35.150240" + }, + "NODE_26193_length_2084_cov_6.963529": { + "contig_id": "NODE_26193_length_2084_cov_6.963529", + "description": "", + "gc_content": 0.67131, + "length": 2084, + "md5": "fff7dedd3e4903864236fda81cf4a501", + "name": "NODE_26193_length_2084_cov_6.963529" + }, + "NODE_26234_length_2081_cov_75.734452": { + "contig_id": "NODE_26234_length_2081_cov_75.734452", + "description": "", + "gc_content": 0.66074, + "length": 2081, + "md5": "4bcfdd89c442b1ca204e58bf3cbd1b2d", + "name": "NODE_26234_length_2081_cov_75.734452" + }, + "NODE_26235_length_2081_cov_9.362784": { + "contig_id": "NODE_26235_length_2081_cov_9.362784", + "description": "", + "gc_content": 0.68861, + "length": 2081, + "md5": "1df4129150903f511fe77253ff2252f8", + "name": "NODE_26235_length_2081_cov_9.362784" + }, + "NODE_26262_length_2079_cov_30.441700": { + "contig_id": "NODE_26262_length_2079_cov_30.441700", + "description": "", + "gc_content": 0.37085, + "length": 2079, + "md5": "0466b6ebb37ed6365f07f642a538c3a0", + "name": "NODE_26262_length_2079_cov_30.441700" + }, + "NODE_262_length_108194_cov_16.156253": { + "contig_id": "NODE_262_length_108194_cov_16.156253", + "description": "", + "gc_content": 0.48584, + "length": 108194, + "md5": "b04e905c45206e7018449280e97f00d0", + "name": "NODE_262_length_108194_cov_16.156253" + }, + "NODE_2645_length_17412_cov_15.837760": { + "contig_id": "NODE_2645_length_17412_cov_15.837760", + "description": "", + "gc_content": 0.38927, + "length": 17412, + "md5": "a9346e253b4d36f8f2ded4e177e841e9", + "name": "NODE_2645_length_17412_cov_15.837760" + }, + "NODE_26517_length_2063_cov_37.494522": { + "contig_id": "NODE_26517_length_2063_cov_37.494522", + "description": "", + "gc_content": 0.51188, + "length": 2063, + "md5": "894ce58ca1942f59745f6596439f8303", + "name": "NODE_26517_length_2063_cov_37.494522" + }, + "NODE_26650_length_2052_cov_46.327491": { + "contig_id": "NODE_26650_length_2052_cov_46.327491", + "description": "", + "gc_content": 0.59113, + "length": 2052, + "md5": "7a2689f5404b735cf9afe6450afa28fb", + "name": "NODE_26650_length_2052_cov_46.327491" + }, + "NODE_2667_length_17280_cov_134.065022": { + "contig_id": "NODE_2667_length_17280_cov_134.065022", + "description": "", + "gc_content": 0.40723, + "length": 17280, + "md5": "c9c4ab0df382a4ab1b27c5d95e6da996", + "name": "NODE_2667_length_17280_cov_134.065022" + }, + "NODE_26714_length_2048_cov_153.347717": { + "contig_id": "NODE_26714_length_2048_cov_153.347717", + "description": "", + "gc_content": 0.62939, + "length": 2048, + "md5": "f12883fca60112359c8881773e4b0d56", + "name": "NODE_26714_length_2048_cov_153.347717" + }, + "NODE_26735_length_2047_cov_239.696285": { + "contig_id": "NODE_26735_length_2047_cov_239.696285", + "description": "", + "gc_content": 0.36541, + "length": 2047, + "md5": "7b26dde7a79cacd5196f42a8a9fdf90a", + "name": "NODE_26735_length_2047_cov_239.696285" + }, + "NODE_26838_length_2041_cov_8.271400": { + "contig_id": "NODE_26838_length_2041_cov_8.271400", + "description": "", + "gc_content": 0.6732, + "length": 2041, + "md5": "e22dd77744241142937b058596c55a65", + "name": "NODE_26838_length_2041_cov_8.271400" + }, + "NODE_2684_length_17094_cov_120.311873": { + "contig_id": "NODE_2684_length_17094_cov_120.311873", + "description": "", + "gc_content": 0.62946, + "length": 17094, + "md5": "db9798a84da0b64b07f1a4f7573a7b41", + "name": "NODE_2684_length_17094_cov_120.311873" + }, + "NODE_26852_length_2040_cov_127.266499": { + "contig_id": "NODE_26852_length_2040_cov_127.266499", + "description": "", + "gc_content": 0.60588, + "length": 2040, + "md5": "984e9c8fa7b845c36a54294e37901440", + "name": "NODE_26852_length_2040_cov_127.266499" + }, + "NODE_268_length_106948_cov_135.103870": { + "contig_id": "NODE_268_length_106948_cov_135.103870", + "description": "", + "gc_content": 0.38598, + "length": 106948, + "md5": "81597a8cd02c2ef526d96cba6e5fa350", + "name": "NODE_268_length_106948_cov_135.103870" + }, + "NODE_2695_length_17036_cov_31.833343": { + "contig_id": "NODE_2695_length_17036_cov_31.833343", + "description": "", + "gc_content": 0.65068, + "length": 17036, + "md5": "3a400801559180c74fd38827f7c6a31d", + "name": "NODE_2695_length_17036_cov_31.833343" + }, + "NODE_26997_length_2031_cov_34.196862": { + "contig_id": "NODE_26997_length_2031_cov_34.196862", + "description": "", + "gc_content": 0.59183, + "length": 2031, + "md5": "e4a053f96ad0a2cb5d16a2e960061a76", + "name": "NODE_26997_length_2031_cov_34.196862" + }, + "NODE_27019_length_2030_cov_52.502785": { + "contig_id": "NODE_27019_length_2030_cov_52.502785", + "description": "", + "gc_content": 0.59606, + "length": 2030, + "md5": "63f685427d60bbbd6d91f023a51dd1ca", + "name": "NODE_27019_length_2030_cov_52.502785" + }, + "NODE_270_length_106246_cov_8.286343": { + "Ncount": 10, + "contig_id": "NODE_270_length_106246_cov_8.286343", + "description": "", + "gc_content": 0.66306, + "length": 106246, + "md5": "64712ef503a0570b95307ac1b6646827", + "name": "NODE_270_length_106246_cov_8.286343" + }, + "NODE_2720_length_16865_cov_9.602201": { + "contig_id": "NODE_2720_length_16865_cov_9.602201", + "description": "", + "gc_content": 0.68337, + "length": 16865, + "md5": "11d281763bdeeee34757b762bd67a912", + "name": "NODE_2720_length_16865_cov_9.602201" + }, + "NODE_2730_length_16798_cov_16.804635": { + "contig_id": "NODE_2730_length_16798_cov_16.804635", + "description": "", + "gc_content": 0.40654, + "length": 16798, + "md5": "6aa4e89f03d367dd7e1dda894dc7ac63", + "name": "NODE_2730_length_16798_cov_16.804635" + }, + "NODE_27328_length_2011_cov_34.305726": { + "contig_id": "NODE_27328_length_2011_cov_34.305726", + "description": "", + "gc_content": 0.5629, + "length": 2011, + "md5": "1fb6788d1c7cb59bd698af9560238bb6", + "name": "NODE_27328_length_2011_cov_34.305726" + }, + "NODE_2732_length_16784_cov_17.384602": { + "contig_id": "NODE_2732_length_16784_cov_17.384602", + "description": "", + "gc_content": 0.38978, + "length": 16784, + "md5": "a8ed880f98c537783c01263ea8b99717", + "name": "NODE_2732_length_16784_cov_17.384602" + }, + "NODE_2763_length_16582_cov_561.773220": { + "contig_id": "NODE_2763_length_16582_cov_561.773220", + "description": "", + "gc_content": 0.62079, + "length": 16582, + "md5": "715c6c90c63d7a65087fceaea6d69bf0", + "name": "NODE_2763_length_16582_cov_561.773220" + }, + "NODE_2795_length_16359_cov_205.114082": { + "contig_id": "NODE_2795_length_16359_cov_205.114082", + "description": "", + "gc_content": 0.47289, + "length": 16359, + "md5": "5f3eb2ef917e389be7e4b0784f216807", + "name": "NODE_2795_length_16359_cov_205.114082" + }, + "NODE_2796_length_16358_cov_9.219898": { + "contig_id": "NODE_2796_length_16358_cov_9.219898", + "description": "", + "gc_content": 0.67062, + "length": 16358, + "md5": "88531655c1d1e9de97609d08f1a034d4", + "name": "NODE_2796_length_16358_cov_9.219898" + }, + "NODE_2813_length_16255_cov_8.959444": { + "contig_id": "NODE_2813_length_16255_cov_8.959444", + "description": "", + "gc_content": 0.66859, + "length": 16255, + "md5": "fdf0879ee3c08ed5c8d139302326973b", + "name": "NODE_2813_length_16255_cov_8.959444" + }, + "NODE_281_length_103420_cov_16.192754": { + "Ncount": 100, + "contig_id": "NODE_281_length_103420_cov_16.192754", + "description": "", + "gc_content": 0.39591, + "length": 103420, + "md5": "deb89ba792e69f4d7c0de7f3670530a9", + "name": "NODE_281_length_103420_cov_16.192754" + }, + "NODE_2829_length_16162_cov_28.843050": { + "contig_id": "NODE_2829_length_16162_cov_28.843050", + "description": "", + "gc_content": 0.61125, + "length": 16162, + "md5": "45d47d08c12d7ad557726814c86fab9a", + "name": "NODE_2829_length_16162_cov_28.843050" + }, + "NODE_283_length_102485_cov_9.102782": { + "contig_id": "NODE_283_length_102485_cov_9.102782", + "description": "", + "gc_content": 0.67888, + "length": 102485, + "md5": "6c540d4af3cb558f345cc8d7ef79edb8", + "name": "NODE_283_length_102485_cov_9.102782" + }, + "NODE_2851_length_16039_cov_113.872685": { + "contig_id": "NODE_2851_length_16039_cov_113.872685", + "description": "", + "gc_content": 0.37764, + "length": 16039, + "md5": "9ea77b32485ebdc7dda975c5a5508a7a", + "name": "NODE_2851_length_16039_cov_113.872685" + }, + "NODE_28_length_320674_cov_16.293258": { + "Ncount": 210, + "contig_id": "NODE_28_length_320674_cov_16.293258", + "description": "", + "gc_content": 0.40316, + "length": 320674, + "md5": "1708cc57f7b7da2b7fafb937b81e64f8", + "name": "NODE_28_length_320674_cov_16.293258" + }, + "NODE_2928_length_15603_cov_142.263700": { + "contig_id": "NODE_2928_length_15603_cov_142.263700", + "description": "", + "gc_content": 0.39883, + "length": 15603, + "md5": "7d98d07c8fad528d31ea24379b9cef75", + "name": "NODE_2928_length_15603_cov_142.263700" + }, + "NODE_2974_length_15381_cov_139.426661": { + "contig_id": "NODE_2974_length_15381_cov_139.426661", + "description": "", + "gc_content": 0.66413, + "length": 15381, + "md5": "edc1bb6d894a28938689510c3ce9f3ce", + "name": "NODE_2974_length_15381_cov_139.426661" + }, + "NODE_3014_length_15127_cov_138.238389": { + "contig_id": "NODE_3014_length_15127_cov_138.238389", + "description": "", + "gc_content": 0.39063, + "length": 15127, + "md5": "e61a093016fcd4708970ce88328334fa", + "name": "NODE_3014_length_15127_cov_138.238389" + }, + "NODE_3017_length_15112_cov_110.401740": { + "contig_id": "NODE_3017_length_15112_cov_110.401740", + "description": "", + "gc_content": 0.65637, + "length": 15112, + "md5": "f66b27c7d0ec3f6544d4fe196606d3e7", + "name": "NODE_3017_length_15112_cov_110.401740" + }, + "NODE_302_length_97886_cov_617.165173": { + "Ncount": 10, + "contig_id": "NODE_302_length_97886_cov_617.165173", + "description": "", + "gc_content": 0.64284, + "length": 97886, + "md5": "d503efea033ec2c570ea4dacedd0447a", + "name": "NODE_302_length_97886_cov_617.165173" + }, + "NODE_3035_length_15015_cov_32.700668": { + "contig_id": "NODE_3035_length_15015_cov_32.700668", + "description": "", + "gc_content": 0.63397, + "length": 15015, + "md5": "0f72ed76b63fd7d1ccd7ed5cf8d70c19", + "name": "NODE_3035_length_15015_cov_32.700668" + }, + "NODE_303_length_97862_cov_641.361518": { + "contig_id": "NODE_303_length_97862_cov_641.361518", + "description": "", + "gc_content": 0.64779, + "length": 97862, + "md5": "a4abc29e19143abf0fbef47a752f354f", + "name": "NODE_303_length_97862_cov_641.361518" + }, + "NODE_308_length_97127_cov_9.276321": { + "contig_id": "NODE_308_length_97127_cov_9.276321", + "description": "", + "gc_content": 0.68097, + "length": 97127, + "md5": "ec4435d82b777cd275a62ef79e8bf333", + "name": "NODE_308_length_97127_cov_9.276321" + }, + "NODE_3090_length_14757_cov_19.739695": { + "contig_id": "NODE_3090_length_14757_cov_19.739695", + "description": "", + "gc_content": 0.38829, + "length": 14757, + "md5": "bb4f8101290d71a3ad371a5b1c7eba19", + "name": "NODE_3090_length_14757_cov_19.739695" + }, + "NODE_3220_length_14050_cov_7.257663": { + "contig_id": "NODE_3220_length_14050_cov_7.257663", + "description": "", + "gc_content": 0.65694, + "length": 14050, + "md5": "3f1f5dd4b033bb6448bcc439eecf9dfa", + "name": "NODE_3220_length_14050_cov_7.257663" + }, + "NODE_3242_length_13962_cov_30.816927": { + "contig_id": "NODE_3242_length_13962_cov_30.816927", + "description": "", + "gc_content": 0.64052, + "length": 13962, + "md5": "4502b7382376c781fd4c04ff9e8eafdd", + "name": "NODE_3242_length_13962_cov_30.816927" + }, + "NODE_3246_length_13938_cov_74.777138": { + "contig_id": "NODE_3246_length_13938_cov_74.777138", + "description": "", + "gc_content": 0.56421, + "length": 13938, + "md5": "44b2117c935e9fdf675c64bff1cd43b9", + "name": "NODE_3246_length_13938_cov_74.777138" + }, + "NODE_324_length_94836_cov_132.601851": { + "Ncount": 100, + "contig_id": "NODE_324_length_94836_cov_132.601851", + "description": "", + "gc_content": 0.63207, + "length": 94836, + "md5": "1236eb70b47f0e4213ef540cc84f2051", + "name": "NODE_324_length_94836_cov_132.601851" + }, + "NODE_3276_length_13799_cov_16.636205": { + "Ncount": 100, + "contig_id": "NODE_3276_length_13799_cov_16.636205", + "description": "", + "gc_content": 0.38822, + "length": 13799, + "md5": "c20190f79c9411b9e8c9bceb339d8cfe", + "name": "NODE_3276_length_13799_cov_16.636205" + }, + "NODE_3278_length_13792_cov_28.236733": { + "contig_id": "NODE_3278_length_13792_cov_28.236733", + "description": "", + "gc_content": 0.63276, + "length": 13792, + "md5": "ecb818f55f76ec7894f81f3b897d2318", + "name": "NODE_3278_length_13792_cov_28.236733" + }, + "NODE_3283_length_13774_cov_144.931701": { + "contig_id": "NODE_3283_length_13774_cov_144.931701", + "description": "", + "gc_content": 0.38986, + "length": 13774, + "md5": "2c638ffca4a8cd1a620cbc37bcecc55e", + "name": "NODE_3283_length_13774_cov_144.931701" + }, + "NODE_3331_length_13585_cov_21.915299": { + "contig_id": "NODE_3331_length_13585_cov_21.915299", + "description": "", + "gc_content": 0.63224, + "length": 13585, + "md5": "3889b67f42c4ccece7734fc4ea24ca6e", + "name": "NODE_3331_length_13585_cov_21.915299" + }, + "NODE_333_length_93363_cov_128.182396": { + "contig_id": "NODE_333_length_93363_cov_128.182396", + "description": "", + "gc_content": 0.63796, + "length": 93363, + "md5": "34baf7fc9ae66f8a6b9d11d87b17e2bd", + "name": "NODE_333_length_93363_cov_128.182396" + }, + "NODE_3364_length_13464_cov_127.677530": { + "Ncount": 100, + "contig_id": "NODE_3364_length_13464_cov_127.677530", + "description": "", + "gc_content": 0.38748, + "length": 13464, + "md5": "250fa261f392f4288fa4fc2cbcf6f0b9", + "name": "NODE_3364_length_13464_cov_127.677530" + }, + "NODE_337_length_92784_cov_118.914169": { + "Ncount": 300, + "contig_id": "NODE_337_length_92784_cov_118.914169", + "description": "", + "gc_content": 0.63946, + "length": 92784, + "md5": "7d3cc4463621e27e31ebc171e380eef0", + "name": "NODE_337_length_92784_cov_118.914169" + }, + "NODE_3385_length_13409_cov_10.228621": { + "contig_id": "NODE_3385_length_13409_cov_10.228621", + "description": "", + "gc_content": 0.69155, + "length": 13409, + "md5": "bdc61a69cd7a9014c7b0cd0d6c1f6781", + "name": "NODE_3385_length_13409_cov_10.228621" + }, + "NODE_33_length_297482_cov_15.455836": { + "contig_id": "NODE_33_length_297482_cov_15.455836", + "description": "", + "gc_content": 0.4952, + "length": 297482, + "md5": "a2f7bc360ea2b19c9a5f3aed25112999", + "name": "NODE_33_length_297482_cov_15.455836" + }, + "NODE_3416_length_13266_cov_128.115585": { + "contig_id": "NODE_3416_length_13266_cov_128.115585", + "description": "", + "gc_content": 0.63252, + "length": 13266, + "md5": "ed45fb810b8d220d28fd386160f3db06", + "name": "NODE_3416_length_13266_cov_128.115585" + }, + "NODE_3447_length_13082_cov_30.126814": { + "contig_id": "NODE_3447_length_13082_cov_30.126814", + "description": "", + "gc_content": 0.6275, + "length": 13082, + "md5": "caeda78af236af377de613fca98f83f9", + "name": "NODE_3447_length_13082_cov_30.126814" + }, + "NODE_345_length_91782_cov_14.737024": { + "contig_id": "NODE_345_length_91782_cov_14.737024", + "description": "", + "gc_content": 0.48633, + "length": 91782, + "md5": "4f0ba26638c6500fc6cb92f79a668c6a", + "name": "NODE_345_length_91782_cov_14.737024" + }, + "NODE_346_length_91519_cov_129.264377": { + "contig_id": "NODE_346_length_91519_cov_129.264377", + "description": "", + "gc_content": 0.64345, + "length": 91519, + "md5": "550adb4519c67215086da15df506a614", + "name": "NODE_346_length_91519_cov_129.264377" + }, + "NODE_347_length_91195_cov_29.489719": { + "Ncount": 300, + "contig_id": "NODE_347_length_91195_cov_29.489719", + "description": "", + "gc_content": 0.63558, + "length": 91195, + "md5": "7898b710a1ff89ab2bb6cde330804d89", + "name": "NODE_347_length_91195_cov_29.489719" + }, + "NODE_3481_length_12969_cov_110.665247": { + "contig_id": "NODE_3481_length_12969_cov_110.665247", + "description": "", + "gc_content": 0.64461, + "length": 12969, + "md5": "1d9e9424aaa0dd780a8c57779f09f53c", + "name": "NODE_3481_length_12969_cov_110.665247" + }, + "NODE_3494_length_12917_cov_78.411522": { + "Ncount": 200, + "contig_id": "NODE_3494_length_12917_cov_78.411522", + "description": "", + "gc_content": 0.64504, + "length": 12917, + "md5": "965d9d31fb2ee1174c72e3b9f8f81b4b", + "name": "NODE_3494_length_12917_cov_78.411522" + }, + "NODE_3495_length_12914_cov_30.630687": { + "contig_id": "NODE_3495_length_12914_cov_30.630687", + "description": "", + "gc_content": 0.64984, + "length": 12914, + "md5": "d753e7505d0ef50d9069ad99bab2d001", + "name": "NODE_3495_length_12914_cov_30.630687" + }, + "NODE_34_length_294824_cov_16.687850": { + "Ncount": 200, + "contig_id": "NODE_34_length_294824_cov_16.687850", + "description": "", + "gc_content": 0.40032, + "length": 294824, + "md5": "45ed4c1d7c9353f23f3a7bbfa4826e3e", + "name": "NODE_34_length_294824_cov_16.687850" + }, + "NODE_354_length_88670_cov_16.311415": { + "contig_id": "NODE_354_length_88670_cov_16.311415", + "description": "", + "gc_content": 0.47585, + "length": 88670, + "md5": "c1449e5133c096b708dcca0550d54650", + "name": "NODE_354_length_88670_cov_16.311415" + }, + "NODE_3567_length_12655_cov_69.978889": { + "contig_id": "NODE_3567_length_12655_cov_69.978889", + "description": "", + "gc_content": 0.31094, + "length": 12655, + "md5": "313683cc4cbdf738a5feef1378e5335f", + "name": "NODE_3567_length_12655_cov_69.978889" + }, + "NODE_3601_length_12557_cov_118.124860": { + "contig_id": "NODE_3601_length_12557_cov_118.124860", + "description": "", + "gc_content": 0.62913, + "length": 12557, + "md5": "10099f8ea8a8d5838aab38abd94b59e6", + "name": "NODE_3601_length_12557_cov_118.124860" + }, + "NODE_3625_length_12492_cov_114.968803": { + "contig_id": "NODE_3625_length_12492_cov_114.968803", + "description": "", + "gc_content": 0.64681, + "length": 12492, + "md5": "eb7def82a178cbc39df3916e31314e29", + "name": "NODE_3625_length_12492_cov_114.968803" + }, + "NODE_3634_length_12459_cov_155.011932": { + "contig_id": "NODE_3634_length_12459_cov_155.011932", + "description": "", + "gc_content": 0.46055, + "length": 12459, + "md5": "f8e5e7803d498731a2fc2d66b50d5c0a", + "name": "NODE_3634_length_12459_cov_155.011932" + }, + "NODE_3659_length_12376_cov_134.496307": { + "contig_id": "NODE_3659_length_12376_cov_134.496307", + "description": "", + "gc_content": 0.64189, + "length": 12376, + "md5": "5c26a2d3ed1d0e3df432615e9d1bb50e", + "name": "NODE_3659_length_12376_cov_134.496307" + }, + "NODE_3689_length_12257_cov_31.139158": { + "contig_id": "NODE_3689_length_12257_cov_31.139158", + "description": "", + "gc_content": 0.5968, + "length": 12257, + "md5": "63576c75e3da2a578137c323ce355581", + "name": "NODE_3689_length_12257_cov_31.139158" + }, + "NODE_369_length_86974_cov_17.617713": { + "contig_id": "NODE_369_length_86974_cov_17.617713", + "description": "", + "gc_content": 0.39816, + "length": 86974, + "md5": "cf9a9423b307225fe167dc2cdfb7d396", + "name": "NODE_369_length_86974_cov_17.617713" + }, + "NODE_371_length_86833_cov_19.898891": { + "contig_id": "NODE_371_length_86833_cov_19.898891", + "description": "", + "gc_content": 0.39988, + "length": 86833, + "md5": "a16a4c6c050278f21f60fd391d397502", + "name": "NODE_371_length_86833_cov_19.898891" + }, + "NODE_3740_length_12125_cov_28.826926": { + "Ncount": 100, + "contig_id": "NODE_3740_length_12125_cov_28.826926", + "description": "", + "gc_content": 0.64074, + "length": 12125, + "md5": "41a9b14cf9fc63b77847624e3d840343", + "name": "NODE_3740_length_12125_cov_28.826926" + }, + "NODE_3753_length_12083_cov_141.645328": { + "contig_id": "NODE_3753_length_12083_cov_141.645328", + "description": "", + "gc_content": 0.38517, + "length": 12083, + "md5": "e43232f27e65cb2675e7bc3475394714", + "name": "NODE_3753_length_12083_cov_141.645328" + }, + "NODE_376_length_86128_cov_18.699255": { + "contig_id": "NODE_376_length_86128_cov_18.699255", + "description": "", + "gc_content": 0.40216, + "length": 86128, + "md5": "44fc5af689baa59ca4da75d239c85939", + "name": "NODE_376_length_86128_cov_18.699255" + }, + "NODE_387_length_84567_cov_18.465697": { + "contig_id": "NODE_387_length_84567_cov_18.465697", + "description": "", + "gc_content": 0.39323, + "length": 84567, + "md5": "e2d352eebb3ad4cc574b6c9fc61dc6ae", + "name": "NODE_387_length_84567_cov_18.465697" + }, + "NODE_389_length_84482_cov_122.837244": { + "Ncount": 100, + "contig_id": "NODE_389_length_84482_cov_122.837244", + "description": "", + "gc_content": 0.64618, + "length": 84482, + "md5": "f248268848f3becad064b712d170a547", + "name": "NODE_389_length_84482_cov_122.837244" + }, + "NODE_3956_length_11557_cov_32.232916": { + "contig_id": "NODE_3956_length_11557_cov_32.232916", + "description": "", + "gc_content": 0.64056, + "length": 11557, + "md5": "c1b04492738b0fc93c14cb5dabbba3e6", + "name": "NODE_3956_length_11557_cov_32.232916" + }, + "NODE_3980_length_11487_cov_119.937369": { + "contig_id": "NODE_3980_length_11487_cov_119.937369", + "description": "", + "gc_content": 0.63898, + "length": 11487, + "md5": "e91a9ca668ea882a90681d22547d45c1", + "name": "NODE_3980_length_11487_cov_119.937369" + }, + "NODE_39_length_280711_cov_158.055303": { + "contig_id": "NODE_39_length_280711_cov_158.055303", + "description": "", + "gc_content": 0.50834, + "length": 280711, + "md5": "e33547001f33fbd4032d8b19e7e25d48", + "name": "NODE_39_length_280711_cov_158.055303" + }, + "NODE_3_length_955858_cov_599.524973": { + "Ncount": 20, + "contig_id": "NODE_3_length_955858_cov_599.524973", + "description": "", + "gc_content": 0.63506, + "length": 955858, + "md5": "5a47df4e4ba50065460296c734363836", + "name": "NODE_3_length_955858_cov_599.524973" + }, + "NODE_400_length_82714_cov_123.620634": { + "Ncount": 100, + "contig_id": "NODE_400_length_82714_cov_123.620634", + "description": "", + "gc_content": 0.62531, + "length": 82714, + "md5": "27bc6c93b38331bb3f42ce6734765199", + "name": "NODE_400_length_82714_cov_123.620634" + }, + "NODE_4018_length_11372_cov_73.477777": { + "contig_id": "NODE_4018_length_11372_cov_73.477777", + "description": "", + "gc_content": 0.336, + "length": 11372, + "md5": "fdfbbfc290e2dd8238e1af7347e64473", + "name": "NODE_4018_length_11372_cov_73.477777" + }, + "NODE_4038_length_11316_cov_18.710860": { + "contig_id": "NODE_4038_length_11316_cov_18.710860", + "description": "", + "gc_content": 0.39236, + "length": 11316, + "md5": "4eded0ba220f6198c665522671e3f17b", + "name": "NODE_4038_length_11316_cov_18.710860" + }, + "NODE_403_length_82307_cov_119.957071": { + "Ncount": 100, + "contig_id": "NODE_403_length_82307_cov_119.957071", + "description": "", + "gc_content": 0.64377, + "length": 82307, + "md5": "1ddeb54b10f3d3e057d11a6c97235dfb", + "name": "NODE_403_length_82307_cov_119.957071" + }, + "NODE_406_length_82094_cov_15.268933": { + "Ncount": 100, + "contig_id": "NODE_406_length_82094_cov_15.268933", + "description": "", + "gc_content": 0.48591, + "length": 82094, + "md5": "a74e6ae06e3361a4a36d6669c355f2c6", + "name": "NODE_406_length_82094_cov_15.268933" + }, + "NODE_408_length_81653_cov_32.790056": { + "contig_id": "NODE_408_length_81653_cov_32.790056", + "description": "", + "gc_content": 0.63308, + "length": 81653, + "md5": "4c3902d01224baeb15785d57abb1080d", + "name": "NODE_408_length_81653_cov_32.790056" + }, + "NODE_410_length_81395_cov_133.638210": { + "contig_id": "NODE_410_length_81395_cov_133.638210", + "description": "", + "gc_content": 0.39326, + "length": 81395, + "md5": "77a55f6de06dc034f01408ca6aca5f2a", + "name": "NODE_410_length_81395_cov_133.638210" + }, + "NODE_412_length_81342_cov_29.429085": { + "Ncount": 100, + "contig_id": "NODE_412_length_81342_cov_29.429085", + "description": "", + "gc_content": 0.64925, + "length": 81342, + "md5": "3475876c6d42601334900f558fc3025b", + "name": "NODE_412_length_81342_cov_29.429085" + }, + "NODE_413_length_81124_cov_31.092699": { + "Ncount": 200, + "contig_id": "NODE_413_length_81124_cov_31.092699", + "description": "", + "gc_content": 0.6398, + "length": 81124, + "md5": "c184ea3e4eac4c9afb4ead53f94d8dff", + "name": "NODE_413_length_81124_cov_31.092699" + }, + "NODE_4154_length_11006_cov_18.597297": { + "Ncount": 200, + "contig_id": "NODE_4154_length_11006_cov_18.597297", + "description": "", + "gc_content": 0.36725, + "length": 11006, + "md5": "cb914140965f120efd85e9f546997b88", + "name": "NODE_4154_length_11006_cov_18.597297" + }, + "NODE_4159_length_10991_cov_138.870428": { + "contig_id": "NODE_4159_length_10991_cov_138.870428", + "description": "", + "gc_content": 0.39268, + "length": 10991, + "md5": "696b920fbb1eb1d73a4c3a585d5cbb39", + "name": "NODE_4159_length_10991_cov_138.870428" + }, + "NODE_4178_length_10932_cov_138.647145": { + "contig_id": "NODE_4178_length_10932_cov_138.647145", + "description": "", + "gc_content": 0.64023, + "length": 10932, + "md5": "ee1f123ad63196b325850a8543856ff8", + "name": "NODE_4178_length_10932_cov_138.647145" + }, + "NODE_4179_length_10932_cov_74.876069": { + "contig_id": "NODE_4179_length_10932_cov_74.876069", + "description": "", + "gc_content": 0.6266, + "length": 10932, + "md5": "78f4deba83305f2fcfc09c48985228fb", + "name": "NODE_4179_length_10932_cov_74.876069" + }, + "NODE_41_length_267261_cov_15.378195": { + "contig_id": "NODE_41_length_267261_cov_15.378195", + "description": "", + "gc_content": 0.48658, + "length": 267261, + "md5": "f2bd74259f6e346bb2df450afbddefee", + "name": "NODE_41_length_267261_cov_15.378195" + }, + "NODE_4249_length_10771_cov_8.632699": { + "contig_id": "NODE_4249_length_10771_cov_8.632699", + "description": "", + "gc_content": 0.66215, + "length": 10771, + "md5": "76b9e163bce20fb68c7e1b907a07af09", + "name": "NODE_4249_length_10771_cov_8.632699" + }, + "NODE_424_length_78693_cov_129.098527": { + "Ncount": 100, + "contig_id": "NODE_424_length_78693_cov_129.098527", + "description": "", + "gc_content": 0.64233, + "length": 78693, + "md5": "41f80db12fa47c9aaad2aa646729d412", + "name": "NODE_424_length_78693_cov_129.098527" + }, + "NODE_425_length_78681_cov_15.564673": { + "contig_id": "NODE_425_length_78681_cov_15.564673", + "description": "", + "gc_content": 0.48887, + "length": 78681, + "md5": "8838745e81d31131062ca5f0b389fa78", + "name": "NODE_425_length_78681_cov_15.564673" + }, + "NODE_429_length_78354_cov_32.058379": { + "Ncount": 200, + "contig_id": "NODE_429_length_78354_cov_32.058379", + "description": "", + "gc_content": 0.64549, + "length": 78354, + "md5": "4ef9e90b7a3c124c7326c02c97754596", + "name": "NODE_429_length_78354_cov_32.058379" + }, + "NODE_4321_length_10560_cov_133.106616": { + "Ncount": 100, + "contig_id": "NODE_4321_length_10560_cov_133.106616", + "description": "", + "gc_content": 0.64318, + "length": 10560, + "md5": "62a6f4546b424d402ce34c4f78a39796", + "name": "NODE_4321_length_10560_cov_133.106616" + }, + "NODE_432_length_77993_cov_18.271729": { + "contig_id": "NODE_432_length_77993_cov_18.271729", + "description": "", + "gc_content": 0.38782, + "length": 77993, + "md5": "d88dd986e4ca0151aefdcf19091b6847", + "name": "NODE_432_length_77993_cov_18.271729" + }, + "NODE_434_length_77378_cov_9.009945": { + "contig_id": "NODE_434_length_77378_cov_9.009945", + "description": "", + "gc_content": 0.68125, + "length": 77378, + "md5": "6ccccda207e5e5d35e587d5242ef2766", + "name": "NODE_434_length_77378_cov_9.009945" + }, + "NODE_435_length_77139_cov_17.261572": { + "contig_id": "NODE_435_length_77139_cov_17.261572", + "description": "", + "gc_content": 0.40296, + "length": 77139, + "md5": "22a0355f5c455d009037a55c72471378", + "name": "NODE_435_length_77139_cov_17.261572" + }, + "NODE_436_length_77054_cov_118.260977": { + "Ncount": 100, + "contig_id": "NODE_436_length_77054_cov_118.260977", + "description": "", + "gc_content": 0.64027, + "length": 77054, + "md5": "16ada5bd01bb3c73ced25dfdeb8f835c", + "name": "NODE_436_length_77054_cov_118.260977" + }, + "NODE_4409_length_10376_cov_123.460227": { + "contig_id": "NODE_4409_length_10376_cov_123.460227", + "description": "", + "gc_content": 0.62828, + "length": 10376, + "md5": "2d05b2f17bb83b23936a9df48eb6565a", + "name": "NODE_4409_length_10376_cov_123.460227" + }, + "NODE_440_length_76709_cov_31.326571": { + "Ncount": 100, + "contig_id": "NODE_440_length_76709_cov_31.326571", + "description": "", + "gc_content": 0.6451, + "length": 76709, + "md5": "0677c2d96199150f23ebf5398f92f9e8", + "name": "NODE_440_length_76709_cov_31.326571" + }, + "NODE_4427_length_10327_cov_22.755938": { + "contig_id": "NODE_4427_length_10327_cov_22.755938", + "description": "", + "gc_content": 0.40273, + "length": 10327, + "md5": "2946588cc135c1e51bc4e25c4f352d02", + "name": "NODE_4427_length_10327_cov_22.755938" + }, + "NODE_4434_length_10311_cov_31.311720": { + "Ncount": 100, + "contig_id": "NODE_4434_length_10311_cov_31.311720", + "description": "", + "gc_content": 0.64543, + "length": 10311, + "md5": "41b551c09e2f97a0e5f9588a309320ba", + "name": "NODE_4434_length_10311_cov_31.311720" + }, + "NODE_443_length_76553_cov_29.596538": { + "contig_id": "NODE_443_length_76553_cov_29.596538", + "description": "", + "gc_content": 0.63909, + "length": 76553, + "md5": "6ee2772c1b743ae819bfdcf9e9fe00f3", + "name": "NODE_443_length_76553_cov_29.596538" + }, + "NODE_4461_length_10260_cov_159.823028": { + "contig_id": "NODE_4461_length_10260_cov_159.823028", + "description": "", + "gc_content": 0.47495, + "length": 10260, + "md5": "f1be56163a2f1965d8fd5e118f701481", + "name": "NODE_4461_length_10260_cov_159.823028" + }, + "NODE_449_length_76067_cov_9.273944": { + "Ncount": 10, + "contig_id": "NODE_449_length_76067_cov_9.273944", + "description": "", + "gc_content": 0.67174, + "length": 76067, + "md5": "5095bcdf2f3596847d98b458212fc123", + "name": "NODE_449_length_76067_cov_9.273944" + }, + "NODE_44_length_259607_cov_149.222568": { + "contig_id": "NODE_44_length_259607_cov_149.222568", + "description": "", + "gc_content": 0.52498, + "length": 259607, + "md5": "140020d72681bfeb9af4137b830215ee", + "name": "NODE_44_length_259607_cov_149.222568" + }, + "NODE_4519_length_10111_cov_26.746321": { + "contig_id": "NODE_4519_length_10111_cov_26.746321", + "description": "", + "gc_content": 0.34665, + "length": 10111, + "md5": "0bd99e04ef51e14a1633435931a48d6d", + "name": "NODE_4519_length_10111_cov_26.746321" + }, + "NODE_4526_length_10099_cov_24.847073": { + "contig_id": "NODE_4526_length_10099_cov_24.847073", + "description": "", + "gc_content": 0.40281, + "length": 10099, + "md5": "6eefdb842c867d4e04d1782a25a8c28e", + "name": "NODE_4526_length_10099_cov_24.847073" + }, + "NODE_452_length_75896_cov_139.185797": { + "contig_id": "NODE_452_length_75896_cov_139.185797", + "description": "", + "gc_content": 0.38754, + "length": 75896, + "md5": "61faf52b8f6e9d91a65093cfb93c0d42", + "name": "NODE_452_length_75896_cov_139.185797" + }, + "NODE_4547_length_10044_cov_116.664131": { + "contig_id": "NODE_4547_length_10044_cov_116.664131", + "description": "", + "gc_content": 0.64556, + "length": 10044, + "md5": "6d97284831613967301ccf48ca7fa5c0", + "name": "NODE_4547_length_10044_cov_116.664131" + }, + "NODE_454_length_75663_cov_142.046503": { + "Ncount": 100, + "contig_id": "NODE_454_length_75663_cov_142.046503", + "description": "", + "gc_content": 0.38781, + "length": 75663, + "md5": "be6ec44a9bf449031eeeb3a5db3b6922", + "name": "NODE_454_length_75663_cov_142.046503" + }, + "NODE_4568_length_9994_cov_8.541201": { + "contig_id": "NODE_4568_length_9994_cov_8.541201", + "description": "", + "gc_content": 0.65189, + "length": 9994, + "md5": "b213c29d309addcd5b3c87a11857d9d8", + "name": "NODE_4568_length_9994_cov_8.541201" + }, + "NODE_456_length_75341_cov_8.965611": { + "contig_id": "NODE_456_length_75341_cov_8.965611", + "description": "", + "gc_content": 0.67824, + "length": 75341, + "md5": "73f20fcd4af65a0cb14d1fa10357b0a9", + "name": "NODE_456_length_75341_cov_8.965611" + }, + "NODE_457_length_75181_cov_32.246972": { + "Ncount": 110, + "contig_id": "NODE_457_length_75181_cov_32.246972", + "description": "", + "gc_content": 0.64244, + "length": 75181, + "md5": "a965726bec9ecfb4f51db056bfdd5654", + "name": "NODE_457_length_75181_cov_32.246972" + }, + "NODE_4595_length_9930_cov_13.524051": { + "Ncount": 10, + "contig_id": "NODE_4595_length_9930_cov_13.524051", + "description": "", + "gc_content": 0.50312, + "length": 9930, + "md5": "6af2d8ef71bfeea611cd11b63c9c1df6", + "name": "NODE_4595_length_9930_cov_13.524051" + }, + "NODE_460_length_75021_cov_138.414588": { + "Ncount": 200, + "contig_id": "NODE_460_length_75021_cov_138.414588", + "description": "", + "gc_content": 0.65368, + "length": 75021, + "md5": "7f43455f4320fff82ff93a5aeaa5d0d2", + "name": "NODE_460_length_75021_cov_138.414588" + }, + "NODE_4617_length_9878_cov_10.195358": { + "contig_id": "NODE_4617_length_9878_cov_10.195358", + "description": "", + "gc_content": 0.65347, + "length": 9878, + "md5": "84d7195926f35baa61cdf0ed632f23d5", + "name": "NODE_4617_length_9878_cov_10.195358" + }, + "NODE_464_length_74490_cov_30.307369": { + "Ncount": 100, + "contig_id": "NODE_464_length_74490_cov_30.307369", + "description": "", + "gc_content": 0.63835, + "length": 74490, + "md5": "6b9c5bc9a02e9cdfdf692cdb9290c962", + "name": "NODE_464_length_74490_cov_30.307369" + }, + "NODE_4661_length_9790_cov_63.520185": { + "contig_id": "NODE_4661_length_9790_cov_63.520185", + "description": "", + "gc_content": 0.61879, + "length": 9790, + "md5": "20cb51e89d41c32d9267f345b08212d3", + "name": "NODE_4661_length_9790_cov_63.520185" + }, + "NODE_466_length_74263_cov_30.335018": { + "contig_id": "NODE_466_length_74263_cov_30.335018", + "description": "", + "gc_content": 0.64087, + "length": 74263, + "md5": "3cdd06edd5aa74943c9fd52a4147c94a", + "name": "NODE_466_length_74263_cov_30.335018" + }, + "NODE_4675_length_9762_cov_18.263830": { + "contig_id": "NODE_4675_length_9762_cov_18.263830", + "description": "", + "gc_content": 0.48914, + "length": 9762, + "md5": "aafebb841f1a94fe198d3818e5b0c0d0", + "name": "NODE_4675_length_9762_cov_18.263830" + }, + "NODE_467_length_74231_cov_8.534135": { + "contig_id": "NODE_467_length_74231_cov_8.534135", + "description": "", + "gc_content": 0.66646, + "length": 74231, + "md5": "15e6e34076c2b11f75bcd8fdcafed49d", + "name": "NODE_467_length_74231_cov_8.534135" + }, + "NODE_468_length_73847_cov_15.917823": { + "contig_id": "NODE_468_length_73847_cov_15.917823", + "description": "", + "gc_content": 0.39456, + "length": 73847, + "md5": "68069cad71741b00951041e41a021225", + "name": "NODE_468_length_73847_cov_15.917823" + }, + "NODE_4695_length_9730_cov_17.744393": { + "Ncount": 215, + "contig_id": "NODE_4695_length_9730_cov_17.744393", + "description": "", + "gc_content": 0.37071, + "length": 9730, + "md5": "b7842e43750d157162f0712206a8fcb7", + "name": "NODE_4695_length_9730_cov_17.744393" + }, + "NODE_46_length_253743_cov_15.070792": { + "Ncount": 100, + "contig_id": "NODE_46_length_253743_cov_15.070792", + "description": "", + "gc_content": 0.48927, + "length": 253743, + "md5": "5caffe73cdb729e651f3666834c56695", + "name": "NODE_46_length_253743_cov_15.070792" + }, + "NODE_4751_length_9623_cov_30.188232": { + "contig_id": "NODE_4751_length_9623_cov_30.188232", + "description": "", + "gc_content": 0.64055, + "length": 9623, + "md5": "ff24826a25146c7b5edb4b1c37221ec1", + "name": "NODE_4751_length_9623_cov_30.188232" + }, + "NODE_4777_length_9569_cov_19.745428": { + "contig_id": "NODE_4777_length_9569_cov_19.745428", + "description": "", + "gc_content": 0.35949, + "length": 9569, + "md5": "452651d4d3a21fddbb6da136805c2370", + "name": "NODE_4777_length_9569_cov_19.745428" + }, + "NODE_477_length_71982_cov_121.741238": { + "Ncount": 100, + "contig_id": "NODE_477_length_71982_cov_121.741238", + "description": "", + "gc_content": 0.65314, + "length": 71982, + "md5": "013bff4eee8ec31464a82cadf2e87a7d", + "name": "NODE_477_length_71982_cov_121.741238" + }, + "NODE_479_length_71734_cov_9.087529": { + "Ncount": 200, + "contig_id": "NODE_479_length_71734_cov_9.087529", + "description": "", + "gc_content": 0.68401, + "length": 71734, + "md5": "b27f1a2eeba15890223ab6d4926006d0", + "name": "NODE_479_length_71734_cov_9.087529" + }, + "NODE_47_length_253246_cov_150.781169": { + "contig_id": "NODE_47_length_253246_cov_150.781169", + "description": "", + "gc_content": 0.50706, + "length": 253246, + "md5": "53476568954b53bbd63c645ddaa31ac5", + "name": "NODE_47_length_253246_cov_150.781169" + }, + "NODE_4815_length_9505_cov_158.931958": { + "contig_id": "NODE_4815_length_9505_cov_158.931958", + "description": "", + "gc_content": 0.49016, + "length": 9505, + "md5": "6b7386c151cd55e92f704faeeed0e460", + "name": "NODE_4815_length_9505_cov_158.931958" + }, + "NODE_485_length_71438_cov_584.619727": { + "Ncount": 10, + "contig_id": "NODE_485_length_71438_cov_584.619727", + "description": "", + "gc_content": 0.62706, + "length": 71438, + "md5": "a791aab57aa79c930c4c548270a80e26", + "name": "NODE_485_length_71438_cov_584.619727" + }, + "NODE_489_length_71202_cov_16.818278": { + "contig_id": "NODE_489_length_71202_cov_16.818278", + "description": "", + "gc_content": 0.48465, + "length": 71202, + "md5": "50e5e0b8032bde1d8f8b8fddbd958b53", + "name": "NODE_489_length_71202_cov_16.818278" + }, + "NODE_490_length_71002_cov_8.752012": { + "contig_id": "NODE_490_length_71002_cov_8.752012", + "description": "", + "gc_content": 0.67056, + "length": 71002, + "md5": "e9f46ea5fcc4ced241202222cd192f71", + "name": "NODE_490_length_71002_cov_8.752012" + }, + "NODE_4919_length_9279_cov_22.470078": { + "contig_id": "NODE_4919_length_9279_cov_22.470078", + "description": "", + "gc_content": 0.66192, + "length": 9279, + "md5": "57a9004b2585cec8ec077eb86cf83c7d", + "name": "NODE_4919_length_9279_cov_22.470078" + }, + "NODE_496_length_70430_cov_14.447716": { + "contig_id": "NODE_496_length_70430_cov_14.447716", + "description": "", + "gc_content": 0.49808, + "length": 70430, + "md5": "7cae8ec279843a7fb3c9be730487e56c", + "name": "NODE_496_length_70430_cov_14.447716" + }, + "NODE_4985_length_9154_cov_611.354874": { + "contig_id": "NODE_4985_length_9154_cov_611.354874", + "description": "", + "gc_content": 0.60891, + "length": 9154, + "md5": "04da9971d355b578baaa20d72425a6de", + "name": "NODE_4985_length_9154_cov_611.354874" + }, + "NODE_499_length_70270_cov_9.207477": { + "contig_id": "NODE_499_length_70270_cov_9.207477", + "description": "", + "gc_content": 0.68002, + "length": 70270, + "md5": "9d5d4d0a9fdc672d43dc8e511f3b3212", + "name": "NODE_499_length_70270_cov_9.207477" + }, + "NODE_4_length_940015_cov_569.509463": { + "Ncount": 20, + "contig_id": "NODE_4_length_940015_cov_569.509463", + "description": "", + "gc_content": 0.64006, + "length": 940015, + "md5": "c3749f847bcd55151eaca13094dcab89", + "name": "NODE_4_length_940015_cov_569.509463" + }, + "NODE_503_length_69804_cov_16.693831": { + "Ncount": 100, + "contig_id": "NODE_503_length_69804_cov_16.693831", + "description": "", + "gc_content": 0.40009, + "length": 69804, + "md5": "3fc2e758fa95a6c2ac0c0db7b7bf45c8", + "name": "NODE_503_length_69804_cov_16.693831" + }, + "NODE_506_length_69443_cov_154.922696": { + "contig_id": "NODE_506_length_69443_cov_154.922696", + "description": "", + "gc_content": 0.51871, + "length": 69443, + "md5": "acfa1028ea196dbb66aca2650fc1d852", + "name": "NODE_506_length_69443_cov_154.922696" + }, + "NODE_5072_length_8963_cov_120.434104": { + "contig_id": "NODE_5072_length_8963_cov_120.434104", + "description": "", + "gc_content": 0.3963, + "length": 8963, + "md5": "bc605e6e53529eb15ea232199dbf8da5", + "name": "NODE_5072_length_8963_cov_120.434104" + }, + "NODE_5097_length_8923_cov_119.937077": { + "contig_id": "NODE_5097_length_8923_cov_119.937077", + "description": "", + "gc_content": 0.63645, + "length": 8923, + "md5": "c65e1880c47202b2ac334a9b48243a10", + "name": "NODE_5097_length_8923_cov_119.937077" + }, + "NODE_509_length_69102_cov_122.857966": { + "Ncount": 100, + "contig_id": "NODE_509_length_69102_cov_122.857966", + "description": "", + "gc_content": 0.63979, + "length": 69102, + "md5": "0482a47ff2dcdf7e29cb42ff8cb34e7f", + "name": "NODE_509_length_69102_cov_122.857966" + }, + "NODE_50_length_249256_cov_9.511888": { + "Ncount": 10, + "contig_id": "NODE_50_length_249256_cov_9.511888", + "description": "", + "gc_content": 0.68106, + "length": 249256, + "md5": "6d0eabbf6246c52eaa9a0e26b963ba08", + "name": "NODE_50_length_249256_cov_9.511888" + }, + "NODE_510_length_69065_cov_30.382887": { + "contig_id": "NODE_510_length_69065_cov_30.382887", + "description": "", + "gc_content": 0.64447, + "length": 69065, + "md5": "dee2525a19bdc2b8d5cfbecf99780da2", + "name": "NODE_510_length_69065_cov_30.382887" + }, + "NODE_512_length_68940_cov_14.845119": { + "Ncount": 100, + "contig_id": "NODE_512_length_68940_cov_14.845119", + "description": "", + "gc_content": 0.50019, + "length": 68940, + "md5": "da7085881dd2026bc7fdb4e72bd37e48", + "name": "NODE_512_length_68940_cov_14.845119" + }, + "NODE_513_length_68869_cov_111.930872": { + "Ncount": 300, + "contig_id": "NODE_513_length_68869_cov_111.930872", + "description": "", + "gc_content": 0.64522, + "length": 68869, + "md5": "e53e3eb5d46d81758e340c5e104d486c", + "name": "NODE_513_length_68869_cov_111.930872" + }, + "NODE_517_length_68782_cov_8.542902": { + "contig_id": "NODE_517_length_68782_cov_8.542902", + "description": "", + "gc_content": 0.68541, + "length": 68782, + "md5": "3f95de09df97f470fafedf533820b5c4", + "name": "NODE_517_length_68782_cov_8.542902" + }, + "NODE_5192_length_8778_cov_38.629715": { + "Ncount": 100, + "contig_id": "NODE_5192_length_8778_cov_38.629715", + "description": "", + "gc_content": 0.62429, + "length": 8778, + "md5": "a66600cdaf9307b24f06ce6f306dc717", + "name": "NODE_5192_length_8778_cov_38.629715" + }, + "NODE_5207_length_8745_cov_117.359033": { + "contig_id": "NODE_5207_length_8745_cov_117.359033", + "description": "", + "gc_content": 0.39154, + "length": 8745, + "md5": "7551ec87e08c397aebc586c339baa565", + "name": "NODE_5207_length_8745_cov_117.359033" + }, + "NODE_531_length_67136_cov_124.685872": { + "Ncount": 300, + "contig_id": "NODE_531_length_67136_cov_124.685872", + "description": "", + "gc_content": 0.64548, + "length": 67136, + "md5": "e0e3f6ece44b7073e8827d5afecabc84", + "name": "NODE_531_length_67136_cov_124.685872" + }, + "NODE_532_length_67112_cov_18.033867": { + "contig_id": "NODE_532_length_67112_cov_18.033867", + "description": "", + "gc_content": 0.39485, + "length": 67112, + "md5": "7ecb37d28d50cdfdff7bfbedc12d89ae", + "name": "NODE_532_length_67112_cov_18.033867" + }, + "NODE_533_length_67071_cov_25.359750": { + "Ncount": 10, + "contig_id": "NODE_533_length_67071_cov_25.359750", + "description": "", + "gc_content": 0.3821, + "length": 67071, + "md5": "70ee6b02caf65f44373ac38220fc555a", + "name": "NODE_533_length_67071_cov_25.359750" + }, + "NODE_534_length_67031_cov_135.276920": { + "Ncount": 100, + "contig_id": "NODE_534_length_67031_cov_135.276920", + "description": "", + "gc_content": 0.39058, + "length": 67031, + "md5": "8d2f3ae6fea9525c9442baa2be2f80ee", + "name": "NODE_534_length_67031_cov_135.276920" + }, + "NODE_5368_length_8465_cov_5.765042": { + "contig_id": "NODE_5368_length_8465_cov_5.765042", + "description": "", + "gc_content": 0.6508, + "length": 8465, + "md5": "1e1644d237b6dd99cc8c53bbf029b8c1", + "name": "NODE_5368_length_8465_cov_5.765042" + }, + "NODE_540_length_66598_cov_30.696677": { + "Ncount": 200, + "contig_id": "NODE_540_length_66598_cov_30.696677", + "description": "", + "gc_content": 0.64682, + "length": 66598, + "md5": "19182713e9c4085d888ed5591b09ff6f", + "name": "NODE_540_length_66598_cov_30.696677" + }, + "NODE_5459_length_8335_cov_8.732367": { + "contig_id": "NODE_5459_length_8335_cov_8.732367", + "description": "", + "gc_content": 0.68686, + "length": 8335, + "md5": "5518f8c94a6c7eb97cffec0bde0aced9", + "name": "NODE_5459_length_8335_cov_8.732367" + }, + "NODE_5492_length_8275_cov_22.334915": { + "contig_id": "NODE_5492_length_8275_cov_22.334915", + "description": "", + "gc_content": 0.38973, + "length": 8275, + "md5": "644a5efc3cab55383f6de8d3dd246a00", + "name": "NODE_5492_length_8275_cov_22.334915" + }, + "NODE_551_length_65215_cov_123.636403": { + "Ncount": 100, + "contig_id": "NODE_551_length_65215_cov_123.636403", + "description": "", + "gc_content": 0.64192, + "length": 65215, + "md5": "fd877f6069e23922cf0cc323d634adac", + "name": "NODE_551_length_65215_cov_123.636403" + }, + "NODE_5547_length_8192_cov_113.185326": { + "Ncount": 100, + "contig_id": "NODE_5547_length_8192_cov_113.185326", + "description": "", + "gc_content": 0.3949, + "length": 8192, + "md5": "6cb3149a9426688753ea1f4add64a572", + "name": "NODE_5547_length_8192_cov_113.185326" + }, + "NODE_554_length_64826_cov_9.191181": { + "contig_id": "NODE_554_length_64826_cov_9.191181", + "description": "", + "gc_content": 0.67107, + "length": 64826, + "md5": "468f315cf036413f04f39b7737dde28d", + "name": "NODE_554_length_64826_cov_9.191181" + }, + "NODE_555_length_64654_cov_145.943389": { + "contig_id": "NODE_555_length_64654_cov_145.943389", + "description": "", + "gc_content": 0.38714, + "length": 64654, + "md5": "5a531519e4580cc9b34eb25457e62f8d", + "name": "NODE_555_length_64654_cov_145.943389" + }, + "NODE_556_length_64437_cov_9.328896": { + "contig_id": "NODE_556_length_64437_cov_9.328896", + "description": "", + "gc_content": 0.68127, + "length": 64437, + "md5": "5560e1784915549c5f26ae9fcaf922a7", + "name": "NODE_556_length_64437_cov_9.328896" + }, + "NODE_5582_length_8141_cov_75.632698": { + "contig_id": "NODE_5582_length_8141_cov_75.632698", + "description": "", + "gc_content": 0.3405, + "length": 8141, + "md5": "6eaa7e444383fee01b3fc36a13d5eb2f", + "name": "NODE_5582_length_8141_cov_75.632698" + }, + "NODE_561_length_63899_cov_28.003931": { + "Ncount": 100, + "contig_id": "NODE_561_length_63899_cov_28.003931", + "description": "", + "gc_content": 0.64197, + "length": 63899, + "md5": "6b3306aeaf97fb140b9b5631131e4a24", + "name": "NODE_561_length_63899_cov_28.003931" + }, + "NODE_564_length_63499_cov_126.133236": { + "Ncount": 100, + "contig_id": "NODE_564_length_63499_cov_126.133236", + "description": "", + "gc_content": 0.64615, + "length": 63499, + "md5": "66bc6f0fe172c952b1a5ac42c09acfa9", + "name": "NODE_564_length_63499_cov_126.133236" + }, + "NODE_567_length_63352_cov_30.361613": { + "Ncount": 400, + "contig_id": "NODE_567_length_63352_cov_30.361613", + "description": "", + "gc_content": 0.62811, + "length": 63352, + "md5": "7f657cc58e164978c37a0f1523998819", + "name": "NODE_567_length_63352_cov_30.361613" + }, + "NODE_569_length_63253_cov_29.829947": { + "contig_id": "NODE_569_length_63253_cov_29.829947", + "description": "", + "gc_content": 0.64454, + "length": 63253, + "md5": "7c0ec2e33b6ff6a386c90395e5865ae8", + "name": "NODE_569_length_63253_cov_29.829947" + }, + "NODE_5780_length_7884_cov_87.887470": { + "contig_id": "NODE_5780_length_7884_cov_87.887470", + "description": "", + "gc_content": 0.62976, + "length": 7884, + "md5": "02326e3179426c15ebac2d58667bbb46", + "name": "NODE_5780_length_7884_cov_87.887470" + }, + "NODE_579_length_62774_cov_18.179276": { + "Ncount": 200, + "contig_id": "NODE_579_length_62774_cov_18.179276", + "description": "", + "gc_content": 0.39741, + "length": 62774, + "md5": "ee572e3a738e4d502d8609b0d33d99eb", + "name": "NODE_579_length_62774_cov_18.179276" + }, + "NODE_57_length_231805_cov_124.103978": { + "Ncount": 500, + "contig_id": "NODE_57_length_231805_cov_124.103978", + "description": "", + "gc_content": 0.64216, + "length": 231805, + "md5": "85f199bbdb90a0e4466582e4cef3f78a", + "name": "NODE_57_length_231805_cov_124.103978" + }, + "NODE_5816_length_7835_cov_34.387018": { + "Ncount": 10, + "contig_id": "NODE_5816_length_7835_cov_34.387018", + "description": "", + "gc_content": 0.68462, + "length": 7835, + "md5": "65fa108ecce93b4a0804ab914317772e", + "name": "NODE_5816_length_7835_cov_34.387018" + }, + "NODE_582_length_62460_cov_126.496915": { + "Ncount": 200, + "contig_id": "NODE_582_length_62460_cov_126.496915", + "description": "", + "gc_content": 0.63602, + "length": 62460, + "md5": "b9307ae81474bf1441134df29b8b5535", + "name": "NODE_582_length_62460_cov_126.496915" + }, + "NODE_586_length_62359_cov_143.073751": { + "contig_id": "NODE_586_length_62359_cov_143.073751", + "description": "", + "gc_content": 0.63949, + "length": 62359, + "md5": "0a12b3d5e0743407dc178d00be882dac", + "name": "NODE_586_length_62359_cov_143.073751" + }, + "NODE_592_length_61638_cov_130.143903": { + "Ncount": 100, + "contig_id": "NODE_592_length_61638_cov_130.143903", + "description": "", + "gc_content": 0.64142, + "length": 61638, + "md5": "b4e3fb6dc818ff22cb46d7fa8d75c088", + "name": "NODE_592_length_61638_cov_130.143903" + }, + "NODE_5940_length_7684_cov_29.465199": { + "contig_id": "NODE_5940_length_7684_cov_29.465199", + "description": "", + "gc_content": 0.63782, + "length": 7684, + "md5": "951076e273f0516972fef73553d9cf6e", + "name": "NODE_5940_length_7684_cov_29.465199" + }, + "NODE_5954_length_7670_cov_81.032830": { + "contig_id": "NODE_5954_length_7670_cov_81.032830", + "description": "", + "gc_content": 0.60352, + "length": 7670, + "md5": "4da7dde0a0ddcdba14f63a795585854c", + "name": "NODE_5954_length_7670_cov_81.032830" + }, + "NODE_5973_length_7649_cov_125.028707": { + "contig_id": "NODE_5973_length_7649_cov_125.028707", + "description": "", + "gc_content": 0.66662, + "length": 7649, + "md5": "9be1cb2716ca7ebbdb0de9a76a434621", + "name": "NODE_5973_length_7649_cov_125.028707" + }, + "NODE_5989_length_7628_cov_31.501783": { + "contig_id": "NODE_5989_length_7628_cov_31.501783", + "description": "", + "gc_content": 0.64696, + "length": 7628, + "md5": "4b720044895d0efe072bac21ddccb37e", + "name": "NODE_5989_length_7628_cov_31.501783" + }, + "NODE_6019_length_7599_cov_16.769486": { + "contig_id": "NODE_6019_length_7599_cov_16.769486", + "description": "", + "gc_content": 0.49401, + "length": 7599, + "md5": "a68441f462d746b118e9460d5e057da5", + "name": "NODE_6019_length_7599_cov_16.769486" + }, + "NODE_6083_length_7535_cov_29.077674": { + "contig_id": "NODE_6083_length_7535_cov_29.077674", + "description": "", + "gc_content": 0.32223, + "length": 7535, + "md5": "c47b4d04f186bfa760c1409fbaa25d7a", + "name": "NODE_6083_length_7535_cov_29.077674" + }, + "NODE_6101_length_7514_cov_34.274165": { + "contig_id": "NODE_6101_length_7514_cov_34.274165", + "description": "", + "gc_content": 0.4819, + "length": 7514, + "md5": "c1b4a4bbf295884caf291d3c561f5895", + "name": "NODE_6101_length_7514_cov_34.274165" + }, + "NODE_6120_length_7490_cov_18.961802": { + "contig_id": "NODE_6120_length_7490_cov_18.961802", + "description": "", + "gc_content": 0.59987, + "length": 7490, + "md5": "6b2c92187ddeb9279a7584e0a2441bc0", + "name": "NODE_6120_length_7490_cov_18.961802" + }, + "NODE_6122_length_7486_cov_92.462522": { + "contig_id": "NODE_6122_length_7486_cov_92.462522", + "description": "", + "gc_content": 0.35373, + "length": 7486, + "md5": "cc2e7417cf41c1962a52fc27b5813781", + "name": "NODE_6122_length_7486_cov_92.462522" + }, + "NODE_614_length_60012_cov_125.554080": { + "Ncount": 100, + "contig_id": "NODE_614_length_60012_cov_125.554080", + "description": "", + "gc_content": 0.62219, + "length": 60012, + "md5": "f52ef4bb542a84cef213cd14b481956c", + "name": "NODE_614_length_60012_cov_125.554080" + }, + "NODE_617_length_59797_cov_619.548877": { + "contig_id": "NODE_617_length_59797_cov_619.548877", + "description": "", + "gc_content": 0.64386, + "length": 59797, + "md5": "c2615282a13796dc89ef2eded4a71fa7", + "name": "NODE_617_length_59797_cov_619.548877" + }, + "NODE_6194_length_7400_cov_637.468346": { + "contig_id": "NODE_6194_length_7400_cov_637.468346", + "description": "", + "gc_content": 0.5927, + "length": 7400, + "md5": "8e3e39cf815e3e0eb7ebd56ced1d237f", + "name": "NODE_6194_length_7400_cov_637.468346" + }, + "NODE_619_length_59608_cov_150.524172": { + "Ncount": 100, + "contig_id": "NODE_619_length_59608_cov_150.524172", + "description": "", + "gc_content": 0.38679, + "length": 59608, + "md5": "e8d5d5d77accf9d5849bc3b9104456c4", + "name": "NODE_619_length_59608_cov_150.524172" + }, + "NODE_61_length_215940_cov_14.853014": { + "Ncount": 100, + "contig_id": "NODE_61_length_215940_cov_14.853014", + "description": "", + "gc_content": 0.4918, + "length": 215940, + "md5": "87c0c5e1545bac1d9461c7de0c54caf8", + "name": "NODE_61_length_215940_cov_14.853014" + }, + "NODE_620_length_59372_cov_29.672843": { + "contig_id": "NODE_620_length_59372_cov_29.672843", + "description": "", + "gc_content": 0.64588, + "length": 59372, + "md5": "f897a31a47d6049f2c7301f9e01ab437", + "name": "NODE_620_length_59372_cov_29.672843" + }, + "NODE_6279_length_7331_cov_107.395410": { + "contig_id": "NODE_6279_length_7331_cov_107.395410", + "description": "", + "gc_content": 0.60483, + "length": 7331, + "md5": "ce2655c5c2776996ef2e8053cfba2fde", + "name": "NODE_6279_length_7331_cov_107.395410" + }, + "NODE_628_length_58947_cov_30.965275": { + "contig_id": "NODE_628_length_58947_cov_30.965275", + "description": "", + "gc_content": 0.63533, + "length": 58947, + "md5": "0fed33f8b6d3dd0453142303a45b5e6b", + "name": "NODE_628_length_58947_cov_30.965275" + }, + "NODE_6291_length_7310_cov_111.403997": { + "contig_id": "NODE_6291_length_7310_cov_111.403997", + "description": "", + "gc_content": 0.38509, + "length": 7310, + "md5": "f77afb8e9cc4bd84f408c50373ee9ca7", + "name": "NODE_6291_length_7310_cov_111.403997" + }, + "NODE_629_length_58942_cov_160.143410": { + "contig_id": "NODE_629_length_58942_cov_160.143410", + "description": "", + "gc_content": 0.50349, + "length": 58942, + "md5": "75ef7d2c424f65593e6b5cb895082941", + "name": "NODE_629_length_58942_cov_160.143410" + }, + "NODE_6325_length_7276_cov_68.142086": { + "contig_id": "NODE_6325_length_7276_cov_68.142086", + "description": "", + "gc_content": 0.61943, + "length": 7276, + "md5": "88ac2931f6e1ad2d085edfbac3178824", + "name": "NODE_6325_length_7276_cov_68.142086" + }, + "NODE_6355_length_7245_cov_6.010709": { + "contig_id": "NODE_6355_length_7245_cov_6.010709", + "description": "", + "gc_content": 0.67633, + "length": 7245, + "md5": "b41a915b5659f3f95edbf5e7eb213f8a", + "name": "NODE_6355_length_7245_cov_6.010709" + }, + "NODE_6359_length_7238_cov_166.053181": { + "contig_id": "NODE_6359_length_7238_cov_166.053181", + "description": "", + "gc_content": 0.40094, + "length": 7238, + "md5": "2b762f59b881d3f5195c8ad321c72978", + "name": "NODE_6359_length_7238_cov_166.053181" + }, + "NODE_636_length_58624_cov_15.779542": { + "contig_id": "NODE_636_length_58624_cov_15.779542", + "description": "", + "gc_content": 0.40576, + "length": 58624, + "md5": "751218e17d1567b7f63e38bf94943dde", + "name": "NODE_636_length_58624_cov_15.779542" + }, + "NODE_6398_length_7202_cov_17.312859": { + "contig_id": "NODE_6398_length_7202_cov_17.312859", + "description": "", + "gc_content": 0.33546, + "length": 7202, + "md5": "dd0ab1acd52f669b84370a685386c698", + "name": "NODE_6398_length_7202_cov_17.312859" + }, + "NODE_63_length_214850_cov_20.328620": { + "contig_id": "NODE_63_length_214850_cov_20.328620", + "description": "", + "gc_content": 0.40235, + "length": 214850, + "md5": "638a479696d53a648738ab61139b95df", + "name": "NODE_63_length_214850_cov_20.328620" + }, + "NODE_6401_length_7198_cov_141.483690": { + "contig_id": "NODE_6401_length_7198_cov_141.483690", + "description": "", + "gc_content": 0.36218, + "length": 7198, + "md5": "590d888d9a6339ab260824be29e1baea", + "name": "NODE_6401_length_7198_cov_141.483690" + }, + "NODE_6405_length_7196_cov_180.984316": { + "contig_id": "NODE_6405_length_7196_cov_180.984316", + "description": "", + "gc_content": 0.3923, + "length": 7196, + "md5": "aa4dbe76fa3d25550f4cd617d2dca01d", + "name": "NODE_6405_length_7196_cov_180.984316" + }, + "NODE_648_length_57727_cov_128.855684": { + "Ncount": 300, + "contig_id": "NODE_648_length_57727_cov_128.855684", + "description": "", + "gc_content": 0.63631, + "length": 57727, + "md5": "54154dbd0064a475cecad5a920f979b7", + "name": "NODE_648_length_57727_cov_128.855684" + }, + "NODE_651_length_57656_cov_142.729571": { + "contig_id": "NODE_651_length_57656_cov_142.729571", + "description": "", + "gc_content": 0.52674, + "length": 57656, + "md5": "7f525a078c4af9f969ae8a05fd113bd2", + "name": "NODE_651_length_57656_cov_142.729571" + }, + "NODE_6542_length_7049_cov_520.103231": { + "contig_id": "NODE_6542_length_7049_cov_520.103231", + "description": "", + "gc_content": 0.6364, + "length": 7049, + "md5": "290ff9efd7555fa7266dedb1eb7b3ea1", + "name": "NODE_6542_length_7049_cov_520.103231" + }, + "NODE_6566_length_7030_cov_72.684301": { + "contig_id": "NODE_6566_length_7030_cov_72.684301", + "description": "", + "gc_content": 0.40939, + "length": 7030, + "md5": "7d44d9b910d6e9483fbc285772dd2c55", + "name": "NODE_6566_length_7030_cov_72.684301" + }, + "NODE_6573_length_7017_cov_112.783252": { + "contig_id": "NODE_6573_length_7017_cov_112.783252", + "description": "", + "gc_content": 0.61622, + "length": 7017, + "md5": "b90d8bd372713235195fb96788d16d8e", + "name": "NODE_6573_length_7017_cov_112.783252" + }, + "NODE_659_length_57295_cov_15.796820": { + "Ncount": 100, + "contig_id": "NODE_659_length_57295_cov_15.796820", + "description": "", + "gc_content": 0.40384, + "length": 57295, + "md5": "f347bca2a8f3b7a70c530a6dbd42968c", + "name": "NODE_659_length_57295_cov_15.796820" + }, + "NODE_6609_length_6984_cov_24.225285": { + "contig_id": "NODE_6609_length_6984_cov_24.225285", + "description": "", + "gc_content": 0.63631, + "length": 6984, + "md5": "ea76a534ed362b96e159678b89330be0", + "name": "NODE_6609_length_6984_cov_24.225285" + }, + "NODE_6618_length_6974_cov_8.079347": { + "contig_id": "NODE_6618_length_6974_cov_8.079347", + "description": "", + "gc_content": 0.68827, + "length": 6974, + "md5": "c1d13b5df9941628f66d893788c5d073", + "name": "NODE_6618_length_6974_cov_8.079347" + }, + "NODE_6672_length_6919_cov_614.467075": { + "contig_id": "NODE_6672_length_6919_cov_614.467075", + "description": "", + "gc_content": 0.59431, + "length": 6919, + "md5": "345014a26f92351bee0dc1f250adea58", + "name": "NODE_6672_length_6919_cov_614.467075" + }, + "NODE_6693_length_6890_cov_85.482809": { + "contig_id": "NODE_6693_length_6890_cov_85.482809", + "description": "", + "gc_content": 0.65588, + "length": 6890, + "md5": "592f82300005a33bfad0a7dd2a21e7c3", + "name": "NODE_6693_length_6890_cov_85.482809" + }, + "NODE_6699_length_6884_cov_7.543418": { + "contig_id": "NODE_6699_length_6884_cov_7.543418", + "description": "", + "gc_content": 0.67882, + "length": 6884, + "md5": "b2549e035d0ebbe84af43e4e21197d72", + "name": "NODE_6699_length_6884_cov_7.543418" + }, + "NODE_6731_length_6854_cov_17.630534": { + "contig_id": "NODE_6731_length_6854_cov_17.630534", + "description": "", + "gc_content": 0.47651, + "length": 6854, + "md5": "6726dcd340ec9dac1d8b0a4aa6443741", + "name": "NODE_6731_length_6854_cov_17.630534" + }, + "NODE_6750_length_6834_cov_7.684319": { + "contig_id": "NODE_6750_length_6834_cov_7.684319", + "description": "", + "gc_content": 0.64516, + "length": 6834, + "md5": "c0a39065df04857c3c3b966a24442756", + "name": "NODE_6750_length_6834_cov_7.684319" + }, + "NODE_6751_length_6833_cov_20.854529": { + "contig_id": "NODE_6751_length_6833_cov_20.854529", + "description": "", + "gc_content": 0.46583, + "length": 6833, + "md5": "fd2b887ba74656ba118a0990c302bb11", + "name": "NODE_6751_length_6833_cov_20.854529" + }, + "NODE_6774_length_6802_cov_29.489551": { + "contig_id": "NODE_6774_length_6802_cov_29.489551", + "description": "", + "gc_content": 0.62864, + "length": 6802, + "md5": "61e89914a79b2d15e5b157085dfec790", + "name": "NODE_6774_length_6802_cov_29.489551" + }, + "NODE_679_length_56544_cov_113.413957": { + "Ncount": 200, + "contig_id": "NODE_679_length_56544_cov_113.413957", + "description": "", + "gc_content": 0.64396, + "length": 56544, + "md5": "714bab70ee3be5061e1a5eae9f49713f", + "name": "NODE_679_length_56544_cov_113.413957" + }, + "NODE_680_length_56331_cov_153.990209": { + "contig_id": "NODE_680_length_56331_cov_153.990209", + "description": "", + "gc_content": 0.5017, + "length": 56331, + "md5": "ff164cc73fa48d87e6889cdacc80dab2", + "name": "NODE_680_length_56331_cov_153.990209" + }, + "NODE_6810_length_6767_cov_119.059893": { + "contig_id": "NODE_6810_length_6767_cov_119.059893", + "description": "", + "gc_content": 0.65553, + "length": 6767, + "md5": "b1259a977e2a5fb462815b1c373ab9e5", + "name": "NODE_6810_length_6767_cov_119.059893" + }, + "NODE_683_length_56170_cov_132.757658": { + "Ncount": 100, + "contig_id": "NODE_683_length_56170_cov_132.757658", + "description": "", + "gc_content": 0.64079, + "length": 56170, + "md5": "192be8d0fec1a5fad860ebd06c47d916", + "name": "NODE_683_length_56170_cov_132.757658" + }, + "NODE_685_length_56139_cov_106.838403": { + "contig_id": "NODE_685_length_56139_cov_106.838403", + "description": "", + "gc_content": 0.64787, + "length": 56139, + "md5": "b3b99a4a45cfcee5afcd180bbbcb1ea0", + "name": "NODE_685_length_56139_cov_106.838403" + }, + "NODE_6891_length_6698_cov_15.409002": { + "contig_id": "NODE_6891_length_6698_cov_15.409002", + "description": "", + "gc_content": 0.50567, + "length": 6698, + "md5": "206126a474a81151d8e39bf55ab39bd4", + "name": "NODE_6891_length_6698_cov_15.409002" + }, + "NODE_690_length_55970_cov_31.828937": { + "contig_id": "NODE_690_length_55970_cov_31.828937", + "description": "", + "gc_content": 0.64351, + "length": 55970, + "md5": "cb9f6eb80487958ddbc5670583b4d15a", + "name": "NODE_690_length_55970_cov_31.828937" + }, + "NODE_691_length_55900_cov_15.467025": { + "Ncount": 200, + "contig_id": "NODE_691_length_55900_cov_15.467025", + "description": "", + "gc_content": 0.41301, + "length": 55900, + "md5": "1afc97a71676ddc3e654325f4c8becba", + "name": "NODE_691_length_55900_cov_15.467025" + }, + "NODE_6920_length_6679_cov_11.783514": { + "contig_id": "NODE_6920_length_6679_cov_11.783514", + "description": "", + "gc_content": 0.36113, + "length": 6679, + "md5": "59d41204e12cb49dc270eb473bfc72ea", + "name": "NODE_6920_length_6679_cov_11.783514" + }, + "NODE_6925_length_6674_cov_141.037317": { + "contig_id": "NODE_6925_length_6674_cov_141.037317", + "description": "", + "gc_content": 0.29353, + "length": 6674, + "md5": "6593862f91218f09c936ce952fd12964", + "name": "NODE_6925_length_6674_cov_141.037317" + }, + "NODE_6939_length_6655_cov_8.166364": { + "contig_id": "NODE_6939_length_6655_cov_8.166364", + "description": "", + "gc_content": 0.68745, + "length": 6655, + "md5": "deda3a8b52d3f61441d6bf5a6e2ae0b1", + "name": "NODE_6939_length_6655_cov_8.166364" + }, + "NODE_697_length_55642_cov_21.635454": { + "contig_id": "NODE_697_length_55642_cov_21.635454", + "description": "", + "gc_content": 0.39237, + "length": 55642, + "md5": "b056176d1cba2c4e963950f02a576684", + "name": "NODE_697_length_55642_cov_21.635454" + }, + "NODE_6_length_783337_cov_571.650609": { + "Ncount": 20, + "contig_id": "NODE_6_length_783337_cov_571.650609", + "description": "", + "gc_content": 0.63842, + "length": 783337, + "md5": "16fbf10493b5eabf53e06e532ca2f3b8", + "name": "NODE_6_length_783337_cov_571.650609" + }, + "NODE_7020_length_6575_cov_8.774693": { + "contig_id": "NODE_7020_length_6575_cov_8.774693", + "description": "", + "gc_content": 0.69703, + "length": 6575, + "md5": "612adfcbbb8c98fa8b588ecd91b9485b", + "name": "NODE_7020_length_6575_cov_8.774693" + }, + "NODE_7029_length_6565_cov_242.124578": { + "contig_id": "NODE_7029_length_6565_cov_242.124578", + "description": "", + "gc_content": 0.38979, + "length": 6565, + "md5": "23b3f7c7febfee6dc1057eec7fe036a2", + "name": "NODE_7029_length_6565_cov_242.124578" + }, + "NODE_7036_length_6560_cov_117.717602": { + "Ncount": 100, + "contig_id": "NODE_7036_length_6560_cov_117.717602", + "description": "", + "gc_content": 0.6503, + "length": 6560, + "md5": "67904acedce0a28116dcbaaa50e76718", + "name": "NODE_7036_length_6560_cov_117.717602" + }, + "NODE_7047_length_6551_cov_115.536638": { + "contig_id": "NODE_7047_length_6551_cov_115.536638", + "description": "", + "gc_content": 0.64341, + "length": 6551, + "md5": "48aaac078e013e007d264aa4b6ad2818", + "name": "NODE_7047_length_6551_cov_115.536638" + }, + "NODE_706_length_55137_cov_29.516394": { + "contig_id": "NODE_706_length_55137_cov_29.516394", + "description": "", + "gc_content": 0.63834, + "length": 55137, + "md5": "63830ab00e23f627d3562c07c2264ae4", + "name": "NODE_706_length_55137_cov_29.516394" + }, + "NODE_717_length_54760_cov_8.356110": { + "contig_id": "NODE_717_length_54760_cov_8.356110", + "description": "", + "gc_content": 0.66063, + "length": 54760, + "md5": "da86e9b93e649ec725338f8506a9f7ee", + "name": "NODE_717_length_54760_cov_8.356110" + }, + "NODE_7242_length_6394_cov_25.830573": { + "contig_id": "NODE_7242_length_6394_cov_25.830573", + "description": "", + "gc_content": 0.67047, + "length": 6394, + "md5": "c86d543f3b1c67fd4b0879990d7716a6", + "name": "NODE_7242_length_6394_cov_25.830573" + }, + "NODE_7245_length_6391_cov_14.648043": { + "contig_id": "NODE_7245_length_6391_cov_14.648043", + "description": "", + "gc_content": 0.33328, + "length": 6391, + "md5": "e36466af321ed33953f468cc145ecc9c", + "name": "NODE_7245_length_6391_cov_14.648043" + }, + "NODE_7275_length_6364_cov_129.431923": { + "contig_id": "NODE_7275_length_6364_cov_129.431923", + "description": "", + "gc_content": 0.62665, + "length": 6364, + "md5": "032ae8bdf751a8dc7aeb938271a7fd79", + "name": "NODE_7275_length_6364_cov_129.431923" + }, + "NODE_7282_length_6355_cov_27.245397": { + "Ncount": 100, + "contig_id": "NODE_7282_length_6355_cov_27.245397", + "description": "", + "gc_content": 0.39449, + "length": 6355, + "md5": "a510f1a0285d6442ae55d6cc6e68e894", + "name": "NODE_7282_length_6355_cov_27.245397" + }, + "NODE_736_length_53493_cov_9.202945": { + "Ncount": 10, + "contig_id": "NODE_736_length_53493_cov_9.202945", + "description": "", + "gc_content": 0.67607, + "length": 53493, + "md5": "12d3a4a6c468173c2f8d75770bf1a7f3", + "name": "NODE_736_length_53493_cov_9.202945" + }, + "NODE_7395_length_6272_cov_37.732508": { + "contig_id": "NODE_7395_length_6272_cov_37.732508", + "description": "", + "gc_content": 0.53492, + "length": 6272, + "md5": "1b1c42415c00b5b577a0189ca8ead1c9", + "name": "NODE_7395_length_6272_cov_37.732508" + }, + "NODE_7411_length_6260_cov_45.889122": { + "contig_id": "NODE_7411_length_6260_cov_45.889122", + "description": "", + "gc_content": 0.59185, + "length": 6260, + "md5": "05c1b8480e0f4da9b771e47eefd2dd76", + "name": "NODE_7411_length_6260_cov_45.889122" + }, + "NODE_7423_length_6253_cov_140.303162": { + "contig_id": "NODE_7423_length_6253_cov_140.303162", + "description": "", + "gc_content": 0.38094, + "length": 6253, + "md5": "08a31f3bec01fdd9fa1d47a4a7504f80", + "name": "NODE_7423_length_6253_cov_140.303162" + }, + "NODE_743_length_53171_cov_28.472927": { + "contig_id": "NODE_743_length_53171_cov_28.472927", + "description": "", + "gc_content": 0.64595, + "length": 53171, + "md5": "71e684c40ddcc83b92699b213bd6a227", + "name": "NODE_743_length_53171_cov_28.472927" + }, + "NODE_7461_length_6223_cov_178.169423": { + "contig_id": "NODE_7461_length_6223_cov_178.169423", + "description": "", + "gc_content": 0.47951, + "length": 6223, + "md5": "5aa9ba857bb48cddeaba6dd088619285", + "name": "NODE_7461_length_6223_cov_178.169423" + }, + "NODE_7482_length_6205_cov_7.075610": { + "contig_id": "NODE_7482_length_6205_cov_7.075610", + "description": "", + "gc_content": 0.67446, + "length": 6205, + "md5": "cc08621722ac084b262a716cfd1b1181", + "name": "NODE_7482_length_6205_cov_7.075610" + }, + "NODE_7515_length_6176_cov_123.871426": { + "contig_id": "NODE_7515_length_6176_cov_123.871426", + "description": "", + "gc_content": 0.64718, + "length": 6176, + "md5": "088f2f3c73eb43499a10da1e6519ce32", + "name": "NODE_7515_length_6176_cov_123.871426" + }, + "NODE_754_length_52444_cov_15.900590": { + "contig_id": "NODE_754_length_52444_cov_15.900590", + "description": "", + "gc_content": 0.39888, + "length": 52444, + "md5": "ca5c522955de94471a6030d818573acc", + "name": "NODE_754_length_52444_cov_15.900590" + }, + "NODE_7557_length_6149_cov_7.029209": { + "Ncount": 100, + "contig_id": "NODE_7557_length_6149_cov_7.029209", + "description": "", + "gc_content": 0.6767, + "length": 6149, + "md5": "0cfc7d374caa141093adf819dcd8a391", + "name": "NODE_7557_length_6149_cov_7.029209" + }, + "NODE_755_length_52404_cov_8.757340": { + "contig_id": "NODE_755_length_52404_cov_8.757340", + "description": "", + "gc_content": 0.65352, + "length": 52404, + "md5": "dbe0d05dd1eb14a539fcb9ed26d81330", + "name": "NODE_755_length_52404_cov_8.757340" + }, + "NODE_7589_length_6125_cov_17.656507": { + "contig_id": "NODE_7589_length_6125_cov_17.656507", + "description": "", + "gc_content": 0.39249, + "length": 6125, + "md5": "e4af8c2df3a30d02e4879a1e015e3d4c", + "name": "NODE_7589_length_6125_cov_17.656507" + }, + "NODE_7625_length_6093_cov_31.955780": { + "contig_id": "NODE_7625_length_6093_cov_31.955780", + "description": "", + "gc_content": 0.52421, + "length": 6093, + "md5": "f44982f2c2f6e810e226a787b3350d5d", + "name": "NODE_7625_length_6093_cov_31.955780" + }, + "NODE_766_length_51854_cov_15.814205": { + "contig_id": "NODE_766_length_51854_cov_15.814205", + "description": "", + "gc_content": 0.48673, + "length": 51854, + "md5": "f0aeaa15df6545a5d211b61b3fad324a", + "name": "NODE_766_length_51854_cov_15.814205" + }, + "NODE_770_length_51760_cov_137.383483": { + "Ncount": 100, + "contig_id": "NODE_770_length_51760_cov_137.383483", + "description": "", + "gc_content": 0.64865, + "length": 51760, + "md5": "4075b62da867e57cac014a79af497bf4", + "name": "NODE_770_length_51760_cov_137.383483" + }, + "NODE_7724_length_6015_cov_53.270638": { + "contig_id": "NODE_7724_length_6015_cov_53.270638", + "description": "", + "gc_content": 0.62494, + "length": 6015, + "md5": "df254986826d8ef211404f99ac8d1ce4", + "name": "NODE_7724_length_6015_cov_53.270638" + }, + "NODE_774_length_51547_cov_122.440049": { + "contig_id": "NODE_774_length_51547_cov_122.440049", + "description": "", + "gc_content": 0.64605, + "length": 51547, + "md5": "c0410b616b52eaac7dc223f85d295893", + "name": "NODE_774_length_51547_cov_122.440049" + }, + "NODE_7844_length_5920_cov_57.136061": { + "contig_id": "NODE_7844_length_5920_cov_57.136061", + "description": "", + "gc_content": 0.61318, + "length": 5920, + "md5": "1dc75c731ac68a159578d414fe21f00c", + "name": "NODE_7844_length_5920_cov_57.136061" + }, + "NODE_7850_length_5916_cov_32.574475": { + "Ncount": 57, + "contig_id": "NODE_7850_length_5916_cov_32.574475", + "description": "", + "gc_content": 0.63455, + "length": 5916, + "md5": "673e9dd5826e566507f1e9035fb49ee9", + "name": "NODE_7850_length_5916_cov_32.574475" + }, + "NODE_789_length_50826_cov_143.577140": { + "contig_id": "NODE_789_length_50826_cov_143.577140", + "description": "", + "gc_content": 0.53087, + "length": 50826, + "md5": "57e5ee62107e62fac5b8a372f7bea0c4", + "name": "NODE_789_length_50826_cov_143.577140" + }, + "NODE_78_length_199467_cov_625.100716": { + "Ncount": 10, + "contig_id": "NODE_78_length_199467_cov_625.100716", + "description": "", + "gc_content": 0.63796, + "length": 199467, + "md5": "69c1e9843c77931c1800c81d49a6defd", + "name": "NODE_78_length_199467_cov_625.100716" + }, + "NODE_791_length_50791_cov_18.057750": { + "contig_id": "NODE_791_length_50791_cov_18.057750", + "description": "", + "gc_content": 0.38948, + "length": 50791, + "md5": "49d89fbb62594ff3706172c565fab800", + "name": "NODE_791_length_50791_cov_18.057750" + }, + "NODE_7925_length_5859_cov_5.237939": { + "contig_id": "NODE_7925_length_5859_cov_5.237939", + "description": "", + "gc_content": 0.6665, + "length": 5859, + "md5": "6f10a3913dc1364afb6b880c21411f45", + "name": "NODE_7925_length_5859_cov_5.237939" + }, + "NODE_7944_length_5850_cov_23.809491": { + "contig_id": "NODE_7944_length_5850_cov_23.809491", + "description": "", + "gc_content": 0.35179, + "length": 5850, + "md5": "dbd62acecb19aeef6e58b207ffbb2251", + "name": "NODE_7944_length_5850_cov_23.809491" + }, + "NODE_7968_length_5840_cov_67.807260": { + "contig_id": "NODE_7968_length_5840_cov_67.807260", + "description": "", + "gc_content": 0.62055, + "length": 5840, + "md5": "2265975e5e925da422bfa5838b94478c", + "name": "NODE_7968_length_5840_cov_67.807260" + }, + "NODE_7985_length_5829_cov_13.211812": { + "contig_id": "NODE_7985_length_5829_cov_13.211812", + "description": "", + "gc_content": 0.41311, + "length": 5829, + "md5": "81ee3b247140f5c617f275c3d214fcda", + "name": "NODE_7985_length_5829_cov_13.211812" + }, + "NODE_8023_length_5806_cov_27.846809": { + "contig_id": "NODE_8023_length_5806_cov_27.846809", + "description": "", + "gc_content": 0.65295, + "length": 5806, + "md5": "628d33d81b17f61974011f6f0a109d56", + "name": "NODE_8023_length_5806_cov_27.846809" + }, + "NODE_8043_length_5797_cov_10.840300": { + "contig_id": "NODE_8043_length_5797_cov_10.840300", + "description": "", + "gc_content": 0.39451, + "length": 5797, + "md5": "3caf3f28a63ea1418f78a66c20cc0ea0", + "name": "NODE_8043_length_5797_cov_10.840300" + }, + "NODE_807_length_49891_cov_134.850971": { + "contig_id": "NODE_807_length_49891_cov_134.850971", + "description": "", + "gc_content": 0.38684, + "length": 49891, + "md5": "4732474d838de7ddfacf4b322aa475fb", + "name": "NODE_807_length_49891_cov_134.850971" + }, + "NODE_80_length_197697_cov_116.540361": { + "Ncount": 100, + "contig_id": "NODE_80_length_197697_cov_116.540361", + "description": "", + "gc_content": 0.63843, + "length": 197697, + "md5": "1f95c7c74e2c34362cd6ffbdb764b913", + "name": "NODE_80_length_197697_cov_116.540361" + }, + "NODE_812_length_49703_cov_16.488801": { + "contig_id": "NODE_812_length_49703_cov_16.488801", + "description": "", + "gc_content": 0.49061, + "length": 49703, + "md5": "d9ca2571e2838f6e8ecd1add669fad15", + "name": "NODE_812_length_49703_cov_16.488801" + }, + "NODE_8162_length_5726_cov_35.282137": { + "Ncount": 31, + "contig_id": "NODE_8162_length_5726_cov_35.282137", + "description": "", + "gc_content": 0.60933, + "length": 5726, + "md5": "9fd4410765a000b4c538dd5755945791", + "name": "NODE_8162_length_5726_cov_35.282137" + }, + "NODE_816_length_49547_cov_129.349370": { + "contig_id": "NODE_816_length_49547_cov_129.349370", + "description": "", + "gc_content": 0.39066, + "length": 49547, + "md5": "a37ffc8c7e6c090c003eb014c10d5da5", + "name": "NODE_816_length_49547_cov_129.349370" + }, + "NODE_81_length_197616_cov_8.798715": { + "contig_id": "NODE_81_length_197616_cov_8.798715", + "description": "", + "gc_content": 0.67061, + "length": 197616, + "md5": "bb6e4325aae28b71eac41fac3edc2fc0", + "name": "NODE_81_length_197616_cov_8.798715" + }, + "NODE_8207_length_5693_cov_39.400319": { + "contig_id": "NODE_8207_length_5693_cov_39.400319", + "description": "", + "gc_content": 0.6183, + "length": 5693, + "md5": "9c44c619b46ad5776a56437ddd66d5fe", + "name": "NODE_8207_length_5693_cov_39.400319" + }, + "NODE_8212_length_5691_cov_52.415366": { + "contig_id": "NODE_8212_length_5691_cov_52.415366", + "description": "", + "gc_content": 0.57143, + "length": 5691, + "md5": "c375824813e0173b9ae6d8b5d4c727b9", + "name": "NODE_8212_length_5691_cov_52.415366" + }, + "NODE_8229_length_5683_cov_15.362296": { + "contig_id": "NODE_8229_length_5683_cov_15.362296", + "description": "", + "gc_content": 0.40049, + "length": 5683, + "md5": "aa2f59422e0454f65d84158161fa8de0", + "name": "NODE_8229_length_5683_cov_15.362296" + }, + "NODE_822_length_49194_cov_15.369625": { + "contig_id": "NODE_822_length_49194_cov_15.369625", + "description": "", + "gc_content": 0.48614, + "length": 49194, + "md5": "7ff4ad4cd68c6262ea4e0931910e0cec", + "name": "NODE_822_length_49194_cov_15.369625" + }, + "NODE_824_length_49162_cov_133.993484": { + "Ncount": 200, + "contig_id": "NODE_824_length_49162_cov_133.993484", + "description": "", + "gc_content": 0.64047, + "length": 49162, + "md5": "154f0e8193b0695dd4638e363ef2545d", + "name": "NODE_824_length_49162_cov_133.993484" + }, + "NODE_8279_length_5657_cov_125.824348": { + "contig_id": "NODE_8279_length_5657_cov_125.824348", + "description": "", + "gc_content": 0.69524, + "length": 5657, + "md5": "f6b7b49ea8afbaf6c0c87980f69015ee", + "name": "NODE_8279_length_5657_cov_125.824348" + }, + "NODE_8280_length_5656_cov_14.131048": { + "contig_id": "NODE_8280_length_5656_cov_14.131048", + "description": "", + "gc_content": 0.37571, + "length": 5656, + "md5": "6b6103c93f75d268ce209aea3e330470", + "name": "NODE_8280_length_5656_cov_14.131048" + }, + "NODE_8288_length_5650_cov_25.592493": { + "contig_id": "NODE_8288_length_5650_cov_25.592493", + "description": "", + "gc_content": 0.60814, + "length": 5650, + "md5": "7699719a3a0ca1caedfca223daa3f0c4", + "name": "NODE_8288_length_5650_cov_25.592493" + }, + "NODE_831_length_48890_cov_126.042981": { + "contig_id": "NODE_831_length_48890_cov_126.042981", + "description": "", + "gc_content": 0.63408, + "length": 48890, + "md5": "d42c8655358028205bdaacd07cb9986e", + "name": "NODE_831_length_48890_cov_126.042981" + }, + "NODE_833_length_48710_cov_139.315569": { + "contig_id": "NODE_833_length_48710_cov_139.315569", + "description": "", + "gc_content": 0.6526, + "length": 48710, + "md5": "68ddb40adc519fb99c47e96c075a03a8", + "name": "NODE_833_length_48710_cov_139.315569" + }, + "NODE_8351_length_5612_cov_59.402555": { + "contig_id": "NODE_8351_length_5612_cov_59.402555", + "description": "", + "gc_content": 0.32627, + "length": 5612, + "md5": "3e0fd03b341564ee9c09b5da770ee000", + "name": "NODE_8351_length_5612_cov_59.402555" + }, + "NODE_8376_length_5597_cov_587.659329": { + "contig_id": "NODE_8376_length_5597_cov_587.659329", + "description": "", + "gc_content": 0.62194, + "length": 5597, + "md5": "4acd6de0447fe246b118204590136f37", + "name": "NODE_8376_length_5597_cov_587.659329" + }, + "NODE_839_length_48199_cov_17.055438": { + "contig_id": "NODE_839_length_48199_cov_17.055438", + "description": "", + "gc_content": 0.40729, + "length": 48199, + "md5": "52d4a1c51f4baad3b6998804d4655dc1", + "name": "NODE_839_length_48199_cov_17.055438" + }, + "NODE_83_length_196022_cov_154.407268": { + "contig_id": "NODE_83_length_196022_cov_154.407268", + "description": "", + "gc_content": 0.50892, + "length": 196022, + "md5": "70fa5bd747167eaa00a0e7063445b3ea", + "name": "NODE_83_length_196022_cov_154.407268" + }, + "NODE_84_length_192950_cov_576.564587": { + "Ncount": 10, + "contig_id": "NODE_84_length_192950_cov_576.564587", + "description": "", + "gc_content": 0.6322, + "length": 192950, + "md5": "6adb310d3cc0d17df7b65eb888e22d7f", + "name": "NODE_84_length_192950_cov_576.564587" + }, + "NODE_8562_length_5491_cov_89.790287": { + "contig_id": "NODE_8562_length_5491_cov_89.790287", + "description": "", + "gc_content": 0.45274, + "length": 5491, + "md5": "1645961dc4758794e81e9d0429608d0d", + "name": "NODE_8562_length_5491_cov_89.790287" + }, + "NODE_8579_length_5485_cov_245.198158": { + "contig_id": "NODE_8579_length_5485_cov_245.198158", + "description": "", + "gc_content": 0.41386, + "length": 5485, + "md5": "f4ea6e5310a63a442e8803a839182733", + "name": "NODE_8579_length_5485_cov_245.198158" + }, + "NODE_8591_length_5477_cov_152.780708": { + "contig_id": "NODE_8591_length_5477_cov_152.780708", + "description": "", + "gc_content": 0.64579, + "length": 5477, + "md5": "934b14e00949e74aa359d67a8f2b4e38", + "name": "NODE_8591_length_5477_cov_152.780708" + }, + "NODE_8672_length_5423_cov_20.928651": { + "contig_id": "NODE_8672_length_5423_cov_20.928651", + "description": "", + "gc_content": 0.37083, + "length": 5423, + "md5": "fd453c19e3de7c3e5ef99586592c5584", + "name": "NODE_8672_length_5423_cov_20.928651" + }, + "NODE_873_length_46695_cov_144.317217": { + "Ncount": 200, + "contig_id": "NODE_873_length_46695_cov_144.317217", + "description": "", + "gc_content": 0.64033, + "length": 46695, + "md5": "dea2ea5a058ac2b6c8ab461da39181fe", + "name": "NODE_873_length_46695_cov_144.317217" + }, + "NODE_87_length_190175_cov_30.214338": { + "Ncount": 100, + "contig_id": "NODE_87_length_190175_cov_30.214338", + "description": "", + "gc_content": 0.6464, + "length": 190175, + "md5": "2443c562796ce3793180ff8846b93b31", + "name": "NODE_87_length_190175_cov_30.214338" + }, + "NODE_883_length_46178_cov_136.335234": { + "contig_id": "NODE_883_length_46178_cov_136.335234", + "description": "", + "gc_content": 0.63643, + "length": 46178, + "md5": "b77944176bffd6b91488af7c9c4a8c65", + "name": "NODE_883_length_46178_cov_136.335234" + }, + "NODE_884_length_46167_cov_133.556992": { + "Ncount": 200, + "contig_id": "NODE_884_length_46167_cov_133.556992", + "description": "", + "gc_content": 0.63437, + "length": 46167, + "md5": "ea943ce64798bfd1a65086c0f37f8a52", + "name": "NODE_884_length_46167_cov_133.556992" + }, + "NODE_886_length_46025_cov_9.440178": { + "Ncount": 10, + "contig_id": "NODE_886_length_46025_cov_9.440178", + "description": "", + "gc_content": 0.675, + "length": 46025, + "md5": "03425a712ececebebb80a5dbd241d1cf", + "name": "NODE_886_length_46025_cov_9.440178" + }, + "NODE_88_length_190096_cov_14.562521": { + "contig_id": "NODE_88_length_190096_cov_14.562521", + "description": "", + "gc_content": 0.4974, + "length": 190096, + "md5": "77ab5605f21f87fc56120bdbd37d6f59", + "name": "NODE_88_length_190096_cov_14.562521" + }, + "NODE_9040_length_5209_cov_25.655801": { + "contig_id": "NODE_9040_length_5209_cov_25.655801", + "description": "", + "gc_content": 0.61413, + "length": 5209, + "md5": "04596f6d09c5992471a41b23b41ef059", + "name": "NODE_9040_length_5209_cov_25.655801" + }, + "NODE_9047_length_5204_cov_20.159060": { + "contig_id": "NODE_9047_length_5204_cov_20.159060", + "description": "", + "gc_content": 0.40949, + "length": 5204, + "md5": "d65a37520d6685ff9c0c71050a27f4fa", + "name": "NODE_9047_length_5204_cov_20.159060" + }, + "NODE_909_length_45091_cov_529.995803": { + "Ncount": 10, + "contig_id": "NODE_909_length_45091_cov_529.995803", + "description": "", + "gc_content": 0.63305, + "length": 45091, + "md5": "2e65688fcde7fe0290c39180e73b17ca", + "name": "NODE_909_length_45091_cov_529.995803" + }, + "NODE_9114_length_5170_cov_27.644575": { + "contig_id": "NODE_9114_length_5170_cov_27.644575", + "description": "", + "gc_content": 0.63791, + "length": 5170, + "md5": "a458e82f12dd87f44fdf77b585811db9", + "name": "NODE_9114_length_5170_cov_27.644575" + }, + "NODE_911_length_45084_cov_30.755891": { + "contig_id": "NODE_911_length_45084_cov_30.755891", + "description": "", + "gc_content": 0.63457, + "length": 45084, + "md5": "08bf1192c95d2b6bfb97e08ac1e49123", + "name": "NODE_911_length_45084_cov_30.755891" + }, + "NODE_9177_length_5139_cov_122.266129": { + "contig_id": "NODE_9177_length_5139_cov_122.266129", + "description": "", + "gc_content": 0.40845, + "length": 5139, + "md5": "8eff252a3d81d59fb38273d938db7296", + "name": "NODE_9177_length_5139_cov_122.266129" + }, + "NODE_9268_length_5090_cov_60.494340": { + "contig_id": "NODE_9268_length_5090_cov_60.494340", + "description": "", + "gc_content": 0.63222, + "length": 5090, + "md5": "64c944365bfdc0c4c22c6bcf0e00ec1a", + "name": "NODE_9268_length_5090_cov_60.494340" + }, + "NODE_9314_length_5070_cov_112.129013": { + "contig_id": "NODE_9314_length_5070_cov_112.129013", + "description": "", + "gc_content": 0.61203, + "length": 5070, + "md5": "7843bad69de0abbcca3e160b430277e5", + "name": "NODE_9314_length_5070_cov_112.129013" + }, + "NODE_9327_length_5062_cov_607.352506": { + "contig_id": "NODE_9327_length_5062_cov_607.352506", + "description": "", + "gc_content": 0.61063, + "length": 5062, + "md5": "be1ac5d4b2047f844124a87a25eea084", + "name": "NODE_9327_length_5062_cov_607.352506" + }, + "NODE_9331_length_5060_cov_12.633566": { + "contig_id": "NODE_9331_length_5060_cov_12.633566", + "description": "", + "gc_content": 0.38992, + "length": 5060, + "md5": "c238cda648b19fa5492eb1c7c13440c7", + "name": "NODE_9331_length_5060_cov_12.633566" + }, + "NODE_9336_length_5056_cov_108.661868": { + "contig_id": "NODE_9336_length_5056_cov_108.661868", + "description": "", + "gc_content": 0.64379, + "length": 5056, + "md5": "6e50153448be5904a1dd2be20e0085f3", + "name": "NODE_9336_length_5056_cov_108.661868" + }, + "NODE_934_length_44183_cov_136.004940": { + "contig_id": "NODE_934_length_44183_cov_136.004940", + "description": "", + "gc_content": 0.63194, + "length": 44183, + "md5": "4783e42672b19781d8fc96c028fd10c4", + "name": "NODE_934_length_44183_cov_136.004940" + }, + "NODE_937_length_44042_cov_9.003410": { + "contig_id": "NODE_937_length_44042_cov_9.003410", + "description": "", + "gc_content": 0.68403, + "length": 44042, + "md5": "a714156ae70b1059ee9b6eb38efd8369", + "name": "NODE_937_length_44042_cov_9.003410" + }, + "NODE_93_length_184670_cov_122.713263": { + "Ncount": 400, + "contig_id": "NODE_93_length_184670_cov_122.713263", + "description": "", + "gc_content": 0.64058, + "length": 184670, + "md5": "ce3e3b2d53987de7c85e231a9562e158", + "name": "NODE_93_length_184670_cov_122.713263" + }, + "NODE_9417_length_5014_cov_14.573099": { + "Ncount": 100, + "contig_id": "NODE_9417_length_5014_cov_14.573099", + "description": "", + "gc_content": 0.44994, + "length": 5014, + "md5": "d4c30d4af01d1a9b5f63541046c72647", + "name": "NODE_9417_length_5014_cov_14.573099" + }, + "NODE_945_length_43815_cov_17.299200": { + "contig_id": "NODE_945_length_43815_cov_17.299200", + "description": "", + "gc_content": 0.39187, + "length": 43815, + "md5": "c621ced3c7579f55144008a75238905a", + "name": "NODE_945_length_43815_cov_17.299200" + }, + "NODE_946_length_43726_cov_134.859999": { + "contig_id": "NODE_946_length_43726_cov_134.859999", + "description": "", + "gc_content": 0.64294, + "length": 43726, + "md5": "416adcfa414b7b4f7571cb4dd3b9dfad", + "name": "NODE_946_length_43726_cov_134.859999" + }, + "NODE_94_length_184300_cov_14.870216": { + "contig_id": "NODE_94_length_184300_cov_14.870216", + "description": "", + "gc_content": 0.49742, + "length": 184300, + "md5": "6c3f96fa2623209f8e7d9dd5d85f3ffa", + "name": "NODE_94_length_184300_cov_14.870216" + }, + "NODE_954_length_43446_cov_122.656611": { + "Ncount": 100, + "contig_id": "NODE_954_length_43446_cov_122.656611", + "description": "", + "gc_content": 0.64291, + "length": 43446, + "md5": "0a01e5445b4ae5e1604cbb14cf46b928", + "name": "NODE_954_length_43446_cov_122.656611" + }, + "NODE_9577_length_4930_cov_87.790564": { + "contig_id": "NODE_9577_length_4930_cov_87.790564", + "description": "", + "gc_content": 0.6574, + "length": 4930, + "md5": "a99f6a7bd789552a4ef161cf9316654b", + "name": "NODE_9577_length_4930_cov_87.790564" + }, + "NODE_9630_length_4911_cov_25.354613": { + "Ncount": 100, + "contig_id": "NODE_9630_length_4911_cov_25.354613", + "description": "", + "gc_content": 0.38668, + "length": 4911, + "md5": "b5223c91ab938e984a6faf142aa47a2e", + "name": "NODE_9630_length_4911_cov_25.354613" + }, + "NODE_9696_length_4883_cov_8.201947": { + "contig_id": "NODE_9696_length_4883_cov_8.201947", + "description": "", + "gc_content": 0.64305, + "length": 4883, + "md5": "e38a369bfe4c32a4ef75abf4d38a9c4d", + "name": "NODE_9696_length_4883_cov_8.201947" + }, + "NODE_978_length_42563_cov_644.872048": { + "contig_id": "NODE_978_length_42563_cov_644.872048", + "description": "", + "gc_content": 0.64617, + "length": 42563, + "md5": "7092bac662701bacc363b44aeac1fd93", + "name": "NODE_978_length_42563_cov_644.872048" + }, + "NODE_9920_length_4793_cov_24.394681": { + "contig_id": "NODE_9920_length_4793_cov_24.394681", + "description": "", + "gc_content": 0.3382, + "length": 4793, + "md5": "a8a1ecedf5f3bb9064b9858b2818b07d", + "name": "NODE_9920_length_4793_cov_24.394681" + }, + "NODE_994_length_42117_cov_17.135918": { + "contig_id": "NODE_994_length_42117_cov_17.135918", + "description": "", + "gc_content": 0.39329, + "length": 42117, + "md5": "c15c8bd51a683390e21912b21cee2392", + "name": "NODE_994_length_42117_cov_17.135918" + }, + "NODE_9964_length_4775_cov_27.418432": { + "Ncount": 100, + "contig_id": "NODE_9964_length_4775_cov_27.418432", + "description": "", + "gc_content": 0.36147, + "length": 4775, + "md5": "31f8d583dd52a1d062cfd6a728d81a15", + "name": "NODE_9964_length_4775_cov_27.418432" + }, + "NODE_99_length_180926_cov_149.891685": { + "contig_id": "NODE_99_length_180926_cov_149.891685", + "description": "", + "gc_content": 0.52841, + "length": 180926, + "md5": "6e7a745dea111244230aac216fe836a3", + "name": "NODE_99_length_180926_cov_149.891685" + } + }, + "dna_size": 32411722, + "fasta_handle_info": { + "handle": { + "file_name": "Compost_HQ_Bins.fa_assembly.fa", + "hid": "KBH_655882", + "id": "f8c9da6c-4d6d-41b5-8e9a-6b51eedffc31", + "remote_md5": "2f1f446cb0b7894addd2a188e530ef8f", + "type": "shock", + "url": "https://ci.kbase.us/services/shock-api" + }, + "node_file_name": "Compost_HQ_Bins.fa_assembly.fa", + "shock_id": "f8c9da6c-4d6d-41b5-8e9a-6b51eedffc31", + "size": 32979107 + }, + "fasta_handle_ref": "KBH_655882", + "gc_content": 0.54941, + "md5": "b07e1c9be725d6c9220fddebd59bc75b", + "num_contigs": 709, + "type": "metagenome", + "objectInfo": { + "id": 7, + "name": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2021-10-10T22:14:02+0000", + "version": 1, + "saved_by": "kbaseuitest", + "wsid": 64493, + "ws": "kbaseuitest:narrative_1633901898363", + "checksum": "8da310c9ff85e9d448204f113553d7e7", + "size": 166430, + "metadata": { + "GC content": "0.54941", + "Size": "32411722", + "N Contigs": "709", + "MD5": "b07e1c9be725d6c9220fddebd59bc75b" + }, + "ref": "64493/7/1", + "obj_id": "ws.64493.obj.7", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2021-10-10T22:14:02.000Z" + } + } + } + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json deleted file mode 100644 index b391dd1ce9..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_1.json +++ /dev/null @@ -1,443 +0,0 @@ -{ - "status": "loaded", - "value": { - "description": "Alignments using HISAT2, v.2.1.0", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "items": [ - { - "label": "Ecoli_WT", - "ref": "30957/13/4", - "info": [ - 13, - "Ecoli_WT_R1_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:09:16+0000", - 4, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "576de411da27b159dee0579fd65cba7e", - 1062, - { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375163", - "size": "45448911", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/4/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.248", - "alignment_stats.mapped_reads": "1337324" - } - ], - "objectInfo": { - "id": 13, - "name": "Ecoli_WT_R1_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:16+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "576de411da27b159dee0579fd65cba7e", - "size": 1062, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375163", - "size": "45448911", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/4/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.248", - "alignment_stats.mapped_reads": "1337324" - }, - "ref": "30957/13/4", - "obj_id": "ws.30957.obj.13", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:16.000Z" - } - }, - { - "label": "Ecoli_WT", - "ref": "30957/16/3", - "info": [ - 16, - "Ecoli_WT_R2_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:09:22+0000", - 3, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "37ac0921fad13fbad52db7f9ec3f94f6", - 1061, - { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1080879", - "size": "36139191", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/6/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "88.843", - "alignment_stats.mapped_reads": "960285" - } - ], - "objectInfo": { - "id": 16, - "name": "Ecoli_WT_R2_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:22+0000", - "version": 3, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "37ac0921fad13fbad52db7f9ec3f94f6", - "size": 1061, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1080879", - "size": "36139191", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/6/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "88.843", - "alignment_stats.mapped_reads": "960285" - }, - "ref": "30957/16/3", - "obj_id": "ws.30957.obj.16", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:22.000Z" - } - }, - { - "label": "Ecoli_WT", - "ref": "30957/17/3", - "info": [ - 17, - "Ecoli_WT_R3_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:09:47+0000", - 3, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "474fab4f795c7da174bdb1933b78afdf", - 1061, - { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1361644", - "size": "46329215", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/7/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.12", - "alignment_stats.mapped_reads": "1322435" - } - ], - "objectInfo": { - "id": 17, - "name": "Ecoli_WT_R3_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:47+0000", - "version": 3, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "474fab4f795c7da174bdb1933b78afdf", - "size": 1061, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1361644", - "size": "46329215", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/7/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.12", - "alignment_stats.mapped_reads": "1322435" - }, - "ref": "30957/17/3", - "obj_id": "ws.30957.obj.17", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:47.000Z" - } - }, - { - "label": "Ecoli_ydcR", - "ref": "30957/18/3", - "info": [ - 18, - "Ecoli_ydcR_R1_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:10:00+0000", - 3, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "413e8220c1583a3b9d21f46f94844f84", - 1066, - { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1283399", - "size": "42745389", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/8/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.042", - "alignment_stats.mapped_reads": "1219764" - } - ], - "objectInfo": { - "id": 18, - "name": "Ecoli_ydcR_R1_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:10:00+0000", - "version": 3, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "413e8220c1583a3b9d21f46f94844f84", - "size": 1066, - "metadata": { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1283399", - "size": "42745389", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/8/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.042", - "alignment_stats.mapped_reads": "1219764" - }, - "ref": "30957/18/3", - "obj_id": "ws.30957.obj.18", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:10:00.000Z" - } - }, - { - "label": "Ecoli_ydcR", - "ref": "30957/14/4", - "info": [ - 14, - "Ecoli_ydcR_R2_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:12:56+0000", - 4, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "a25c12a75042b70870a7f16bbc67518b", - 1066, - { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1295543", - "size": "46228194", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/9/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.638", - "alignment_stats.mapped_reads": "1239029" - } - ], - "objectInfo": { - "id": 14, - "name": "Ecoli_ydcR_R2_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:12:56+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "a25c12a75042b70870a7f16bbc67518b", - "size": 1066, - "metadata": { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1295543", - "size": "46228194", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/9/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.638", - "alignment_stats.mapped_reads": "1239029" - }, - "ref": "30957/14/4", - "obj_id": "ws.30957.obj.14", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:12:56.000Z" - } - }, - { - "label": "Ecoli_ydcR", - "ref": "30957/15/4", - "info": [ - 15, - "Ecoli_ydcR_R3_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:13:11+0000", - 4, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "300f2bb4020dfb33c8754b28d50065af", - 1068, - { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375366", - "size": "46444550", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/10/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "96.953", - "alignment_stats.mapped_reads": "1333457" - } - ], - "objectInfo": { - "id": 15, - "name": "Ecoli_ydcR_R3_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:13:11+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "300f2bb4020dfb33c8754b28d50065af", - "size": 1068, - "metadata": { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375366", - "size": "46444550", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/10/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "96.953", - "alignment_stats.mapped_reads": "1333457" - }, - "ref": "30957/15/4", - "obj_id": "ws.30957.obj.15", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:13:11.000Z" - } - } - ] - }, - "selectedItem": { - "status": "loaded", - "value": { - "aligned_using": "hisat2", - "aligner_opts": { - "alignment_suffix": "_alignment", - "alignmentset_suffix": "_alignment_set", - "build_report": "0", - "condition": "Ecoli_WT", - "genome_ref": "30957/3/1", - "max_intron_length": "500000", - "min_intron_length": "20", - "no_spliced_alignment": "0", - "np": "1", - "num_threads": "2", - "orientation": "fr", - "quality_score": "phred33", - "sampleset_ref": "30957/12/1;30957/4/1", - "skip": "0", - "tailor_alignments": "dta-cufflinks", - "trim3": "0", - "trim5": "0", - "ws_name": "jjeffryes:narrative_1522765762916" - }, - "aligner_version": "2.1.0", - "alignment_stats": { - "alignment_rate": 97.248, - "mapped_reads": 1337324, - "multiple_alignments": 13935, - "properly_paired": 0, - "singletons": 1323389, - "total_reads": 1375163, - "unmapped_reads": 37839 - }, - "condition": "Ecoli_WT", - "file": { - "file_name": "accepted_hits.bam", - "hid": "KBH_455294", - "id": "43250943-1bfa-4c24-aa4e-0a5fe4eb424a", - "remote_md5": "54655741213ef6d991c0537f2c4eb33c", - "type": "shock", - "url": "https://ci.kbase.us/services/shock-api" - }, - "genome_id": "30957/3/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "read_sample_id": "30957/12/1;30957/4/1", - "size": 45448911, - "objectInfo": { - "id": 13, - "name": "Ecoli_WT_R1_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:16+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "576de411da27b159dee0579fd65cba7e", - "size": 1062, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375163", - "size": "45448911", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/4/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.248", - "alignment_stats.mapped_reads": "1337324" - }, - "ref": "30957/13/4", - "obj_id": "ws.30957.obj.13", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:16.000Z" - } - } - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json new file mode 100644 index 0000000000..e7af1715a8 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json @@ -0,0 +1,5 @@ +{ + "set": { + "status": null + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json new file mode 100644 index 0000000000..9874cf6b50 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json @@ -0,0 +1,5 @@ +{ + "set": { + "status": "loading" + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json new file mode 100644 index 0000000000..ef35650eae --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json @@ -0,0 +1,3 @@ +{ + "message": "This is an Error" +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json new file mode 100644 index 0000000000..1e760cc72f --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json @@ -0,0 +1,8 @@ +{ + "set": { + "status": "error", + "error": { + "message": "This is an Error" + } + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_expected.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_expected.json new file mode 100644 index 0000000000..63a14a2b25 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_expected.json @@ -0,0 +1,12 @@ +{ + "Description": "Alignments using HISAT2, v.2.1.0", + "Alignment type": "KBaseRNASeq.RNASeqAlignment-9.1", + "Aligned Using": "hisat2", + "Aligner Version": "2.1.0", + "Library Type": "KBaseFile.SingleEndLibrary-2.2", + "Total Reads": "1,375,163", + "Unmapped Reads": "37,839 (2.75%)", + "Mapped Reads": "1,337,324 (97.25%)", + "Multiple Alignments": "13,935 (1.04%)", + "Singletons": "1,323,389 (98.96%)" +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json new file mode 100644 index 0000000000..f1a93accda --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json @@ -0,0 +1,445 @@ +{ + "set": { + "status": "loaded", + "value": { + "description": "Alignments using HISAT2, v.2.1.0", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "items": [ + { + "label": "Ecoli_WT", + "ref": "30957/13/4", + "info": [ + 13, + "Ecoli_WT_R1_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:09:16+0000", + 4, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "576de411da27b159dee0579fd65cba7e", + 1062, + { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375163", + "size": "45448911", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/4/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.248", + "alignment_stats.mapped_reads": "1337324" + } + ], + "objectInfo": { + "id": 13, + "name": "Ecoli_WT_R1_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:16+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "576de411da27b159dee0579fd65cba7e", + "size": 1062, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375163", + "size": "45448911", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/4/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.248", + "alignment_stats.mapped_reads": "1337324" + }, + "ref": "30957/13/4", + "obj_id": "ws.30957.obj.13", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:16.000Z" + } + }, + { + "label": "Ecoli_WT", + "ref": "30957/16/3", + "info": [ + 16, + "Ecoli_WT_R2_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:09:22+0000", + 3, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "37ac0921fad13fbad52db7f9ec3f94f6", + 1061, + { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1080879", + "size": "36139191", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/6/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "88.843", + "alignment_stats.mapped_reads": "960285" + } + ], + "objectInfo": { + "id": 16, + "name": "Ecoli_WT_R2_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:22+0000", + "version": 3, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "37ac0921fad13fbad52db7f9ec3f94f6", + "size": 1061, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1080879", + "size": "36139191", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/6/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "88.843", + "alignment_stats.mapped_reads": "960285" + }, + "ref": "30957/16/3", + "obj_id": "ws.30957.obj.16", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:22.000Z" + } + }, + { + "label": "Ecoli_WT", + "ref": "30957/17/3", + "info": [ + 17, + "Ecoli_WT_R3_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:09:47+0000", + 3, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "474fab4f795c7da174bdb1933b78afdf", + 1061, + { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1361644", + "size": "46329215", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/7/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.12", + "alignment_stats.mapped_reads": "1322435" + } + ], + "objectInfo": { + "id": 17, + "name": "Ecoli_WT_R3_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:47+0000", + "version": 3, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "474fab4f795c7da174bdb1933b78afdf", + "size": 1061, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1361644", + "size": "46329215", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/7/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.12", + "alignment_stats.mapped_reads": "1322435" + }, + "ref": "30957/17/3", + "obj_id": "ws.30957.obj.17", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:47.000Z" + } + }, + { + "label": "Ecoli_ydcR", + "ref": "30957/18/3", + "info": [ + 18, + "Ecoli_ydcR_R1_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:10:00+0000", + 3, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "413e8220c1583a3b9d21f46f94844f84", + 1066, + { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1283399", + "size": "42745389", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/8/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.042", + "alignment_stats.mapped_reads": "1219764" + } + ], + "objectInfo": { + "id": 18, + "name": "Ecoli_ydcR_R1_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:10:00+0000", + "version": 3, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "413e8220c1583a3b9d21f46f94844f84", + "size": 1066, + "metadata": { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1283399", + "size": "42745389", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/8/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.042", + "alignment_stats.mapped_reads": "1219764" + }, + "ref": "30957/18/3", + "obj_id": "ws.30957.obj.18", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:10:00.000Z" + } + }, + { + "label": "Ecoli_ydcR", + "ref": "30957/14/4", + "info": [ + 14, + "Ecoli_ydcR_R2_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:12:56+0000", + 4, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "a25c12a75042b70870a7f16bbc67518b", + 1066, + { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1295543", + "size": "46228194", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/9/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.638", + "alignment_stats.mapped_reads": "1239029" + } + ], + "objectInfo": { + "id": 14, + "name": "Ecoli_ydcR_R2_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:12:56+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "a25c12a75042b70870a7f16bbc67518b", + "size": 1066, + "metadata": { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1295543", + "size": "46228194", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/9/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "95.638", + "alignment_stats.mapped_reads": "1239029" + }, + "ref": "30957/14/4", + "obj_id": "ws.30957.obj.14", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:12:56.000Z" + } + }, + { + "label": "Ecoli_ydcR", + "ref": "30957/15/4", + "info": [ + 15, + "Ecoli_ydcR_R3_alignment", + "KBaseRNASeq.RNASeqAlignment-9.1", + "2019-01-17T22:13:11+0000", + 4, + "jjeffryes", + 30957, + "jjeffryes:narrative_1522765762916", + "300f2bb4020dfb33c8754b28d50065af", + 1068, + { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375366", + "size": "46444550", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/10/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "96.953", + "alignment_stats.mapped_reads": "1333457" + } + ], + "objectInfo": { + "id": 15, + "name": "Ecoli_ydcR_R3_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:13:11+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "300f2bb4020dfb33c8754b28d50065af", + "size": 1068, + "metadata": { + "condition": "Ecoli_ydcR", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375366", + "size": "46444550", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/10/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "96.953", + "alignment_stats.mapped_reads": "1333457" + }, + "ref": "30957/15/4", + "obj_id": "ws.30957.obj.15", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:13:11.000Z" + } + } + ] + }, + "selectedItem": { + "status": "loaded", + "value": { + "aligned_using": "hisat2", + "aligner_opts": { + "alignment_suffix": "_alignment", + "alignmentset_suffix": "_alignment_set", + "build_report": "0", + "condition": "Ecoli_WT", + "genome_ref": "30957/3/1", + "max_intron_length": "500000", + "min_intron_length": "20", + "no_spliced_alignment": "0", + "np": "1", + "num_threads": "2", + "orientation": "fr", + "quality_score": "phred33", + "sampleset_ref": "30957/12/1;30957/4/1", + "skip": "0", + "tailor_alignments": "dta-cufflinks", + "trim3": "0", + "trim5": "0", + "ws_name": "jjeffryes:narrative_1522765762916" + }, + "aligner_version": "2.1.0", + "alignment_stats": { + "alignment_rate": 97.248, + "mapped_reads": 1337324, + "multiple_alignments": 13935, + "properly_paired": 0, + "singletons": 1323389, + "total_reads": 1375163, + "unmapped_reads": 37839 + }, + "condition": "Ecoli_WT", + "file": { + "file_name": "accepted_hits.bam", + "hid": "KBH_455294", + "id": "43250943-1bfa-4c24-aa4e-0a5fe4eb424a", + "remote_md5": "54655741213ef6d991c0537f2c4eb33c", + "type": "shock", + "url": "https://ci.kbase.us/services/shock-api" + }, + "genome_id": "30957/3/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "read_sample_id": "30957/12/1;30957/4/1", + "size": 45448911, + "objectInfo": { + "id": 13, + "name": "Ecoli_WT_R1_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:16+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "576de411da27b159dee0579fd65cba7e", + "size": 1062, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375163", + "size": "45448911", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/4/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.248", + "alignment_stats.mapped_reads": "1337324" + }, + "ref": "30957/13/4", + "obj_id": "ws.30957.obj.13", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:16.000Z" + } + } + } + } +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js b/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js deleted file mode 100644 index 49d05d7235..0000000000 --- a/test/unit/spec/function_output/KBaseSets/types/AssemblySet-spec.js +++ /dev/null @@ -1,33 +0,0 @@ -define([ - 'react', - 'react-dom', - 'test/unit/utils/domUtils', - 'widgets/function_output/KBaseSets/types/AssemblySetViewer', - 'json!../data/assemblyset_1.json' -], (React, ReactDOM, domUtils, AssemblySetViewer, testData1) => { - 'use strict'; - - const { createElement } = React; - const { render } = ReactDOM; - - describe('The Loader class', () => { - it('should be defined', () => { - expect(AssemblySetViewer).toBeDefined(); - }); - - it('should render a valid assembly set', async () => { - const node = document.createElement('div'); - - // install our component there - const el = createElement(AssemblySetViewer, { set: testData1 }, null); - render(el, node); - - await domUtils.waitFor(() => { - return node.innerText.includes(testData1.value.description); - }, 1000); - - expect(true).toBeTrue(); - - }); - }); -}); diff --git a/test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js new file mode 100644 index 0000000000..760dc14179 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js @@ -0,0 +1,69 @@ +define([ + 'react', + 'react-dom', + 'test/unit/utils/domUtils', + 'widgets/function_output/KBaseSets/types/AssemblySetViewer', + 'json!../data/assemblyset_case_01_props.json', + 'json!../data/assemblyset_case_02_props.json', + 'json!../data/assemblyset_case_03_props.json', + 'json!../data/assemblyset_case_04_props.json', + 'json!../data/assemblyset_case_03_expected.json', + 'json!../data/assemblyset_case_04_expected.json' +], (React, ReactDOM, domUtils, AssemblySetViewer, case1Props, case2Props, case3Props, case4Props, case3Expected, case4Expected) => { + 'use strict'; + + const { createElement } = React; + const { render } = ReactDOM; + + // 1 second timeout for waiting for async browser changes. + const ASSERT_TIMEOUT = 1000; + + describe('The AssemblySetViewer component', () => { + it('should render a loading indicator in a "null" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(AssemblySetViewer, case1Props, null); + render(el, node); + + await expectAsync(domUtils.waitForText({ + node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + })).toBeResolved(); + }); + + it('should render a loading indicator in a "loading" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(AssemblySetViewer, case2Props, null); + render(el, node); + + await expectAsync(domUtils.waitForText({ + node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + })).toBeResolved(); + }); + + it('should render an error message set in a "error" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(AssemblySetViewer, case3Props, null); + render(el, node); + + await expectAsync(domUtils.waitForText({ + node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT + })).toBeResolved(); + }); + + it('should render an assembly set in a "loaded" async status', async () => { + const node = document.createElement('div'); + + // install our component there + const el = createElement(AssemblySetViewer, case4Props, null); + render(el, node); + + for await (const [label, text] of Object.entries(case4Expected)) { + await expectAsync(domUtils.waitForText({ + node, text, label, timeout: ASSERT_TIMEOUT + })).toBeResolved(); + } + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js deleted file mode 100644 index 6d0f290c69..0000000000 --- a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSet-spec.js +++ /dev/null @@ -1,33 +0,0 @@ -define([ - 'react', - 'react-dom', - 'test/unit/utils/domUtils', - 'widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer', - 'json!../data/readsalignmentset_1.json' -], (React, ReactDOM, domUtils, ReadsAlignmentSetViewer, testData1) => { - 'use strict'; - - const { createElement } = React; - const { render } = ReactDOM; - - describe('The Loader class', () => { - it('should be defined', () => { - expect(ReadsAlignmentSetViewer).toBeDefined(); - }); - - it('should render a valid reads alignment set', async () => { - const node = document.createElement('div'); - - // install our component there - const el = createElement(ReadsAlignmentSetViewer, { set: testData1 }, null); - render(el, node); - - await domUtils.waitFor(() => { - return node.innerText.includes(testData1.value.description); - }, 1000); - - expect(true).toBeTrue(); - - }); - }); -}); diff --git a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js new file mode 100644 index 0000000000..20e195acc0 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js @@ -0,0 +1,68 @@ +define([ + 'react', + 'react-dom', + 'test/unit/utils/domUtils', + 'widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer', + 'json!../data/readsalignmentset_case_01_props.json', + 'json!../data/readsalignmentset_case_02_props.json', + 'json!../data/readsalignmentset_case_03_props.json', + 'json!../data/readsalignmentset_case_04_props.json', + 'json!../data/readsalignmentset_case_03_expected.json', + 'json!../data/readsalignmentset_case_04_expected.json' +], (React, ReactDOM, domUtils, ReadsAlignmentSetViewer, case1Props, case2Props, case3Props, case4Props, case3Expected, case4Expected) => { + 'use strict'; + + const { createElement } = React; + const { render } = ReactDOM; + + // 1 second timeout for waiting for async browser changes. + const ASSERT_TIMEOUT = 1000; + + describe('The ReadsAlignmentSetViewer component', () => { + it('should render a loading indicator in a "null" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(ReadsAlignmentSetViewer, case1Props, null); + render(el, node); + + await expectAsync(domUtils.waitForText({ + node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + })).toBeResolved(); + }); + + it('should render a loading indicator in a "loading" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(ReadsAlignmentSetViewer, case1Props, null); + render(el, node); + + await expectAsync(domUtils.waitForText({ + node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + })).toBeResolved(); + }); + + it('should render an error message set in a "error" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(ReadsAlignmentSetViewer, case3Props, null); + render(el, node); + + await expectAsync(domUtils.waitForText({ + node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT + })).toBeResolved(); + }); + + it('should render a ReadsAlignment set in a "loaded" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(ReadsAlignmentSetViewer, case4Props, null); + render(el, node); + + for await (const [label, text] of Object.entries(case4Expected)) { + await expectAsync(domUtils.waitForText({ + node, text, label, timeout: ASSERT_TIMEOUT + })).toBeResolved(); + } + }); + }); +}); diff --git a/test/unit/utils/domUtils.js b/test/unit/utils/domUtils.js index aaa5fb793b..a25c243219 100644 --- a/test/unit/utils/domUtils.js +++ b/test/unit/utils/domUtils.js @@ -1,7 +1,9 @@ define([], () => { 'use strict'; - function waitFor(fun, timeout) { + const WAIT_FOR_LOOP_WAIT = 100; + + function waitFor(fun, description, timeout) { const started = Date.now(); return new Promise((resolve, reject) => { function loop() { @@ -12,10 +14,11 @@ define([], () => { } const elapsed = Date.now() - started; if (elapsed > timeout) { - reject(new Error(`condition not detected within timeout period after ${elapsed}ms`)); + reject(new Error(`Condition not detected within timeout period after ${elapsed}ms: ${description}`)); + } else { + loop(); } - loop(); - }, 0.1); + }, WAIT_FOR_LOOP_WAIT); } if (fun()) { resolve(true); @@ -25,5 +28,33 @@ define([], () => { }); } - return { waitFor }; + function waitForText({ node, text, label, timeout }) { + const started = Date.now(); + const test = () => { + return node.innerText.includes(text); + }; + return new Promise((resolve, reject) => { + function loop() { + setTimeout(() => { + if (test()) { + resolve(true); + return; + } + const elapsed = Date.now() - started; + if (elapsed > timeout) { + reject(new Error(`Text not detected within timeout period after ${elapsed}ms: expected "${text}" for the value "${label}"`)); + } else { + loop(); + } + }, WAIT_FOR_LOOP_WAIT); + } + if (test()) { + resolve(true); + return; + } + loop(); + }); + } + + return { waitFor, waitForText }; }); From 83647015e9490f4190e4366cc9c0a25491438435 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 11 Oct 2021 11:45:15 -0700 Subject: [PATCH 29/54] add prop-types, refactor components to suit, refactor tests to suit that! --- .../function_output/KBaseSets/Dispatcher.js | 150 - .../function_output/KBaseSets/Loader.js | 257 - .../KBaseSets/SetElementLoader.css | 23 + .../KBaseSets/SetElementLoader.js | 212 + .../AssemblySetViewer.js | 26 +- .../ReadsAlignmentSetViewer.js | 33 +- .../function_output/KBaseSets/SetLoader.js | 169 + .../function_output/KBaseSets/SetViewer.css | 32 + .../KBaseSets/{Viewer.js => SetViewer.js} | 123 +- .../function_output/KBaseSets/Viewer.css | 56 - .../function_output/kbaseGenericSetViewer.js | 6 +- kbase-extension/static/narrative_paths.js | 1 + package.json | 1 + scripts/install-node-modules.sh | 12 +- ...tcher-spec.js => SetElementLoader-spec.js} | 4 +- .../SetElements/AssemblySetViewer-spec.js | 70 + .../ReadsAlignmentSetViewer-spec.js | 68 + .../{Loader-spec.js => SetLoader-spec.js} | 4 +- .../{Viewer-spec.js => SetViewer-spec.js} | 4 +- .../data/assemblyset_case_01_expected.json | 5 + .../data/assemblyset_case_01_props.json | 5872 +++++++++++++++- .../data/assemblyset_case_02_props.json | 5 - .../data/assemblyset_case_03_expected.json | 3 - .../data/assemblyset_case_03_props.json | 8 - .../data/assemblyset_case_04_expected.json | 7 - .../data/assemblyset_case_04_props.json | 6026 ----------------- ...> readsalignmentset_case_01_expected.json} | 2 - .../data/readsalignmentset_case_01_props.json | 78 +- .../data/readsalignmentset_case_02_props.json | 5 - .../readsalignmentset_case_03_expected.json | 3 - .../data/readsalignmentset_case_03_props.json | 8 - .../data/readsalignmentset_case_04_props.json | 445 -- .../KBaseSets/types/AssemblySetViewer-spec.js | 69 - .../types/ReadsAlignmentSetViewer-spec.js | 68 - 34 files changed, 6633 insertions(+), 7222 deletions(-) delete mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js delete mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js create mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.css create mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/{types => SetElements}/AssemblySetViewer.js (70%) rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/{types => SetElements}/ReadsAlignmentSetViewer.js (78%) create mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js create mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.css rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/{Viewer.js => SetViewer.js} (50%) delete mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css rename test/unit/spec/function_output/KBaseSets/{Dispatcher-spec.js => SetElementLoader-spec.js} (50%) create mode 100644 test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js create mode 100644 test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js rename test/unit/spec/function_output/KBaseSets/{Loader-spec.js => SetLoader-spec.js} (51%) rename test/unit/spec/function_output/KBaseSets/{Viewer-spec.js => SetViewer-spec.js} (51%) create mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_expected.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json rename test/unit/spec/function_output/KBaseSets/data/{readsalignmentset_case_04_expected.json => readsalignmentset_case_01_expected.json} (73%) delete mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json delete mode 100644 test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json delete mode 100644 test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js delete mode 100644 test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js deleted file mode 100644 index 89c7f340f3..0000000000 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Dispatcher.js +++ /dev/null @@ -1,150 +0,0 @@ -/* -kbaseGenericSetViewer - -A widget which can display a data object visualization for several types of objects -in the "KBaseSets" type module. - -The primary task of this viewer is to look up the object type it is provided, and, based -on the type of the object, either dispatch to the set viewer if it is supported, or -display a warning that the type is not supported if it isn't. - -Support is indicated in the module-level `SET_TYPE_TO_MODULE_MAPPING`. - -At present just ReadsAlignmentSet and AssemblySet are supported; others should display -an error message, or are handled by other viewers. - -Note that this widget is a wrapper dispatching to the specific viewer, most of the -implementation is in the React components referred two in the AMD dependencies. The only -UI supported herein is the loading indicator and an error message, if necessary. -*/ -define([ - 'react', - 'kb_common/jsonRpc/genericClient', - 'kb_service/utils', - 'widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer', - 'widgets/function_output/KBaseSets/types/AssemblySetViewer', - 'react_components/ErrorMessage', - 'widgets/function_output/KBaseSets/Loader', - - // For effect - 'bootstrap' -], ( - React, - ServiceClient, - ServiceUtils, - ReadsAlignmentSetViewer, - AssemblySetViewer, - ErrorMessage, - Loader -) => { - 'use strict'; - - const { createElement: e, Component } = React; - - // Note that any modules referenced must be imported above, and that such modules - // must be components implemented as defined in `react_components/genericSets`. - const SET_TYPE_TO_MODULE_MAPPING = { - 'KBaseSets.ReadsAlignmentSet': { - module: ReadsAlignmentSetViewer, - method: 'get_reads_alignment_set_v1' - }, - 'KBaseSets.AssemblySet': { - module: AssemblySetViewer, - method: 'get_assembly_set_v1' - } - }; - - /* - Implements a React component which primarily dispatches to the component which - matches the type of object provided in the prop 'objectRef'. - */ - class Dispatcher extends Component { - constructor(props) { - super(props); - this.state = { - status: null, - }; - } - - async componentDidMount() { - this.setState({ - status: 'loading' - }); - - try { - const workspace = new ServiceClient({ - url: this.props.workspaceURL, - module: 'Workspace', - token: this.props.token - }); - - const [infos] = await workspace.callFunc('get_object_info_new', [{ - objects: [{ - ref: this.props.objectRef - }] - }]); - - // Get a nicer object info (an object rather than array) - const objectInfo = ServiceUtils.objectInfoToObject(infos[0]); - - // Make a versionless object type id for lookup in the set of supported - // set types defined above. - const objectType = [objectInfo.typeModule, objectInfo.typeName].join('.'); - - const mapping = SET_TYPE_TO_MODULE_MAPPING[objectType]; - if (!mapping) { - this.setState({ - status: 'error', - error: new Error(`Unsupported set type: ${this.state.setType}`) - }); - return; - } - - this.setState({ - status: 'loaded', - setType: objectType, - module: mapping.module, - method: mapping.method - }); - } catch (error) { - console.error('Error getting object info', error); - this.setState({ - status: 'error', - error - }); - } - } - - renderError() { - return e(ErrorMessage, { - error: this.state.error - }); - } - - renderLoaded() { - return e(Loader, { - token: this.props.token, - workspaceURL: this.props.workspaceURL, - serviceWizardURL: this.props.serviceWizardURL, - objectRef: this.props.objectRef, - method: this.state.method, - module: this.state.module - }); - } - - render() { - switch (this.state.status) { - case null: - case 'loading': - // TODO: Loading comonent - return e('div', null, 'Loading...'); - case 'error': - return this.renderError(); - case 'loaded': - return this.renderLoaded(); - } - } - } - - return Dispatcher; -}); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js deleted file mode 100644 index 91f5d30d62..0000000000 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Loader.js +++ /dev/null @@ -1,257 +0,0 @@ -define([ - 'react', - 'kb_common/jsonRpc/genericClient', - 'kb_common/jsonRpc/dynamicServiceClient', - 'kb_service/utils', - 'react_components/ErrorMessage' -], ( - React, - ServiceClient, - DynamicServiceClient, - ServiceUtils, - ErrorMessage -) => { - 'use strict'; - - const { createElement: e, Component } = React; - - /** - * A class implementing a component which essentially forms the data backbone for - * the set component - */ - class Loader extends Component { - constructor(props) { - super(props); - if (!props.method) { - console.error('method not supplied to Loader'); - this.state = { - status: 'error', - error: new Error('Prop "method" required for Loader Component') - }; - return; - } - - if (!props.module) { - console.error('module not supplied to Loader Component'); - this.state = { - status: 'error', - error: new Error('Prop "method" required for Loader Component') - }; - return; - } - this.method = props.method; - this.module = props.module; - this.state = { - status: 'ok', - set: { - status: null - } - }; - this.selectedItemRef = null; - } - - async componentDidMount() { - // We wait on this so we are sure that the set is fetched before attempting - // to set the default selected item. - await this.getSet(); - - // Note that we don't catch the error for fetching an item here, - // we let it be a runaway promise. Error catching for fetching an item - // is handled separately. - this.getSelectedItem(); - } - - async getSet() { - this.setState((state) => { - return { - ...state, - set: { - status: 'loading' - } - }; - }); - try { - const { description, items } = await this.fetchSet(); - - // Sets the first item as selected if there are any. - if (items.length > 0) { - this.selectedItemRef = items[0].ref; - const selectedItem = await this.fetchSetElement(items[0].ref); - - this.setState((state) => { - return { - ...state, - set: { - status: 'loaded', - value: { - description, - type: selectedItem.objectInfo.type, - items, - }, - selectedItem: { - status: 'loaded', - value: selectedItem - } - - } - }; - }); - } else { - this.setState((state) => { - return { - ...state, - set: { - status: 'loaded', - value: { - description, - type: null, - items, - }, - selectedItem: { - status: null - } - - } - }; - }); - } - - } catch (error) { - console.error('Error fetching the set', error); - this.setState((state) => { - return { - ...state, - set: { - status: 'error', - error - } - }; - }); - return; - } - } - - async fetchSet() { - const setApi = new DynamicServiceClient({ - url: this.props.serviceWizardURL, - module: 'SetAPI', - token: this.props.token, - }); - const [{ data: { description, items } }] = await setApi.callFunc(this.method, [{ - ref: this.props.objectRef, - include_item_info: 1 - }]); - - // Augment the items with objectinfo in the object form (native form is an array). - items.forEach((item) => { - item.objectInfo = ServiceUtils.objectInfoToObject(item.info); - }); - return { description, items }; - } - - async getSelectedItem() { - if (!this.selectedItemRef) { - return; - } - this.setState((state) => { - return { - ...state, - set: { - ...this.state.set, - selectedItem: { - // note that we keep the selected item even if we are - // (re)loading. - ...this.state.set.selectedItem, - status: 'loading' - } - } - }; - }); - try { - const item = await this.fetchSetElement(this.selectedItemRef); - this.setState((state) => { - return { - ...state, - set: { - ...this.state.set, - selectedItem: { - status: 'loaded', - value: item - } - } - }; - }); - } catch (error) { - this.setState((state) => { - return { - ...state, - set: { - ...this.state.set, - selectedItem: { - status: 'error', - error - } - } - }; - }); - } - } - - async fetchSetElement(ref) { - const workspace = new ServiceClient({ - url: this.props.workspaceURL, - module: 'Workspace', - token: this.props.token - }); - const [result] = await workspace.callFunc('get_objects2', [{ - objects: [{ - ref - }] - }]); - - const object = result.data[0]; - const item = object.data; - item.objectInfo = ServiceUtils.objectInfoToObject(object.info); - return item; - } - - selectItem(itemRef) { - this.selectedItemRef = itemRef; - this.getSelectedItem(); - } - - renderError() { - return e(ErrorMessage, { - error: this.state.error - }); - } - - renderLoading() { - return e('div', { - }, e('i', { - className: `fa fa-spinner fa-3x fa-pulse fa-fw` - })); - } - - render() { - switch (this.state.status) { - case null: - case 'loading': - return this.renderLoading(); - case 'error': - return this.renderError(this.state.error); - case 'ok': - return e(this.module, { - set: this.state.set, - selectItem: (itemRef) => { - this.selectItem(itemRef); - } - }); - default: - this.renderError(new Error(`Unsupported status ${this.state.status}`)); - } - } - } - - return Loader; -}); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.css b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.css new file mode 100644 index 0000000000..677de2a30a --- /dev/null +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.css @@ -0,0 +1,23 @@ +.KBaseSets-SetElement { + position: relative; +} + +.KBaseSets-SetElement .LoadingOverlay { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: rgba(255, 255, 255, 0.5); + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: rgba(150, 150, 150, 1); +} + +.KBaseSets-SetElement table th { + width: 20%; + font-weight: bold; + text-align: left; +} diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js new file mode 100644 index 0000000000..5c2648a8ad --- /dev/null +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js @@ -0,0 +1,212 @@ +/* +kbaseGenericSetViewer + +A widget which can display a data object visualization for several types of objects +in the "KBaseSets" type module. + +The primary task of this viewer is to look up the object type it is provided, and, based +on the type of the object, either dispatch to the set viewer if it is supported, or +display a warning that the type is not supported if it isn't. + +Support is indicated in the module-level `SET_TYPE_TO_MODULE_MAPPING`. + +At present just ReadsAlignmentSet and AssemblySet are supported; others should display +an error message, or are handled by other viewers. + +Note that this widget is a wrapper dispatching to the specific viewer, most of the +implementation is in the React components referred two in the AMD dependencies. The only +UI supported herein is the loading indicator and an error message, if necessary. +*/ +define([ + 'react', + 'prop-types', + 'kb_common/jsonRpc/genericClient', + 'kb_service/utils', + 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer', + 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', + 'react_components/ErrorMessage', + 'narrativeConfig', + 'base/js/namespace', + + // For effect + 'bootstrap', + 'css!./SetElementLoader.css' +], ( + React, + PropTypes, + ServiceClient, + ServiceUtils, + ReadsAlignmentSetViewer, + AssemblySetViewer, + ErrorMessage, + Config, + Jupyter +) => { + 'use strict'; + + const { createElement: e, Component } = React; + + // Note that any modules referenced must be imported above, and that such modules + // must be components implemented as defined in `react_components/genericSets`. + const SET_TYPE_TO_MODULE_MAPPING = { + 'KBaseSets.ReadsAlignmentSet': { + module: ReadsAlignmentSetViewer, + method: 'get_reads_alignment_set_v1' + }, + 'KBaseSets.AssemblySet': { + module: AssemblySetViewer, + method: 'get_assembly_set_v1' + } + }; + + /* + Implements a React component which primarily dispatches to the component which + matches the type of object provided in the prop 'objectRef'. + */ + class SetElementLoader extends Component { + constructor(props) { + super(props); + this.state = { + status: null, + }; + } + + componentDidMount() { + this.getSetElement(); + } + + componentDidUpdate(prevProps) { + if (prevProps.item.ref === this.props.item.ref) { + return; + } + this.getSetElement(); + } + + async getSetElement() { + this.setState({ + status: 'loading' + }); + + try { + const { object, objectInfo } = await this.fetchSetElement(this.props.item.ref); + const mapping = SET_TYPE_TO_MODULE_MAPPING[this.props.setType]; + if (!mapping) { + this.setState({ + status: 'error', + error: new Error(`Unsupported set type: ${this.state.setType}`) + }); + return; + } + + this.setState({ + status: 'loaded', + module: mapping.module, + object, objectInfo + }); + } catch (error) { + console.error('Error getting object info', error); + this.setState({ + status: 'error', + error + }); + } + } + + async fetchSetElement(ref) { + const workspace = new ServiceClient({ + url: Config.url('workspace'), + module: 'Workspace', + token: Jupyter.narrative.getAuthToken() + }); + const [result] = await workspace.callFunc('get_objects2', [{ + objects: [{ + ref + }] + }]); + + const object = result.data[0]; + return { + object, + objectInfo: ServiceUtils.objectInfoToObject(object.info) + }; + } + + renderLoading(size) { + const sizeClass = (() => { + if (size) { + return `fa-${size}x`; + } + return ''; + })(); + return e('div', { + className: 'LoadingOverlay' + }, e('div', { + style: { + backgroundColor: 'rgba(200, 200, 200, 0.2)', + border: '1px solid rgba(200, 200, 200, 1)', + borderRadius: '8px', + padding: '8px', + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + } + }, "Loading...", e('i', { + className: `fa fa-spinner fa-pulse fa-fw ${sizeClass}` + }))); + } + + renderError() { + return e(ErrorMessage, { + error: this.state.error + }); + } + + renderLoaded() { + // console.log('ELEMENT', JSON.stringify({ + // object: this.state.object.data, + // objectInfo: this.state.objectInfo + // }, null, 4)); + return e(this.state.module, { + object: this.state.object.data, + objectInfo: this.state.objectInfo + }); + } + + renderState() { + switch (this.state.status) { + case null: + return this.renderLoading(); + case 'loading': + if (this.state.object) { + return e(React.Fragment, null, this.renderLoaded(), this.renderLoading(2)); + } else { + return this.renderLoading(); + } + case 'error': + return this.renderError(); + case 'loaded': + return this.renderLoaded(); + } + } + + render() { + return e('div', { + className: 'KBaseSets-SetElement' + }, ...[ + this.renderState() + ]); + } + } + + SetElementLoader.propTypes = { + setType: PropTypes.string, + items: PropTypes.shape({ + label: PropTypes.string, + ref: PropTypes.string, + info: PropTypes.array, + objectInfo: PropTypes.object + }) + }; + + return SetElementLoader; +}); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/AssemblySetViewer.js similarity index 70% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySetViewer.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/AssemblySetViewer.js index 82a747ab7c..18163458a2 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/AssemblySetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/AssemblySetViewer.js @@ -1,25 +1,20 @@ define([ 'react', - 'widgets/function_output/KBaseSets/Viewer', + 'prop-types', 'bootstrap' ], ( React, - Viewer, + PropTypes, ) => { 'use strict'; - const { createElement: e } = React; - - class AssemblySetViewer extends Viewer { - renderSetElement() { - const selectedItem = this.props.set.selectedItem; - if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { - return null; - } + const { Component, createElement: e } = React; + class AssemblySetViewer extends Component { + render() { const { dna_size, gc_content, num_contigs, - } = selectedItem.value; + } = this.props.object; const rows = [ { @@ -51,5 +46,14 @@ define([ } } + AssemblySetViewer.propTypes = { + object: PropTypes.shape({ + dna_size: PropTypes.number.isRequired, + gc_content: PropTypes.number.isRequired, + num_contigs: PropTypes.number.isRequired + }).isRequired, + objectInfo: PropTypes.object.isRequired + }; + return AssemblySetViewer; }); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer.js similarity index 78% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer.js index 1ca5107b70..6a46778c07 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer.js @@ -1,22 +1,17 @@ define([ 'react', - 'widgets/function_output/KBaseSets/Viewer', + 'prop-types', 'bootstrap' ], ( React, - Viewer, + PropTypes, ) => { 'use strict'; - const { createElement: e } = React; - - class ReadsAlignmentSetViewer extends Viewer { - renderSetElement() { - const selectedItem = this.props.set.selectedItem; - if (selectedItem.status !== 'loaded' && typeof selectedItem.value === 'undefined') { - return null; - } + const { Component, createElement: e } = React; + class ReadsAlignmentSetViewer extends Component { + render() { const { aligned_using, aligner_version, @@ -25,7 +20,7 @@ define([ total_reads, unmapped_reads, mapped_reads, multiple_alignments, singletons } - } = selectedItem.value; + } = this.props.object; const rows = [ { @@ -106,5 +101,21 @@ define([ } } + ReadsAlignmentSetViewer.propTypes = { + object: PropTypes.shape({ + aligned_using: PropTypes.string.isRequired, + aligner_version: PropTypes.string.isRequired, + library_type: PropTypes.string.isRequired, + alignment_stats: PropTypes.shape({ + total_reads: PropTypes.number.isRequired, + unmapped_reads: PropTypes.number.isRequired, + mapped_reads: PropTypes.number.isRequired, + multiple_alignments: PropTypes.number.isRequired, + singletons: PropTypes.number.isRequired + }).isRequired + }).isRequired, + objectInfo: PropTypes.object.isRequired + }; + return ReadsAlignmentSetViewer; }); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js new file mode 100644 index 0000000000..9010f263d1 --- /dev/null +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js @@ -0,0 +1,169 @@ +define([ + 'react', + 'prop-types', + 'kb_common/jsonRpc/genericClient', + 'kb_common/jsonRpc/dynamicServiceClient', + 'kb_service/utils', + 'react_components/ErrorMessage', + 'widgets/function_output/KBaseSets/SetViewer', + +], ( + React, + PropTypes, + ServiceClient, + DynamicServiceClient, + ServiceUtils, + ErrorMessage, + Viewer, +) => { + 'use strict'; + + const { createElement: e, Component } = React; + + const SET_TYPE_TO_MODULE_MAPPING = { + 'KBaseSets.ReadsAlignmentSet': { + method: 'get_reads_alignment_set_v1' + }, + 'KBaseSets.AssemblySet': { + method: 'get_assembly_set_v1' + } + }; + + /** + * A class implementing a component which essentially forms the data backbone for + * the set component + */ + class SetLoader extends Component { + constructor(props) { + super(props); + this.state = { + status: null, + }; + this.selectedItemRef = null; + } + + componentDidMount() { + // We wait on this so we are sure that the set is fetched before attempting + // to set the default selected item. + this.getSet(); + } + + async getSet() { + this.setState({ + status: 'loading' + }); + try { + const { description, setType, elementType, items } = await this.fetchSet(); + + this.setState({ + status: 'loaded', + value: { + description, + setType, + elementType, + items, + }, + }); + } catch (error) { + console.error('Error fetching set', error); + this.setState({ + status: 'error', + error + }); + return; + } + } + + async fetchSet() { + // Get the object info, to determine the exact type. + const workspace = new ServiceClient({ + url: this.props.workspaceURL, + module: 'Workspace', + token: this.props.token + }); + + const [infos] = await workspace.callFunc('get_object_info_new', [{ + objects: [{ + ref: this.props.objectRef + }] + }]); + + // Get a nicer object info (an object rather than array) + const objectInfo = ServiceUtils.objectInfoToObject(infos[0]); + + // Make a versionless object type id for lookup in the set of supported + // set types defined above. + const setType = [objectInfo.typeModule, objectInfo.typeName].join('.'); + + const mapping = SET_TYPE_TO_MODULE_MAPPING[setType]; + if (!mapping) { + throw new Error(`Unsupported set type: ${setType}`); + } + + // Then get the set via the set api. + + const setApi = new DynamicServiceClient({ + url: this.props.serviceWizardURL, + module: 'SetAPI', + token: this.props.token, + }); + const [{ data: { description, items } }] = await setApi.callFunc(mapping.method, [{ + ref: this.props.objectRef, + include_item_info: 1 + }]); + + if (items.length === 0) { + throw new Error('Sets with no elements not currently supported'); + } + + // Augment the items with objectinfo in the object form (native form is an array). + items.forEach((item) => { + item.objectInfo = ServiceUtils.objectInfoToObject(item.info); + }); + + return { description, setType, elementType: items[0].objectInfo.type, items }; + } + + renderError() { + return e(ErrorMessage, { + error: this.state.error + }); + } + + renderLoading() { + return e('div', { + }, e('i', { + className: `fa fa-spinner fa-3x fa-pulse fa-fw` + })); + } + + renderLoaded() { + return e(Viewer, { + ...this.state.value + }); + } + + render() { + switch (this.state.status) { + case null: + case 'loading': + return this.renderLoading(); + case 'error': + return this.renderError(this.state.error); + case 'loaded': + return this.renderLoaded(); + default: + this.renderError(new Error(`Unsupported status ${this.state.status}`)); + } + } + } + + SetLoader.propTypes = { + workspaceURL: PropTypes.string, + serviceWizardURL: PropTypes.string, + token: PropTypes.string, + objectRef: PropTypes.string, + }; + + return SetLoader; +}); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.css b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.css new file mode 100644 index 0000000000..0979b32c2b --- /dev/null +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.css @@ -0,0 +1,32 @@ +.KBaseSets .HeaderTable { + display: flex; + flex-direction: column; + margin-bottom: 10px; +} + +.KBaseSets .HeaderTable > .Row { + flex: 0 0 auto; + display: flex; + flex-direction: row; + margin: 4px 0; + align-items: center; + height: 1.5em; +} + +.KBaseSets .HeaderTable > .Row > .Col:nth-child(1) { + font-weight: bold; + color: rgba(100, 100, 100); + flex: 0 0 13em; +} + +.KBaseSets .HeaderTable > .Row > .Col:nth-child(2) { + flex: 1 1 0; +} + +/* tweak bootstrap styling here */ +.KBaseSets select.form-control { + margin-left: 0; + margin-right: 0; + padding: 4px; + width: 100%; +} diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js similarity index 50% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js index 19e7f77a25..fb43fe8e54 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js @@ -1,13 +1,15 @@ define([ 'react', - 'react_components/ErrorMessage', + 'prop-types', + 'widgets/function_output/KBaseSets/SetElementLoader', // For effect 'bootstrap', - 'css!./Viewer.css' + 'css!./SetViewer.css' ], ( React, - ErrorMessage + PropTypes, + SetElement ) => { 'use strict'; @@ -17,14 +19,17 @@ define([ * A class implementing the base behavior for a browser for any set type * in the KBaseSets type module. * - * It is an "abstract" class. Subclasses must implement methods in the abstract - * section below. - * - * */ - class Viewer extends Component { - // Abstract + class SetViewer extends Component { + constructor(props) { + super(props); + this.state = { + // NB assumes always have items. + selectedItem: this.props.items[0] + }; + + } /** * Renders a set element as a rotated table of summary properties. @@ -33,33 +38,34 @@ define([ * @returns {void} nothing useful */ renderSetElement() { - throw new Error('renderSetElement not implemented in subclass'); - } - - // Implementation - - renderError() { - return e(ErrorMessage, { - error: this.props.set.error + return e(SetElement, { + setType: this.props.setType, + item: this.state.selectedItem }); } selectItem(event) { const selectControl = event.target; - this.props.selectItem(selectControl.value); + // this.props.selectItem(selectControl.value); + this.setState((state) => { + return { + ...state, + selectedItem: this.props.items[parseInt(selectControl.value)] + }; + }); } renderItemType() { // Note that the type is set when the set is first loaded, and will be // null if there are no set items. The type is derived from the object // referred to by a set item. - if (this.props.set.value.type === null) { + if (this.props.elementType === null) { return e('i', null, 'n/a'); } else { return e('a', { - href: `/#spec/type/${this.props.set.value.type}`, + href: `/#spec/type/${this.props.elementType}`, target: '_blank' - }, this.props.set.value.type); + }, this.props.elementType); } } @@ -73,11 +79,11 @@ define([ }, e('div', { className: 'form-group' }, e('select', { onChange: this.selectItem.bind(this), className: 'form-control' - }, this.props.set.value.items.map(({ label, ref, objectInfo }) => { + }, this.props.items.map(({ label, ref, objectInfo }, index) => { if (label) { - return e('option', { value: ref, key: ref }, objectInfo.name, ' (', label, ')'); + return e('option', { value: String(index), key: ref }, objectInfo.name, ' (', label, ')'); } else { - return e('option', { value: ref, key: ref }, objectInfo.name); + return e('option', { value: String(index), key: ref }, objectInfo.name); } })) )) @@ -86,7 +92,7 @@ define([ renderHeader() { return e('div', { - className: 'Table', + className: 'HeaderTable', }, ...[ e('div', { className: 'Row', @@ -96,7 +102,7 @@ define([ }, 'Description:'), e('div', { className: 'Col', - }, this.props.set.value.description) + }, this.props.description) ]), e('div', { className: 'Row', @@ -117,58 +123,27 @@ define([ renderNoItems() { return e('div', null, 'Sorry, no items'); } - - renderLoading(size) { - const sizeClass = (() => { - if (size) { - return `fa-${size}x`; - } - return ''; - })(); - return e('div', { - className: 'LoadingOverlay' - }, "Loading...", e('i', { - className: `fa fa-spinner fa-pulse fa-fw ${sizeClass}` - })); - } - - renderViewer() { - const isLoading = [null, 'loading'].includes(this.props.set.selectedItem.status); - return e('div', { key: 'overview', className: 'Overview' }, ...[ - this.renderHeader(), - // A classic display-relative overlay area, in which the loading spinner - // may be temporarily rendered. - e('div', { - className: 'OverlayWrapper' - }, ...[ - this.renderSetElement(), - isLoading ? this.renderLoading(3) : null - ]) - ]); - } - - renderState() { - switch (this.props.set.status) { - case null: - case 'loading': - return this.renderLoading(); - case 'error': - return this.renderError(); - case 'loaded': - if (this.props.set.value.items.length === 0) { - return this.renderNoItems(); - } else { - return this.renderViewer(); - } - } - } - render() { return e('div', { className: 'KBaseSets' - }, this.renderState()); + }, ...[ + this.renderHeader(), + this.renderSetElement() + ]); } } - return Viewer; + SetViewer.propTypes = { + description: PropTypes.string.isRequired, + setType: PropTypes.string.isRequired, + elementType: PropTypes.string.isRequired, + items: PropTypes.arrayOf(PropTypes.shape({ + label: PropTypes.string, + ref: PropTypes.string, + info: PropTypes.array, + objectInfo: PropTypes.object + })) + }; + + return SetViewer; }); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css deleted file mode 100644 index 6d39f70c22..0000000000 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/Viewer.css +++ /dev/null @@ -1,56 +0,0 @@ -.KBaseSets .Table { - display: flex; - flex-direction: column; - margin-bottom: 10px; -} - -.KBaseSets .Table > .Row { - flex: 0 0 auto; - display: flex; - flex-direction: row; - margin: 4px 0; - align-items: center; - height: 1.5em; -} - -.KBaseSets .Table > .Row > .Col:nth-child(1) { - font-weight: bold; - color: rgba(100, 100, 100); - flex: 0 0 13em; -} - -.KBaseSets .Table > .Row > .Col:nth-child(2) { - flex: 1 1 0; -} - -/* tweak bootstrap styling here */ -.KBaseSets select.form-control { - margin-left: 0; - margin-right: 0; - padding: 4px; - width: 100%; -} - -.KBaseSets .Overview .OverlayWrapper { - position: relative; -} - -.KBaseSets .Overview .OverlayWrapper .LoadingOverlay { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: rgba(255, 255, 255, 0.5); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - color: rgba(150, 150, 150, 1); -} - -.KBaseSets .Overview table th { - width: 20%; - font-weight: bold; - text-align: left; -} diff --git a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js index 7f8f68670a..1c3e0549a4 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js @@ -13,7 +13,7 @@ define([ 'kbaseAuthenticatedWidget', 'narrativeConfig', 'react_components/ErrorMessage', - 'widgets/function_output/KBaseSets/Dispatcher' + 'widgets/function_output/KBaseSets/SetLoader' ], ( React, ReactDOM, @@ -21,7 +21,7 @@ define([ kbaseAuthenticatedWidget, Config, ErrorMessage, - Dispatcher + KBaseSets ) => { 'use strict'; @@ -40,7 +40,7 @@ define([ try { this._super(options); - ReactDOM.render(e(Dispatcher, { + ReactDOM.render(e(KBaseSets, { workspaceURL: Config.url('workspace'), serviceWizardURL: Config.url('service_wizard'), token: this.authToken(), diff --git a/kbase-extension/static/narrative_paths.js b/kbase-extension/static/narrative_paths.js index 551124c6c6..7247767ed5 100644 --- a/kbase-extension/static/narrative_paths.js +++ b/kbase-extension/static/narrative_paths.js @@ -385,6 +385,7 @@ require.config({ react: 'ext_modules/react/react.development', 'react-dom': 'ext_modules/react-dom/react-dom.development', + 'prop-types': 'ext_modules/prop-types/prop-types', react_components: 'kbase/js/react_components', /*** diff --git a/package.json b/package.json index 33a99d18cb..7415a94bdb 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "lint-staged": "11.2.0", "msw": "0.35.0", "prettier": "2.4.1", + "prop-types": "15.7.2", "puppeteer": "10.4.0", "requirejs": "2.3.6", "react": "16.14.0", diff --git a/scripts/install-node-modules.sh b/scripts/install-node-modules.sh index 9a68a9895a..ab76a76576 100644 --- a/scripts/install-node-modules.sh +++ b/scripts/install-node-modules.sh @@ -1,6 +1,16 @@ #!/bin/sh +# Install React mkdir -p kbase-extension/static/ext_modules/react cp node_modules/react/umd/react.development.js kbase-extension/static/ext_modules/react + +# Install ReactDOM mkdir -p kbase-extension/static/ext_modules/react-dom -cp node_modules/react-dom/umd/react-dom.development.js kbase-extension/static/ext_modules/react-dom \ No newline at end of file +cp node_modules/react-dom/umd/react-dom.development.js kbase-extension/static/ext_modules/react-dom + +# Install React prop-types +mkdir -p kbase-extension/static/ext_modules/prop-types/lib +cp node_modules/prop-types/prop-types.min.js kbase-extension/static/ext_modules/prop-types +cp node_modules/prop-types/prop-types.js kbase-extension/static/ext_modules/prop-types +cp node_modules/prop-types/lib/ReactPropTypesSecret.js kbase-extension/static/ext_modules/prop-types/lib + diff --git a/test/unit/spec/function_output/KBaseSets/Dispatcher-spec.js b/test/unit/spec/function_output/KBaseSets/SetElementLoader-spec.js similarity index 50% rename from test/unit/spec/function_output/KBaseSets/Dispatcher-spec.js rename to test/unit/spec/function_output/KBaseSets/SetElementLoader-spec.js index 778dad8aec..f81093ff8e 100644 --- a/test/unit/spec/function_output/KBaseSets/Dispatcher-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElementLoader-spec.js @@ -1,9 +1,9 @@ -define(['widgets/function_output/KBaseSets/Dispatcher'], (Dispatcher) => { +define(['widgets/function_output/KBaseSets/SetElementLoader'], (SetElementLoader) => { 'use strict'; describe('The Dispatcher entrypoint class', () => { it('should be defined', () => { - expect(Dispatcher).toBeDefined(); + expect(SetElementLoader).toBeDefined(); }); }); }); diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js new file mode 100644 index 0000000000..8fbc2da0d3 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js @@ -0,0 +1,70 @@ +define([ + 'react', + 'react-dom', + 'test/unit/utils/domUtils', + 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', + 'json!../data/assemblyset_case_01_props.json', + 'json!../data/assemblyset_case_01_expected.json', + // 'json!../data/assemblyset_case_02_props.json', + // 'json!../data/assemblyset_case_03_props.json', + // 'json!../data/assemblyset_case_04_props.json', + // 'json!../data/assemblyset_case_03_expected.json', + // 'json!../data/assemblyset_case_04_expected.json' +], (React, ReactDOM, domUtils, AssemblySetViewer, case1Props, case1Expected) => { + 'use strict'; + + const { createElement } = React; + const { render } = ReactDOM; + + // 1 second timeout for waiting for async browser changes. + const ASSERT_TIMEOUT = 1000; + + describe('The AssemblySetViewer component', () => { + // it('should render a loading indicator in a "null" async status', async () => { + // const node = document.createElement('div'); + + // const el = createElement(AssemblySetViewer, case1Props, null); + // render(el, node); + + // await expectAsync(domUtils.waitForText({ + // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + // })).toBeResolved(); + // }); + + // it('should render a loading indicator in a "loading" async status', async () => { + // const node = document.createElement('div'); + + // const el = createElement(AssemblySetViewer, case2Props, null); + // render(el, node); + + // await expectAsync(domUtils.waitForText({ + // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + // })).toBeResolved(); + // }); + + // it('should render an error message set in a "error" async status', async () => { + // const node = document.createElement('div'); + + // const el = createElement(AssemblySetViewer, case3Props, null); + // render(el, node); + + // await expectAsync(domUtils.waitForText({ + // node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT + // })).toBeResolved(); + // }); + + it('should render an assembly set in a "loaded" async status', async () => { + const node = document.createElement('div'); + + // install our component there + const el = createElement(AssemblySetViewer, case1Props, null); + render(el, node); + + for await (const [label, text] of Object.entries(case1Expected)) { + await expectAsync(domUtils.waitForText({ + node, text, label, timeout: ASSERT_TIMEOUT + })).toBeResolved(); + } + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js new file mode 100644 index 0000000000..1eabf32126 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js @@ -0,0 +1,68 @@ +define([ + 'react', + 'react-dom', + 'test/unit/utils/domUtils', + 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer', + 'json!../data/readsalignmentset_case_01_props.json', + 'json!../data/readsalignmentset_case_01_expected.json', + // 'json!../data/readsalignmentset_case_03_props.json', + // 'json!../data/readsalignmentset_case_04_props.json', + // 'json!../data/readsalignmentset_case_03_expected.json', + // 'json!../data/readsalignmentset_case_04_expected.json' +], (React, ReactDOM, domUtils, ReadsAlignmentSetViewer, case1Props, case1Expected) => { + 'use strict'; + + const { createElement } = React; + const { render } = ReactDOM; + + // 1 second timeout for waiting for async browser changes. + const ASSERT_TIMEOUT = 1000; + + describe('The ReadsAlignmentSetViewer component', () => { + // it('should render a loading indicator in a "null" async status', async () => { + // const node = document.createElement('div'); + + // const el = createElement(ReadsAlignmentSetViewer, case1Props, null); + // render(el, node); + + // await expectAsync(domUtils.waitForText({ + // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + // })).toBeResolved(); + // }); + + // it('should render a loading indicator in a "loading" async status', async () => { + // const node = document.createElement('div'); + + // const el = createElement(ReadsAlignmentSetViewer, case1Props, null); + // render(el, node); + + // await expectAsync(domUtils.waitForText({ + // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT + // })).toBeResolved(); + // }); + + // it('should render an error message set in a "error" async status', async () => { + // const node = document.createElement('div'); + + // const el = createElement(ReadsAlignmentSetViewer, case3Props, null); + // render(el, node); + + // await expectAsync(domUtils.waitForText({ + // node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT + // })).toBeResolved(); + // }); + + it('should render a ReadsAlignment set in a "loaded" async status', async () => { + const node = document.createElement('div'); + + const el = createElement(ReadsAlignmentSetViewer, case1Props, null); + render(el, node); + + for await (const [label, text] of Object.entries(case1Expected)) { + await expectAsync(domUtils.waitForText({ + node, text, label, timeout: ASSERT_TIMEOUT + })).toBeResolved(); + } + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/Loader-spec.js b/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js similarity index 51% rename from test/unit/spec/function_output/KBaseSets/Loader-spec.js rename to test/unit/spec/function_output/KBaseSets/SetLoader-spec.js index 3511ae59db..89b9f82ba5 100644 --- a/test/unit/spec/function_output/KBaseSets/Loader-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js @@ -1,9 +1,9 @@ -define(['widgets/function_output/KBaseSets/Loader'], (Loader) => { +define(['widgets/function_output/KBaseSets/SetLoader'], (SetLoader) => { 'use strict'; describe('The Loader class', () => { it('should be defined', () => { - expect(Loader).toBeDefined(); + expect(SetLoader).toBeDefined(); }); }); }); diff --git a/test/unit/spec/function_output/KBaseSets/Viewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetViewer-spec.js similarity index 51% rename from test/unit/spec/function_output/KBaseSets/Viewer-spec.js rename to test/unit/spec/function_output/KBaseSets/SetViewer-spec.js index 57819bb600..2cfaf507ef 100644 --- a/test/unit/spec/function_output/KBaseSets/Viewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetViewer-spec.js @@ -1,9 +1,9 @@ -define(['widgets/function_output/KBaseSets/Viewer'], (Viewer) => { +define(['widgets/function_output/KBaseSets/SetViewer'], (SetViewer) => { 'use strict'; describe('The Loader class', () => { it('should be defined', () => { - expect(Viewer).toBeDefined(); + expect(SetViewer).toBeDefined(); }); }); }); diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_expected.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_expected.json new file mode 100644 index 0000000000..9f8e940a04 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_expected.json @@ -0,0 +1,5 @@ +{ + "DNA Size": "32,411,722", + "Contig Count": "709", + "GC Content": "54.94%" +} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json index e7af1715a8..48fbef9401 100644 --- a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json +++ b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_01_props.json @@ -1,5 +1,5873 @@ { - "set": { - "status": null + "object": { + "assembly_id": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", + "base_counts": { + "A": 7284227, + "C": 8872108, + "G": 8935140, + "N": 17916, + "T": 7302331 + }, + "contigs": { + "NODE_10017_length_4750_cov_159.169968": { + "contig_id": "NODE_10017_length_4750_cov_159.169968", + "description": "", + "gc_content": 0.36379, + "length": 4750, + "md5": "98d432c21e8668546554a77905e920e9", + "name": "NODE_10017_length_4750_cov_159.169968" + }, + "NODE_10058_length_4734_cov_25.066253": { + "contig_id": "NODE_10058_length_4734_cov_25.066253", + "description": "", + "gc_content": 0.36713, + "length": 4734, + "md5": "54910be76e860fef5ca235cec74e50b6", + "name": "NODE_10058_length_4734_cov_25.066253" + }, + "NODE_1007_length_41543_cov_92.931980": { + "contig_id": "NODE_1007_length_41543_cov_92.931980", + "description": "", + "gc_content": 0.43264, + "length": 41543, + "md5": "d709fdbb7603364c9f86c09e08316ccd", + "name": "NODE_1007_length_41543_cov_92.931980" + }, + "NODE_100_length_180411_cov_16.745603": { + "contig_id": "NODE_100_length_180411_cov_16.745603", + "description": "", + "gc_content": 0.39194, + "length": 180411, + "md5": "e2753b8c88d5acf60af98f1e62f559fd", + "name": "NODE_100_length_180411_cov_16.745603" + }, + "NODE_10162_length_4682_cov_159.917441": { + "Ncount": 100, + "contig_id": "NODE_10162_length_4682_cov_159.917441", + "description": "", + "gc_content": 0.36138, + "length": 4682, + "md5": "3f73b2880fe0c6205673f659ebad96d2", + "name": "NODE_10162_length_4682_cov_159.917441" + }, + "NODE_10189_length_4671_cov_57.500217": { + "contig_id": "NODE_10189_length_4671_cov_57.500217", + "description": "", + "gc_content": 0.63177, + "length": 4671, + "md5": "7db19bba78dbb9afb61ffc4a0acd7544", + "name": "NODE_10189_length_4671_cov_57.500217" + }, + "NODE_1023_length_41198_cov_139.202683": { + "contig_id": "NODE_1023_length_41198_cov_139.202683", + "description": "", + "gc_content": 0.39378, + "length": 41198, + "md5": "45c043af78db4ee17bc83d26d61da8ee", + "name": "NODE_1023_length_41198_cov_139.202683" + }, + "NODE_103_length_176357_cov_9.075881": { + "Ncount": 100, + "contig_id": "NODE_103_length_176357_cov_9.075881", + "description": "", + "gc_content": 0.67569, + "length": 176357, + "md5": "62c82137f7b34d8bb19e1abb0bf3b700", + "name": "NODE_103_length_176357_cov_9.075881" + }, + "NODE_104_length_175670_cov_147.466936": { + "contig_id": "NODE_104_length_175670_cov_147.466936", + "description": "", + "gc_content": 0.52235, + "length": 175670, + "md5": "8f7ecce4377767405e412de531f9c156", + "name": "NODE_104_length_175670_cov_147.466936" + }, + "NODE_1050_length_40362_cov_89.890887": { + "Ncount": 300, + "contig_id": "NODE_1050_length_40362_cov_89.890887", + "description": "", + "gc_content": 0.60963, + "length": 40362, + "md5": "6c8c64361e6ad2ffa2395c4a4dd56a98", + "name": "NODE_1050_length_40362_cov_89.890887" + }, + "NODE_1054_length_40207_cov_31.091677": { + "contig_id": "NODE_1054_length_40207_cov_31.091677", + "description": "", + "gc_content": 0.63822, + "length": 40207, + "md5": "e82550e717687e4d9da948367b6fd73e", + "name": "NODE_1054_length_40207_cov_31.091677" + }, + "NODE_10554_length_4530_cov_30.726704": { + "contig_id": "NODE_10554_length_4530_cov_30.726704", + "description": "", + "gc_content": 0.43024, + "length": 4530, + "md5": "3c47e4087ddd77ff8adaaff45d8554b2", + "name": "NODE_10554_length_4530_cov_30.726704" + }, + "NODE_1057_length_40056_cov_30.995825": { + "contig_id": "NODE_1057_length_40056_cov_30.995825", + "description": "", + "gc_content": 0.63943, + "length": 40056, + "md5": "aeb45ead1917a8dfc1ecb17937ba0c77", + "name": "NODE_1057_length_40056_cov_30.995825" + }, + "NODE_1063_length_39828_cov_602.691524": { + "contig_id": "NODE_1063_length_39828_cov_602.691524", + "description": "", + "gc_content": 0.62793, + "length": 39828, + "md5": "5e079127b0bb820f119414d55f7722d5", + "name": "NODE_1063_length_39828_cov_602.691524" + }, + "NODE_1064_length_39795_cov_147.757549": { + "contig_id": "NODE_1064_length_39795_cov_147.757549", + "description": "", + "gc_content": 0.62772, + "length": 39795, + "md5": "84be6246633590a696fc0bcf7300ad6e", + "name": "NODE_1064_length_39795_cov_147.757549" + }, + "NODE_10687_length_4472_cov_43.925515": { + "contig_id": "NODE_10687_length_4472_cov_43.925515", + "description": "", + "gc_content": 0.39401, + "length": 4472, + "md5": "8c6d92fbefe6f0144b817d1c8c9d3de3", + "name": "NODE_10687_length_4472_cov_43.925515" + }, + "NODE_106_length_175061_cov_19.076672": { + "contig_id": "NODE_106_length_175061_cov_19.076672", + "description": "", + "gc_content": 0.40105, + "length": 175061, + "md5": "154b5cf6ba454efd6ba6f5af75e602c9", + "name": "NODE_106_length_175061_cov_19.076672" + }, + "NODE_1070_length_39489_cov_16.199751": { + "Ncount": 160, + "contig_id": "NODE_1070_length_39489_cov_16.199751", + "description": "", + "gc_content": 0.39758, + "length": 39489, + "md5": "f617f28feda791e2990c1354d2e3072e", + "name": "NODE_1070_length_39489_cov_16.199751" + }, + "NODE_107_length_174613_cov_14.986543": { + "contig_id": "NODE_107_length_174613_cov_14.986543", + "description": "", + "gc_content": 0.47794, + "length": 174613, + "md5": "7afb8c94bb17af15ffb0b6e0cec7f6e7", + "name": "NODE_107_length_174613_cov_14.986543" + }, + "NODE_10839_length_4415_cov_13.632110": { + "contig_id": "NODE_10839_length_4415_cov_13.632110", + "description": "", + "gc_content": 0.35651, + "length": 4415, + "md5": "dda21b3b8e75bae07dbe19a05f8f053f", + "name": "NODE_10839_length_4415_cov_13.632110" + }, + "NODE_108_length_171878_cov_15.745773": { + "contig_id": "NODE_108_length_171878_cov_15.745773", + "description": "", + "gc_content": 0.48685, + "length": 171878, + "md5": "8aca2314b8d60d48d382a9363f9cfe2f", + "name": "NODE_108_length_171878_cov_15.745773" + }, + "NODE_1093_length_38730_cov_20.574428": { + "contig_id": "NODE_1093_length_38730_cov_20.574428", + "description": "", + "gc_content": 0.40207, + "length": 38730, + "md5": "3045b6e207b3177afdb210cf79fbbcf9", + "name": "NODE_1093_length_38730_cov_20.574428" + }, + "NODE_1098_length_38514_cov_30.807717": { + "contig_id": "NODE_1098_length_38514_cov_30.807717", + "description": "", + "gc_content": 0.64197, + "length": 38514, + "md5": "56435f988bb8a087c4de878ac812aed8", + "name": "NODE_1098_length_38514_cov_30.807717" + }, + "NODE_1103_length_38450_cov_133.530017": { + "contig_id": "NODE_1103_length_38450_cov_133.530017", + "description": "", + "gc_content": 0.64377, + "length": 38450, + "md5": "64f786bf093b33185322e665ceab015a", + "name": "NODE_1103_length_38450_cov_133.530017" + }, + "NODE_1105_length_38381_cov_8.888718": { + "contig_id": "NODE_1105_length_38381_cov_8.888718", + "description": "", + "gc_content": 0.67171, + "length": 38381, + "md5": "89c5d3d1f02a56ce3dc059705aa3936b", + "name": "NODE_1105_length_38381_cov_8.888718" + }, + "NODE_11095_length_4330_cov_22.627602": { + "contig_id": "NODE_11095_length_4330_cov_22.627602", + "description": "", + "gc_content": 0.58383, + "length": 4330, + "md5": "2f274e592a6a029675012f6abf0ace8e", + "name": "NODE_11095_length_4330_cov_22.627602" + }, + "NODE_11139_length_4315_cov_17.737793": { + "Ncount": 100, + "contig_id": "NODE_11139_length_4315_cov_17.737793", + "description": "", + "gc_content": 0.40371, + "length": 4315, + "md5": "54179a3be8c7bf4483f217ed6249a5d9", + "name": "NODE_11139_length_4315_cov_17.737793" + }, + "NODE_11141_length_4314_cov_156.916412": { + "contig_id": "NODE_11141_length_4314_cov_156.916412", + "description": "", + "gc_content": 0.49536, + "length": 4314, + "md5": "7cc195cb30ec63098ba221d1111755c0", + "name": "NODE_11141_length_4314_cov_156.916412" + }, + "NODE_11153_length_4307_cov_58.286689": { + "contig_id": "NODE_11153_length_4307_cov_58.286689", + "description": "", + "gc_content": 0.58417, + "length": 4307, + "md5": "1a5c03518416f36d6efc7e52e462412e", + "name": "NODE_11153_length_4307_cov_58.286689" + }, + "NODE_11178_length_4301_cov_668.951719": { + "contig_id": "NODE_11178_length_4301_cov_668.951719", + "description": "", + "gc_content": 0.60823, + "length": 4301, + "md5": "0a9883ee273c6ff3d8ad1ece5f714c92", + "name": "NODE_11178_length_4301_cov_668.951719" + }, + "NODE_1122_length_37857_cov_30.796228": { + "contig_id": "NODE_1122_length_37857_cov_30.796228", + "description": "", + "gc_content": 0.64197, + "length": 37857, + "md5": "64c9c73291caae256e4314e7e94be6d4", + "name": "NODE_1122_length_37857_cov_30.796228" + }, + "NODE_1126_length_37809_cov_129.350744": { + "Ncount": 100, + "contig_id": "NODE_1126_length_37809_cov_129.350744", + "description": "", + "gc_content": 0.63726, + "length": 37809, + "md5": "f1a6edae88c97fbbe7164411f55bb060", + "name": "NODE_1126_length_37809_cov_129.350744" + }, + "NODE_1128_length_37768_cov_9.120250": { + "contig_id": "NODE_1128_length_37768_cov_9.120250", + "description": "", + "gc_content": 0.68677, + "length": 37768, + "md5": "2b48302a94a43b7ed22e9c8d419eca97", + "name": "NODE_1128_length_37768_cov_9.120250" + }, + "NODE_112_length_170680_cov_15.618678": { + "Ncount": 100, + "contig_id": "NODE_112_length_170680_cov_15.618678", + "description": "", + "gc_content": 0.49289, + "length": 170680, + "md5": "10411bfc46de2bb4e97b53064f06a9ad", + "name": "NODE_112_length_170680_cov_15.618678" + }, + "NODE_11369_length_4242_cov_11.336279": { + "contig_id": "NODE_11369_length_4242_cov_11.336279", + "description": "", + "gc_content": 0.38873, + "length": 4242, + "md5": "79b0c3e17170c861f3fb30285a7ac5cc", + "name": "NODE_11369_length_4242_cov_11.336279" + }, + "NODE_11389_length_4237_cov_9.885222": { + "contig_id": "NODE_11389_length_4237_cov_9.885222", + "description": "", + "gc_content": 0.62945, + "length": 4237, + "md5": "ba3eebbeb887d7013b5137dbe30d7778", + "name": "NODE_11389_length_4237_cov_9.885222" + }, + "NODE_11396_length_4234_cov_25.534099": { + "contig_id": "NODE_11396_length_4234_cov_25.534099", + "description": "", + "gc_content": 0.64761, + "length": 4234, + "md5": "02022bb2bf7ec5a1f43de9b04570a0d8", + "name": "NODE_11396_length_4234_cov_25.534099" + }, + "NODE_1139_length_37316_cov_18.741955": { + "contig_id": "NODE_1139_length_37316_cov_18.741955", + "description": "", + "gc_content": 0.39198, + "length": 37316, + "md5": "a6cb6d4d85c4184fcab36a04208a3753", + "name": "NODE_1139_length_37316_cov_18.741955" + }, + "NODE_113_length_170363_cov_131.693044": { + "Ncount": 100, + "contig_id": "NODE_113_length_170363_cov_131.693044", + "description": "", + "gc_content": 0.64721, + "length": 170363, + "md5": "cbceec79f85c08d9c97d1e62a261af14", + "name": "NODE_113_length_170363_cov_131.693044" + }, + "NODE_11420_length_4227_cov_120.473394": { + "contig_id": "NODE_11420_length_4227_cov_120.473394", + "description": "", + "gc_content": 0.64845, + "length": 4227, + "md5": "2e969f88216f7c4fc1fee350dd3c402b", + "name": "NODE_11420_length_4227_cov_120.473394" + }, + "NODE_1145_length_37075_cov_126.388088": { + "contig_id": "NODE_1145_length_37075_cov_126.388088", + "description": "", + "gc_content": 0.6355, + "length": 37075, + "md5": "df7a9987255328ac070dbd9f0ce0646a", + "name": "NODE_1145_length_37075_cov_126.388088" + }, + "NODE_11464_length_4215_cov_41.485337": { + "contig_id": "NODE_11464_length_4215_cov_41.485337", + "description": "", + "gc_content": 0.63203, + "length": 4215, + "md5": "259cb9a0f0fd5ce1c030ef0be080529f", + "name": "NODE_11464_length_4215_cov_41.485337" + }, + "NODE_11492_length_4207_cov_92.317437": { + "contig_id": "NODE_11492_length_4207_cov_92.317437", + "description": "", + "gc_content": 0.66461, + "length": 4207, + "md5": "12453c82282b1cc1e8ca414ef21cbce1", + "name": "NODE_11492_length_4207_cov_92.317437" + }, + "NODE_1155_length_36715_cov_27.545881": { + "contig_id": "NODE_1155_length_36715_cov_27.545881", + "description": "", + "gc_content": 0.66591, + "length": 36715, + "md5": "4ab5c1501a366974220cf0d3fb55a930", + "name": "NODE_1155_length_36715_cov_27.545881" + }, + "NODE_11621_length_4168_cov_158.778021": { + "contig_id": "NODE_11621_length_4168_cov_158.778021", + "description": "", + "gc_content": 0.47769, + "length": 4168, + "md5": "ddd8558452b25922c548b16ef3c4b6e1", + "name": "NODE_11621_length_4168_cov_158.778021" + }, + "NODE_1162_length_36499_cov_119.348233": { + "contig_id": "NODE_1162_length_36499_cov_119.348233", + "description": "", + "gc_content": 0.62404, + "length": 36499, + "md5": "6300f349da7520e0027640bf1a3361e4", + "name": "NODE_1162_length_36499_cov_119.348233" + }, + "NODE_11634_length_4165_cov_10.957908": { + "contig_id": "NODE_11634_length_4165_cov_10.957908", + "description": "", + "gc_content": 0.38103, + "length": 4165, + "md5": "f79dc3e5042ef8c1761f739b17a17580", + "name": "NODE_11634_length_4165_cov_10.957908" + }, + "NODE_11637_length_4164_cov_24.961061": { + "contig_id": "NODE_11637_length_4164_cov_24.961061", + "description": "", + "gc_content": 0.35327, + "length": 4164, + "md5": "84a53010cc40edcd72f3bdb53e099770", + "name": "NODE_11637_length_4164_cov_24.961061" + }, + "NODE_11666_length_4157_cov_132.040956": { + "contig_id": "NODE_11666_length_4157_cov_132.040956", + "description": "", + "gc_content": 0.344, + "length": 4157, + "md5": "43014e8356e7147eca9bb8f4cdf8890e", + "name": "NODE_11666_length_4157_cov_132.040956" + }, + "NODE_1166_length_36399_cov_557.481483": { + "contig_id": "NODE_1166_length_36399_cov_557.481483", + "description": "", + "gc_content": 0.63304, + "length": 36399, + "md5": "f2bcc5ee5c662a75ce1ab9a341ef210d", + "name": "NODE_1166_length_36399_cov_557.481483" + }, + "NODE_11755_length_4119_cov_158.610974": { + "contig_id": "NODE_11755_length_4119_cov_158.610974", + "description": "", + "gc_content": 0.45399, + "length": 4119, + "md5": "44ea44e1e3344c7d15afb0160550b985", + "name": "NODE_11755_length_4119_cov_158.610974" + }, + "NODE_1179_length_36092_cov_150.062908": { + "Ncount": 10, + "contig_id": "NODE_1179_length_36092_cov_150.062908", + "description": "", + "gc_content": 0.2935, + "length": 36092, + "md5": "412bbf54f5ce3b825c75411270c0ea1f", + "name": "NODE_1179_length_36092_cov_150.062908" + }, + "NODE_1182_length_35938_cov_16.677953": { + "contig_id": "NODE_1182_length_35938_cov_16.677953", + "description": "", + "gc_content": 0.3956, + "length": 35938, + "md5": "9f7a810f5146985a0b3c6014aaf702de", + "name": "NODE_1182_length_35938_cov_16.677953" + }, + "NODE_118_length_166625_cov_28.846251": { + "Ncount": 200, + "contig_id": "NODE_118_length_166625_cov_28.846251", + "description": "", + "gc_content": 0.64029, + "length": 166625, + "md5": "693ca1270b2daf7f064547c3fa019a15", + "name": "NODE_118_length_166625_cov_28.846251" + }, + "NODE_11973_length_4054_cov_79.629407": { + "contig_id": "NODE_11973_length_4054_cov_79.629407", + "description": "", + "gc_content": 0.68254, + "length": 4054, + "md5": "135fc756cb07e8841a103ee1d6f3ea4f", + "name": "NODE_11973_length_4054_cov_79.629407" + }, + "NODE_119_length_166541_cov_138.393805": { + "contig_id": "NODE_119_length_166541_cov_138.393805", + "description": "", + "gc_content": 0.3936, + "length": 166541, + "md5": "20fa9ffe46ffc16d5b0708eaa91a1a35", + "name": "NODE_119_length_166541_cov_138.393805" + }, + "NODE_12039_length_4040_cov_26.019824": { + "contig_id": "NODE_12039_length_4040_cov_26.019824", + "description": "", + "gc_content": 0.59084, + "length": 4040, + "md5": "c6e65983018d2d57cad2558871c02d15", + "name": "NODE_12039_length_4040_cov_26.019824" + }, + "NODE_1204_length_35428_cov_8.768157": { + "Ncount": 23, + "contig_id": "NODE_1204_length_35428_cov_8.768157", + "description": "", + "gc_content": 0.68011, + "length": 35428, + "md5": "e24aa82857a3d9e397688c13cbdda62f", + "name": "NODE_1204_length_35428_cov_8.768157" + }, + "NODE_12090_length_4026_cov_148.421304": { + "contig_id": "NODE_12090_length_4026_cov_148.421304", + "description": "", + "gc_content": 0.42996, + "length": 4026, + "md5": "61b8765150b85046de8db23b2f72214d", + "name": "NODE_12090_length_4026_cov_148.421304" + }, + "NODE_1209_length_35302_cov_113.690357": { + "Ncount": 200, + "contig_id": "NODE_1209_length_35302_cov_113.690357", + "description": "", + "gc_content": 0.64872, + "length": 35302, + "md5": "4c3cda4b8d57539065e75f711abd82af", + "name": "NODE_1209_length_35302_cov_113.690357" + }, + "NODE_12131_length_4013_cov_136.417888": { + "contig_id": "NODE_12131_length_4013_cov_136.417888", + "description": "", + "gc_content": 0.615, + "length": 4013, + "md5": "171bc7969a08b823dcb6266278cb5ca8", + "name": "NODE_12131_length_4013_cov_136.417888" + }, + "NODE_1223_length_35080_cov_5.716602": { + "Ncount": 10, + "contig_id": "NODE_1223_length_35080_cov_5.716602", + "description": "", + "gc_content": 0.66594, + "length": 35080, + "md5": "15b0a92b58a77c5d85de2f2ac06f46f4", + "name": "NODE_1223_length_35080_cov_5.716602" + }, + "NODE_1224_length_35025_cov_32.184272": { + "contig_id": "NODE_1224_length_35025_cov_32.184272", + "description": "", + "gc_content": 0.6382, + "length": 35025, + "md5": "e3e9d2542698bbd6f576266f0fb8c6f1", + "name": "NODE_1224_length_35025_cov_32.184272" + }, + "NODE_1229_length_34755_cov_8.414524": { + "contig_id": "NODE_1229_length_34755_cov_8.414524", + "description": "", + "gc_content": 0.673, + "length": 34755, + "md5": "46ad03974f30acf7ea67ca17745f716b", + "name": "NODE_1229_length_34755_cov_8.414524" + }, + "NODE_12322_length_3960_cov_15.397695": { + "contig_id": "NODE_12322_length_3960_cov_15.397695", + "description": "", + "gc_content": 0.45051, + "length": 3960, + "md5": "1778f62236f5fab89ea89d1f750ee22a", + "name": "NODE_12322_length_3960_cov_15.397695" + }, + "NODE_12414_length_3934_cov_69.821088": { + "contig_id": "NODE_12414_length_3934_cov_69.821088", + "description": "", + "gc_content": 0.48246, + "length": 3934, + "md5": "c6f6bfe65d8d90dffcfe71e38095021b", + "name": "NODE_12414_length_3934_cov_69.821088" + }, + "NODE_12532_length_3902_cov_9.641539": { + "contig_id": "NODE_12532_length_3902_cov_9.641539", + "description": "", + "gc_content": 0.68965, + "length": 3902, + "md5": "2f049ed7fa16f5a46c27705c5c6b9096", + "name": "NODE_12532_length_3902_cov_9.641539" + }, + "NODE_12575_length_3891_cov_99.934307": { + "contig_id": "NODE_12575_length_3891_cov_99.934307", + "description": "", + "gc_content": 0.40427, + "length": 3891, + "md5": "59d276a00e552a9520c6bd8ec334970d", + "name": "NODE_12575_length_3891_cov_99.934307" + }, + "NODE_12579_length_3890_cov_300.798175": { + "contig_id": "NODE_12579_length_3890_cov_300.798175", + "description": "", + "gc_content": 0.52725, + "length": 3890, + "md5": "8d38eba0024c346abd443b9f8d6cf5b6", + "name": "NODE_12579_length_3890_cov_300.798175" + }, + "NODE_12599_length_3882_cov_71.918474": { + "contig_id": "NODE_12599_length_3882_cov_71.918474", + "description": "", + "gc_content": 0.36476, + "length": 3882, + "md5": "e55e593b6849044a2dbcdfe41de80f31", + "name": "NODE_12599_length_3882_cov_71.918474" + }, + "NODE_12602_length_3880_cov_13.072157": { + "contig_id": "NODE_12602_length_3880_cov_13.072157", + "description": "", + "gc_content": 0.67062, + "length": 3880, + "md5": "5788edb5944efe149ac8ddc764ffb240", + "name": "NODE_12602_length_3880_cov_13.072157" + }, + "NODE_1261_length_34121_cov_22.040099": { + "contig_id": "NODE_1261_length_34121_cov_22.040099", + "description": "", + "gc_content": 0.39527, + "length": 34121, + "md5": "7dc64465980e40e282416bb8bd7686fc", + "name": "NODE_1261_length_34121_cov_22.040099" + }, + "NODE_12639_length_3871_cov_85.626834": { + "contig_id": "NODE_12639_length_3871_cov_85.626834", + "description": "", + "gc_content": 0.63084, + "length": 3871, + "md5": "1fd891191e94757d7147959341c9a5ef", + "name": "NODE_12639_length_3871_cov_85.626834" + }, + "NODE_1263_length_34106_cov_32.715574": { + "Ncount": 100, + "contig_id": "NODE_1263_length_34106_cov_32.715574", + "description": "", + "gc_content": 0.64748, + "length": 34106, + "md5": "2bd107aa69cfcda467ad7ed120ffcd66", + "name": "NODE_1263_length_34106_cov_32.715574" + }, + "NODE_1264_length_34064_cov_146.452998": { + "contig_id": "NODE_1264_length_34064_cov_146.452998", + "description": "", + "gc_content": 0.39015, + "length": 34064, + "md5": "a3146d08ec5f0766752370d91d0d739b", + "name": "NODE_1264_length_34064_cov_146.452998" + }, + "NODE_12741_length_3844_cov_23.475851": { + "contig_id": "NODE_12741_length_3844_cov_23.475851", + "description": "", + "gc_content": 0.65765, + "length": 3844, + "md5": "61b7bf1700a6689fd1bbaee0cf0bf6b7", + "name": "NODE_12741_length_3844_cov_23.475851" + }, + "NODE_12754_length_3840_cov_29.600528": { + "contig_id": "NODE_12754_length_3840_cov_29.600528", + "description": "", + "gc_content": 0.35339, + "length": 3840, + "md5": "68d75eace67673d6f5086734b40c78be", + "name": "NODE_12754_length_3840_cov_29.600528" + }, + "NODE_1278_length_33808_cov_172.368975": { + "contig_id": "NODE_1278_length_33808_cov_172.368975", + "description": "", + "gc_content": 0.49432, + "length": 33808, + "md5": "edb8f6b8ca9e640e6a3aa65cfac22e42", + "name": "NODE_1278_length_33808_cov_172.368975" + }, + "NODE_1279_length_33801_cov_8.643039": { + "contig_id": "NODE_1279_length_33801_cov_8.643039", + "description": "", + "gc_content": 0.68959, + "length": 33801, + "md5": "ab4e2b59ef13536b42a3dfd63e789a1b", + "name": "NODE_1279_length_33801_cov_8.643039" + }, + "NODE_12808_length_3825_cov_3.663130": { + "contig_id": "NODE_12808_length_3825_cov_3.663130", + "description": "", + "gc_content": 0.68392, + "length": 3825, + "md5": "6b52d6e13e83e8454115053e77db65cd", + "name": "NODE_12808_length_3825_cov_3.663130" + }, + "NODE_1286_length_33717_cov_132.909364": { + "contig_id": "NODE_1286_length_33717_cov_132.909364", + "description": "", + "gc_content": 0.62452, + "length": 33717, + "md5": "5b751d2a73f324ad8cd591f56766b5e1", + "name": "NODE_1286_length_33717_cov_132.909364" + }, + "NODE_12876_length_3810_cov_67.741411": { + "contig_id": "NODE_12876_length_3810_cov_67.741411", + "description": "", + "gc_content": 0.65801, + "length": 3810, + "md5": "de0e94d7236142856b96459f4a2fdea5", + "name": "NODE_12876_length_3810_cov_67.741411" + }, + "NODE_12922_length_3797_cov_8.080973": { + "contig_id": "NODE_12922_length_3797_cov_8.080973", + "description": "", + "gc_content": 0.67606, + "length": 3797, + "md5": "00fa8b80d59d6f1ed42c1086135d7725", + "name": "NODE_12922_length_3797_cov_8.080973" + }, + "NODE_1292_length_33567_cov_9.282138": { + "contig_id": "NODE_1292_length_33567_cov_9.282138", + "description": "", + "gc_content": 0.66676, + "length": 33567, + "md5": "349ecb7add0d1bdefc95aefa03fc3285", + "name": "NODE_1292_length_33567_cov_9.282138" + }, + "NODE_1293_length_33560_cov_123.840740": { + "Ncount": 200, + "contig_id": "NODE_1293_length_33560_cov_123.840740", + "description": "", + "gc_content": 0.63701, + "length": 33560, + "md5": "6dfd378b4f1902e62cd9e7b422b0bf64", + "name": "NODE_1293_length_33560_cov_123.840740" + }, + "NODE_1299_length_33454_cov_103.690440": { + "contig_id": "NODE_1299_length_33454_cov_103.690440", + "description": "", + "gc_content": 0.65051, + "length": 33454, + "md5": "4863f2173f8eb7f8ec144b66b1f3a772", + "name": "NODE_1299_length_33454_cov_103.690440" + }, + "NODE_1309_length_33260_cov_18.201144": { + "contig_id": "NODE_1309_length_33260_cov_18.201144", + "description": "", + "gc_content": 0.40622, + "length": 33260, + "md5": "e84ad0455c5ce0103c1fdb94d71a8701", + "name": "NODE_1309_length_33260_cov_18.201144" + }, + "NODE_1310_length_33211_cov_27.665219": { + "contig_id": "NODE_1310_length_33211_cov_27.665219", + "description": "", + "gc_content": 0.6359, + "length": 33211, + "md5": "38aa182ea746e917225e8f63bef74351", + "name": "NODE_1310_length_33211_cov_27.665219" + }, + "NODE_13186_length_3731_cov_17.399075": { + "contig_id": "NODE_13186_length_3731_cov_17.399075", + "description": "", + "gc_content": 0.40499, + "length": 3731, + "md5": "44a67032636160e48e0cf41a7e132c09", + "name": "NODE_13186_length_3731_cov_17.399075" + }, + "NODE_1325_length_32823_cov_118.561707": { + "Ncount": 100, + "contig_id": "NODE_1325_length_32823_cov_118.561707", + "description": "", + "gc_content": 0.64763, + "length": 32823, + "md5": "a8e10ba25c17b852efa1f244cce6e6af", + "name": "NODE_1325_length_32823_cov_118.561707" + }, + "NODE_1327_length_32806_cov_112.976153": { + "contig_id": "NODE_1327_length_32806_cov_112.976153", + "description": "", + "gc_content": 0.64775, + "length": 32806, + "md5": "c2509d70c129f0f5a01f975110860c1b", + "name": "NODE_1327_length_32806_cov_112.976153" + }, + "NODE_1328_length_32773_cov_51.295220": { + "contig_id": "NODE_1328_length_32773_cov_51.295220", + "description": "", + "gc_content": 0.64227, + "length": 32773, + "md5": "386a2e282aed3b3baa916a35b9075fe5", + "name": "NODE_1328_length_32773_cov_51.295220" + }, + "NODE_13303_length_3699_cov_30.213502": { + "contig_id": "NODE_13303_length_3699_cov_30.213502", + "description": "", + "gc_content": 0.62801, + "length": 3699, + "md5": "c02a9ea43aca1e6bed6417d3bec57ab9", + "name": "NODE_13303_length_3699_cov_30.213502" + }, + "NODE_133_length_154186_cov_30.952093": { + "Ncount": 100, + "contig_id": "NODE_133_length_154186_cov_30.952093", + "description": "", + "gc_content": 0.64174, + "length": 154186, + "md5": "ca33421c8e9e992b0f1b62700e7bbaeb", + "name": "NODE_133_length_154186_cov_30.952093" + }, + "NODE_1342_length_32571_cov_32.245510": { + "Ncount": 100, + "contig_id": "NODE_1342_length_32571_cov_32.245510", + "description": "", + "gc_content": 0.64309, + "length": 32571, + "md5": "457aba30d0e223e1a55cd8a44d3e57c1", + "name": "NODE_1342_length_32571_cov_32.245510" + }, + "NODE_13484_length_3653_cov_96.151473": { + "contig_id": "NODE_13484_length_3653_cov_96.151473", + "description": "", + "gc_content": 0.64112, + "length": 3653, + "md5": "295b8ffdf722f022e15bf51e671db87f", + "name": "NODE_13484_length_3653_cov_96.151473" + }, + "NODE_13494_length_3651_cov_7.834260": { + "contig_id": "NODE_13494_length_3651_cov_7.834260", + "description": "", + "gc_content": 0.66639, + "length": 3651, + "md5": "bae57f21977608cf8166f451bac815b7", + "name": "NODE_13494_length_3651_cov_7.834260" + }, + "NODE_1350_length_32490_cov_562.040543": { + "Ncount": 100, + "contig_id": "NODE_1350_length_32490_cov_562.040543", + "description": "", + "gc_content": 0.635, + "length": 32490, + "md5": "c20dc7c62d536e59a612142ad37dbcb6", + "name": "NODE_1350_length_32490_cov_562.040543" + }, + "NODE_13555_length_3638_cov_12.013397": { + "contig_id": "NODE_13555_length_3638_cov_12.013397", + "description": "", + "gc_content": 0.34689, + "length": 3638, + "md5": "da889dda0fcdeb54c108edb170390d3c", + "name": "NODE_13555_length_3638_cov_12.013397" + }, + "NODE_1356_length_32339_cov_113.595558": { + "Ncount": 100, + "contig_id": "NODE_1356_length_32339_cov_113.595558", + "description": "", + "gc_content": 0.64847, + "length": 32339, + "md5": "397096e3b19515f59179e4bc1b5dfd4c", + "name": "NODE_1356_length_32339_cov_113.595558" + }, + "NODE_13601_length_3631_cov_19.111577": { + "contig_id": "NODE_13601_length_3631_cov_19.111577", + "description": "", + "gc_content": 0.38915, + "length": 3631, + "md5": "52d9d1ff124447165be6d323fc8d67ee", + "name": "NODE_13601_length_3631_cov_19.111577" + }, + "NODE_1364_length_32171_cov_22.017437": { + "contig_id": "NODE_1364_length_32171_cov_22.017437", + "description": "", + "gc_content": 0.40692, + "length": 32171, + "md5": "e0dcf3279058bbea48c455a5968111e5", + "name": "NODE_1364_length_32171_cov_22.017437" + }, + "NODE_1367_length_32119_cov_15.847836": { + "contig_id": "NODE_1367_length_32119_cov_15.847836", + "description": "", + "gc_content": 0.48535, + "length": 32119, + "md5": "b6584731481098b2c1db7dfd6113acf2", + "name": "NODE_1367_length_32119_cov_15.847836" + }, + "NODE_13682_length_3613_cov_17.007307": { + "contig_id": "NODE_13682_length_3613_cov_17.007307", + "description": "", + "gc_content": 0.59673, + "length": 3613, + "md5": "973f2c75560f720e2948e0b792289f40", + "name": "NODE_13682_length_3613_cov_17.007307" + }, + "NODE_136_length_152140_cov_145.014426": { + "Ncount": 200, + "contig_id": "NODE_136_length_152140_cov_145.014426", + "description": "", + "gc_content": 0.63986, + "length": 152140, + "md5": "b0fef651db01af97af69f6d35af44eb7", + "name": "NODE_136_length_152140_cov_145.014426" + }, + "NODE_1370_length_32077_cov_9.088221": { + "contig_id": "NODE_1370_length_32077_cov_9.088221", + "description": "", + "gc_content": 0.64364, + "length": 32077, + "md5": "d5c7520af00d0349401ce1818141c608", + "name": "NODE_1370_length_32077_cov_9.088221" + }, + "NODE_13710_length_3608_cov_79.719674": { + "contig_id": "NODE_13710_length_3608_cov_79.719674", + "description": "", + "gc_content": 0.36558, + "length": 3608, + "md5": "aff6e6b544648e6d934da8572129005b", + "name": "NODE_13710_length_3608_cov_79.719674" + }, + "NODE_1372_length_32036_cov_8.824052": { + "contig_id": "NODE_1372_length_32036_cov_8.824052", + "description": "", + "gc_content": 0.67059, + "length": 32036, + "md5": "dc716fbe95730c3bcf77a8875c9bd817", + "name": "NODE_1372_length_32036_cov_8.824052" + }, + "NODE_13752_length_3598_cov_114.250353": { + "contig_id": "NODE_13752_length_3598_cov_114.250353", + "description": "", + "gc_content": 0.37215, + "length": 3598, + "md5": "240079b5fd627eca1c4543c4fb88eb2c", + "name": "NODE_13752_length_3598_cov_114.250353" + }, + "NODE_1382_length_31734_cov_8.648884": { + "contig_id": "NODE_1382_length_31734_cov_8.648884", + "description": "", + "gc_content": 0.67896, + "length": 31734, + "md5": "9b2a8158d6bdaaadd0ed1cca2b411a15", + "name": "NODE_1382_length_31734_cov_8.648884" + }, + "NODE_13875_length_3573_cov_27.033542": { + "contig_id": "NODE_13875_length_3573_cov_27.033542", + "description": "", + "gc_content": 0.60621, + "length": 3573, + "md5": "50cf207c3adffa86358f60f55a067ff7", + "name": "NODE_13875_length_3573_cov_27.033542" + }, + "NODE_1389_length_31599_cov_139.299201": { + "Ncount": 110, + "contig_id": "NODE_1389_length_31599_cov_139.299201", + "description": "", + "gc_content": 0.38843, + "length": 31599, + "md5": "c72073d35e89a4d9fcda8d842a5ae8bc", + "name": "NODE_1389_length_31599_cov_139.299201" + }, + "NODE_13927_length_3562_cov_72.468492": { + "contig_id": "NODE_13927_length_3562_cov_72.468492", + "description": "", + "gc_content": 0.32622, + "length": 3562, + "md5": "d6d76272d72798d60c232f8f8f05cd12", + "name": "NODE_13927_length_3562_cov_72.468492" + }, + "NODE_1392_length_31545_cov_136.657193": { + "contig_id": "NODE_1392_length_31545_cov_136.657193", + "description": "", + "gc_content": 0.38523, + "length": 31545, + "md5": "366def7c81265b3b331c0f9a2f8ccf1e", + "name": "NODE_1392_length_31545_cov_136.657193" + }, + "NODE_139_length_147361_cov_118.533760": { + "Ncount": 300, + "contig_id": "NODE_139_length_147361_cov_118.533760", + "description": "", + "gc_content": 0.64036, + "length": 147361, + "md5": "5270ee25ec21def387cc5f96c944c1aa", + "name": "NODE_139_length_147361_cov_118.533760" + }, + "NODE_14001_length_3547_cov_10.766323": { + "contig_id": "NODE_14001_length_3547_cov_10.766323", + "description": "", + "gc_content": 0.49958, + "length": 3547, + "md5": "9bb5966d06d23cdb74fab4c8b28ed420", + "name": "NODE_14001_length_3547_cov_10.766323" + }, + "NODE_1400_length_31287_cov_28.762647": { + "contig_id": "NODE_1400_length_31287_cov_28.762647", + "description": "", + "gc_content": 0.64327, + "length": 31287, + "md5": "58e9a9c93e882f61bf88ac032296efb7", + "name": "NODE_1400_length_31287_cov_28.762647" + }, + "NODE_14019_length_3544_cov_37.337919": { + "contig_id": "NODE_14019_length_3544_cov_37.337919", + "description": "", + "gc_content": 0.60948, + "length": 3544, + "md5": "ecadef2be0f12001df788bb6c47c6811", + "name": "NODE_14019_length_3544_cov_37.337919" + }, + "NODE_1401_length_31274_cov_163.348249": { + "contig_id": "NODE_1401_length_31274_cov_163.348249", + "description": "", + "gc_content": 0.49367, + "length": 31274, + "md5": "482d04a04b02a47cdc71864fb1f7c7a9", + "name": "NODE_1401_length_31274_cov_163.348249" + }, + "NODE_14101_length_3526_cov_9.505330": { + "contig_id": "NODE_14101_length_3526_cov_9.505330", + "description": "", + "gc_content": 0.64294, + "length": 3526, + "md5": "6b9fe1c631bdc804895472f23227ed09", + "name": "NODE_14101_length_3526_cov_9.505330" + }, + "NODE_14176_length_3510_cov_27.822287": { + "contig_id": "NODE_14176_length_3510_cov_27.822287", + "description": "", + "gc_content": 0.58262, + "length": 3510, + "md5": "aaeee86a015aa63a8ce170d6fbacc524", + "name": "NODE_14176_length_3510_cov_27.822287" + }, + "NODE_1417_length_30921_cov_17.653891": { + "contig_id": "NODE_1417_length_30921_cov_17.653891", + "description": "", + "gc_content": 0.39886, + "length": 30921, + "md5": "4bcc097609c6a3d6d8921b23956f39c3", + "name": "NODE_1417_length_30921_cov_17.653891" + }, + "NODE_14212_length_3501_cov_4.354614": { + "contig_id": "NODE_14212_length_3501_cov_4.354614", + "description": "", + "gc_content": 0.66467, + "length": 3501, + "md5": "0827cad019b8d0f52d7673a31a927108", + "name": "NODE_14212_length_3501_cov_4.354614" + }, + "NODE_14279_length_3482_cov_26.060111": { + "contig_id": "NODE_14279_length_3482_cov_26.060111", + "description": "", + "gc_content": 0.43308, + "length": 3482, + "md5": "0ced53e4e670c373ffff80b3cdbba151", + "name": "NODE_14279_length_3482_cov_26.060111" + }, + "NODE_14289_length_3480_cov_194.713869": { + "contig_id": "NODE_14289_length_3480_cov_194.713869", + "description": "", + "gc_content": 0.6704, + "length": 3480, + "md5": "3e4b46eb88746c0aea1556f2e33e73b4", + "name": "NODE_14289_length_3480_cov_194.713869" + }, + "NODE_142_length_146445_cov_17.789555": { + "Ncount": 100, + "contig_id": "NODE_142_length_146445_cov_17.789555", + "description": "", + "gc_content": 0.39396, + "length": 146445, + "md5": "f7d49a9ecb7c3145fbadb4e9a9a5291a", + "name": "NODE_142_length_146445_cov_17.789555" + }, + "NODE_14364_length_3465_cov_6.076833": { + "contig_id": "NODE_14364_length_3465_cov_6.076833", + "description": "", + "gc_content": 0.68745, + "length": 3465, + "md5": "b30e134987a50217d704a1c203703e2f", + "name": "NODE_14364_length_3465_cov_6.076833" + }, + "NODE_14451_length_3449_cov_42.208898": { + "contig_id": "NODE_14451_length_3449_cov_42.208898", + "description": "", + "gc_content": 0.41983, + "length": 3449, + "md5": "c8de02274ce8624b87d9d0cbc3ff0c9e", + "name": "NODE_14451_length_3449_cov_42.208898" + }, + "NODE_1447_length_30236_cov_9.676088": { + "contig_id": "NODE_1447_length_30236_cov_9.676088", + "description": "", + "gc_content": 0.65869, + "length": 30236, + "md5": "fec2a52e23463054ea68b60dec15dfc1", + "name": "NODE_1447_length_30236_cov_9.676088" + }, + "NODE_14495_length_3441_cov_14.802717": { + "contig_id": "NODE_14495_length_3441_cov_14.802717", + "description": "", + "gc_content": 0.34641, + "length": 3441, + "md5": "fa1cb730119196e4ff45cb1b121bfd8a", + "name": "NODE_14495_length_3441_cov_14.802717" + }, + "NODE_1449_length_30142_cov_22.601090": { + "contig_id": "NODE_1449_length_30142_cov_22.601090", + "description": "", + "gc_content": 0.37303, + "length": 30142, + "md5": "e2a61bc8e656a201a430181602d11c65", + "name": "NODE_1449_length_30142_cov_22.601090" + }, + "NODE_1455_length_29972_cov_30.358024": { + "contig_id": "NODE_1455_length_29972_cov_30.358024", + "description": "", + "gc_content": 0.64113, + "length": 29972, + "md5": "28cfca7de7e3cf165c4afbfad75f6e31", + "name": "NODE_1455_length_29972_cov_30.358024" + }, + "NODE_1456_length_29906_cov_108.807779": { + "Ncount": 200, + "contig_id": "NODE_1456_length_29906_cov_108.807779", + "description": "", + "gc_content": 0.63663, + "length": 29906, + "md5": "86c19f1c9fdda1c8cbe3f2baa3dc1fd8", + "name": "NODE_1456_length_29906_cov_108.807779" + }, + "NODE_145_length_145676_cov_623.757301": { + "contig_id": "NODE_145_length_145676_cov_623.757301", + "description": "", + "gc_content": 0.63679, + "length": 145676, + "md5": "4429350a9379ee2b79dad4f442757271", + "name": "NODE_145_length_145676_cov_623.757301" + }, + "NODE_1476_length_29572_cov_131.514686": { + "contig_id": "NODE_1476_length_29572_cov_131.514686", + "description": "", + "gc_content": 0.63709, + "length": 29572, + "md5": "8b57e9b2856cc39232cd85096bef774b", + "name": "NODE_1476_length_29572_cov_131.514686" + }, + "NODE_14876_length_3363_cov_19.192563": { + "contig_id": "NODE_14876_length_3363_cov_19.192563", + "description": "", + "gc_content": 0.38924, + "length": 3363, + "md5": "b10d3a617231e0282fd9bc1a0df6d0fe", + "name": "NODE_14876_length_3363_cov_19.192563" + }, + "NODE_1487_length_29423_cov_117.210161": { + "contig_id": "NODE_1487_length_29423_cov_117.210161", + "description": "", + "gc_content": 0.64681, + "length": 29423, + "md5": "66fbd63cbe04aa927c9b91f85261f498", + "name": "NODE_1487_length_29423_cov_117.210161" + }, + "NODE_148_length_144947_cov_17.130228": { + "Ncount": 10, + "contig_id": "NODE_148_length_144947_cov_17.130228", + "description": "", + "gc_content": 0.40015, + "length": 144947, + "md5": "2b3efd1f7f73864638c4e6e42d33e07f", + "name": "NODE_148_length_144947_cov_17.130228" + }, + "NODE_14_length_428193_cov_602.559876": { + "Ncount": 110, + "contig_id": "NODE_14_length_428193_cov_602.559876", + "description": "", + "gc_content": 0.63326, + "length": 428193, + "md5": "fe02ab973c801cf43ae2e018bbd05651", + "name": "NODE_14_length_428193_cov_602.559876" + }, + "NODE_1501_length_29068_cov_15.998621": { + "contig_id": "NODE_1501_length_29068_cov_15.998621", + "description": "", + "gc_content": 0.49608, + "length": 29068, + "md5": "c68467c5adfdcc842308c23d4c372e3c", + "name": "NODE_1501_length_29068_cov_15.998621" + }, + "NODE_15053_length_3326_cov_31.182513": { + "Ncount": 10, + "contig_id": "NODE_15053_length_3326_cov_31.182513", + "description": "", + "gc_content": 0.58208, + "length": 3326, + "md5": "56c67308aceecf92b7a027b80b49273b", + "name": "NODE_15053_length_3326_cov_31.182513" + }, + "NODE_15072_length_3322_cov_20.016835": { + "contig_id": "NODE_15072_length_3322_cov_20.016835", + "description": "", + "gc_content": 0.34256, + "length": 3322, + "md5": "9f268ba7e74576836d85189d69be1a38", + "name": "NODE_15072_length_3322_cov_20.016835" + }, + "NODE_15085_length_3320_cov_85.869832": { + "contig_id": "NODE_15085_length_3320_cov_85.869832", + "description": "", + "gc_content": 0.33795, + "length": 3320, + "md5": "3a53950c9eb46aa3c36a6ccefa404111", + "name": "NODE_15085_length_3320_cov_85.869832" + }, + "NODE_150_length_144291_cov_19.611838": { + "Ncount": 10, + "contig_id": "NODE_150_length_144291_cov_19.611838", + "description": "", + "gc_content": 0.38923, + "length": 144291, + "md5": "5a0ab3f207f6b3bc2d0da0325ecb5465", + "name": "NODE_150_length_144291_cov_19.611838" + }, + "NODE_1515_length_28822_cov_139.827024": { + "contig_id": "NODE_1515_length_28822_cov_139.827024", + "description": "", + "gc_content": 0.38554, + "length": 28822, + "md5": "4d81b68380bd48ae2e991ff254be7a6e", + "name": "NODE_1515_length_28822_cov_139.827024" + }, + "NODE_15187_length_3299_cov_8.962700": { + "contig_id": "NODE_15187_length_3299_cov_8.962700", + "description": "", + "gc_content": 0.64717, + "length": 3299, + "md5": "cfaa1cbd5daa588d3c186f1383faca31", + "name": "NODE_15187_length_3299_cov_8.962700" + }, + "NODE_151_length_143838_cov_137.991355": { + "contig_id": "NODE_151_length_143838_cov_137.991355", + "description": "", + "gc_content": 0.38263, + "length": 143838, + "md5": "4d2dd80bfd9fba2a9aa380fdd050f9a8", + "name": "NODE_151_length_143838_cov_137.991355" + }, + "NODE_15234_length_3290_cov_11.550541": { + "contig_id": "NODE_15234_length_3290_cov_11.550541", + "description": "", + "gc_content": 0.40304, + "length": 3290, + "md5": "6aae70ebccbffeafa86773fff018ffda", + "name": "NODE_15234_length_3290_cov_11.550541" + }, + "NODE_15260_length_3285_cov_143.983282": { + "contig_id": "NODE_15260_length_3285_cov_143.983282", + "description": "", + "gc_content": 0.39209, + "length": 3285, + "md5": "1edb5bc482771cdc50487448a8e92a5f", + "name": "NODE_15260_length_3285_cov_143.983282" + }, + "NODE_153_length_143649_cov_144.194771": { + "Ncount": 10, + "contig_id": "NODE_153_length_143649_cov_144.194771", + "description": "", + "gc_content": 0.52984, + "length": 143649, + "md5": "ac13a12b129963cbb335169c40f6471e", + "name": "NODE_153_length_143649_cov_144.194771" + }, + "NODE_1540_length_28308_cov_17.568435": { + "contig_id": "NODE_1540_length_28308_cov_17.568435", + "description": "", + "gc_content": 0.38258, + "length": 28308, + "md5": "87041f60d9199b93a3b037b77c95f75f", + "name": "NODE_1540_length_28308_cov_17.568435" + }, + "NODE_1544_length_28256_cov_29.989468": { + "contig_id": "NODE_1544_length_28256_cov_29.989468", + "description": "", + "gc_content": 0.65993, + "length": 28256, + "md5": "b2e014b29fba3d205e3b0ff464274a4a", + "name": "NODE_1544_length_28256_cov_29.989468" + }, + "NODE_15453_length_3248_cov_16.550893": { + "contig_id": "NODE_15453_length_3248_cov_16.550893", + "description": "", + "gc_content": 0.64532, + "length": 3248, + "md5": "ff8424f23204b2ecd9ad73f87df55606", + "name": "NODE_15453_length_3248_cov_16.550893" + }, + "NODE_15454_length_3248_cov_7.074538": { + "contig_id": "NODE_15454_length_3248_cov_7.074538", + "description": "", + "gc_content": 0.68627, + "length": 3248, + "md5": "af50a087792efe49eca6544af59ec040", + "name": "NODE_15454_length_3248_cov_7.074538" + }, + "NODE_1548_length_28190_cov_29.570855": { + "contig_id": "NODE_1548_length_28190_cov_29.570855", + "description": "", + "gc_content": 0.64218, + "length": 28190, + "md5": "c91a2963ef49181eff1841fc497ae701", + "name": "NODE_1548_length_28190_cov_29.570855" + }, + "NODE_1553_length_28051_cov_148.154951": { + "Ncount": 100, + "contig_id": "NODE_1553_length_28051_cov_148.154951", + "description": "", + "gc_content": 0.36815, + "length": 28051, + "md5": "686bf64c81642b655bb7aac8447e03e3", + "name": "NODE_1553_length_28051_cov_148.154951" + }, + "NODE_15634_length_3215_cov_8.567722": { + "contig_id": "NODE_15634_length_3215_cov_8.567722", + "description": "", + "gc_content": 0.36765, + "length": 3215, + "md5": "8f129ed9faacdd93cff1a29ef7b14617", + "name": "NODE_15634_length_3215_cov_8.567722" + }, + "NODE_15837_length_3180_cov_25.395840": { + "contig_id": "NODE_15837_length_3180_cov_25.395840", + "description": "", + "gc_content": 0.60755, + "length": 3180, + "md5": "07bdf6ee3dee87bd66d4eb72781659e7", + "name": "NODE_15837_length_3180_cov_25.395840" + }, + "NODE_158_length_140790_cov_141.445831": { + "Ncount": 100, + "contig_id": "NODE_158_length_140790_cov_141.445831", + "description": "", + "gc_content": 0.38685, + "length": 140790, + "md5": "29e432f5c48c38ffa8c4bbcc9bd6f061", + "name": "NODE_158_length_140790_cov_141.445831" + }, + "NODE_1590_length_27644_cov_114.231433": { + "contig_id": "NODE_1590_length_27644_cov_114.231433", + "description": "", + "gc_content": 0.64141, + "length": 27644, + "md5": "c40dd2ec36d19c7b7176191fc4105985", + "name": "NODE_1590_length_27644_cov_114.231433" + }, + "NODE_16055_length_3138_cov_135.388258": { + "contig_id": "NODE_16055_length_3138_cov_135.388258", + "description": "", + "gc_content": 0.61185, + "length": 3138, + "md5": "3c25aa72c9af838f7c8d5c8ce97d377d", + "name": "NODE_16055_length_3138_cov_135.388258" + }, + "NODE_1612_length_27325_cov_135.700367": { + "contig_id": "NODE_1612_length_27325_cov_135.700367", + "description": "", + "gc_content": 0.39854, + "length": 27325, + "md5": "aabafb767921c5e96e8b00f6e2b4345b", + "name": "NODE_1612_length_27325_cov_135.700367" + }, + "NODE_1616_length_27244_cov_121.934312": { + "Ncount": 200, + "contig_id": "NODE_1616_length_27244_cov_121.934312", + "description": "", + "gc_content": 0.64752, + "length": 27244, + "md5": "911461d4144d0ab9ae767d56a94de59e", + "name": "NODE_1616_length_27244_cov_121.934312" + }, + "NODE_16221_length_3113_cov_28.085677": { + "contig_id": "NODE_16221_length_3113_cov_28.085677", + "description": "", + "gc_content": 0.62576, + "length": 3113, + "md5": "c4b2013c62e9fc6534460c9718bca619", + "name": "NODE_16221_length_3113_cov_28.085677" + }, + "NODE_162_length_138986_cov_562.017282": { + "contig_id": "NODE_162_length_138986_cov_562.017282", + "description": "", + "gc_content": 0.63634, + "length": 138986, + "md5": "015f6ee11a315bf999f4a84ddbde7fa8", + "name": "NODE_162_length_138986_cov_562.017282" + }, + "NODE_16331_length_3095_cov_11.212829": { + "contig_id": "NODE_16331_length_3095_cov_11.212829", + "description": "", + "gc_content": 0.41583, + "length": 3095, + "md5": "78eb56a040c11ae8caf9a9548576db5e", + "name": "NODE_16331_length_3095_cov_11.212829" + }, + "NODE_16335_length_3094_cov_72.553801": { + "contig_id": "NODE_16335_length_3094_cov_72.553801", + "description": "", + "gc_content": 0.33226, + "length": 3094, + "md5": "143c98511b76d6d6419fa0fb2f2832e4", + "name": "NODE_16335_length_3094_cov_72.553801" + }, + "NODE_16448_length_3075_cov_37.654636": { + "contig_id": "NODE_16448_length_3075_cov_37.654636", + "description": "", + "gc_content": 0.37138, + "length": 3075, + "md5": "6894148a315d24af188cb6643e9df606", + "name": "NODE_16448_length_3075_cov_37.654636" + }, + "NODE_1666_length_26483_cov_14.595089": { + "contig_id": "NODE_1666_length_26483_cov_14.595089", + "description": "", + "gc_content": 0.50115, + "length": 26483, + "md5": "76eebe3fd04428092579814a9168a8dc", + "name": "NODE_1666_length_26483_cov_14.595089" + }, + "NODE_1672_length_26401_cov_15.600812": { + "contig_id": "NODE_1672_length_26401_cov_15.600812", + "description": "", + "gc_content": 0.47044, + "length": 26401, + "md5": "8df6636a52f5fde15caab3a6e616bb79", + "name": "NODE_1672_length_26401_cov_15.600812" + }, + "NODE_16734_length_3031_cov_75.056452": { + "contig_id": "NODE_16734_length_3031_cov_75.056452", + "description": "", + "gc_content": 0.59188, + "length": 3031, + "md5": "6018a2867acbf0ddbc50a699f78e4886", + "name": "NODE_16734_length_3031_cov_75.056452" + }, + "NODE_16797_length_3021_cov_17.255226": { + "contig_id": "NODE_16797_length_3021_cov_17.255226", + "description": "", + "gc_content": 0.37471, + "length": 3021, + "md5": "b54e54238457f43ead6c172226ec7cfc", + "name": "NODE_16797_length_3021_cov_17.255226" + }, + "NODE_167_length_135226_cov_152.989332": { + "contig_id": "NODE_167_length_135226_cov_152.989332", + "description": "", + "gc_content": 0.50246, + "length": 135226, + "md5": "45cffd0eea654dd42766cbd2a8a6a981", + "name": "NODE_167_length_135226_cov_152.989332" + }, + "NODE_16828_length_3016_cov_26.027693": { + "contig_id": "NODE_16828_length_3016_cov_26.027693", + "description": "", + "gc_content": 0.70391, + "length": 3016, + "md5": "49ac1c64fce160a4527e92cff5b42c3b", + "name": "NODE_16828_length_3016_cov_26.027693" + }, + "NODE_168_length_135047_cov_592.623837": { + "contig_id": "NODE_168_length_135047_cov_592.623837", + "description": "", + "gc_content": 0.64262, + "length": 135047, + "md5": "ee8a9616c4fef949c7292fc549c94ee7", + "name": "NODE_168_length_135047_cov_592.623837" + }, + "NODE_16933_length_2997_cov_13.590755": { + "contig_id": "NODE_16933_length_2997_cov_13.590755", + "description": "", + "gc_content": 0.39606, + "length": 2997, + "md5": "a8da86f24402a1ed61ec417c189ebe2f", + "name": "NODE_16933_length_2997_cov_13.590755" + }, + "NODE_16966_length_2992_cov_35.441948": { + "contig_id": "NODE_16966_length_2992_cov_35.441948", + "description": "", + "gc_content": 0.3496, + "length": 2992, + "md5": "79d55aac9b2f1829ec4555960bb28ab5", + "name": "NODE_16966_length_2992_cov_35.441948" + }, + "NODE_169_length_134933_cov_29.104183": { + "Ncount": 400, + "contig_id": "NODE_169_length_134933_cov_29.104183", + "description": "", + "gc_content": 0.64061, + "length": 134933, + "md5": "22b0e921499d2c0448addf60693f8dd7", + "name": "NODE_169_length_134933_cov_29.104183" + }, + "NODE_16_length_403177_cov_139.594602": { + "Ncount": 100, + "contig_id": "NODE_16_length_403177_cov_139.594602", + "description": "", + "gc_content": 0.38806, + "length": 403177, + "md5": "ceb3bf60e86b3c90719cbd7308ea0298", + "name": "NODE_16_length_403177_cov_139.594602" + }, + "NODE_17021_length_2984_cov_95.954592": { + "contig_id": "NODE_17021_length_2984_cov_95.954592", + "description": "", + "gc_content": 0.63405, + "length": 2984, + "md5": "fc11bb5ee1568996f21fb4d0e45e66ef", + "name": "NODE_17021_length_2984_cov_95.954592" + }, + "NODE_1703_length_25886_cov_28.523092": { + "contig_id": "NODE_1703_length_25886_cov_28.523092", + "description": "", + "gc_content": 0.64348, + "length": 25886, + "md5": "cfc3733b79e21c9d6d9ffc52962a9015", + "name": "NODE_1703_length_25886_cov_28.523092" + }, + "NODE_17146_length_2964_cov_29.693022": { + "contig_id": "NODE_17146_length_2964_cov_29.693022", + "description": "", + "gc_content": 0.62787, + "length": 2964, + "md5": "e2cb0e73e74a04d33263869442971653", + "name": "NODE_17146_length_2964_cov_29.693022" + }, + "NODE_171_length_134096_cov_124.790064": { + "Ncount": 100, + "contig_id": "NODE_171_length_134096_cov_124.790064", + "description": "", + "gc_content": 0.65024, + "length": 134096, + "md5": "c571e5d6f0b9d2d4316a60c5464ee098", + "name": "NODE_171_length_134096_cov_124.790064" + }, + "NODE_17224_length_2953_cov_83.425811": { + "contig_id": "NODE_17224_length_2953_cov_83.425811", + "description": "", + "gc_content": 0.62479, + "length": 2953, + "md5": "5109d172224f155d2110c540e31d6816", + "name": "NODE_17224_length_2953_cov_83.425811" + }, + "NODE_172_length_133920_cov_545.394599": { + "Ncount": 10, + "contig_id": "NODE_172_length_133920_cov_545.394599", + "description": "", + "gc_content": 0.65467, + "length": 133920, + "md5": "b69665126fbe6913f699de774f46f5cd", + "name": "NODE_172_length_133920_cov_545.394599" + }, + "NODE_17409_length_2925_cov_31.701742": { + "contig_id": "NODE_17409_length_2925_cov_31.701742", + "description": "", + "gc_content": 0.54769, + "length": 2925, + "md5": "8d8ae4462f9fce031eb65c51b09cc96e", + "name": "NODE_17409_length_2925_cov_31.701742" + }, + "NODE_17551_length_2904_cov_18.234117": { + "contig_id": "NODE_17551_length_2904_cov_18.234117", + "description": "", + "gc_content": 0.6553, + "length": 2904, + "md5": "1fa51d1cca9ce0ab667f4827f26279f5", + "name": "NODE_17551_length_2904_cov_18.234117" + }, + "NODE_17576_length_2901_cov_13.493675": { + "contig_id": "NODE_17576_length_2901_cov_13.493675", + "description": "", + "gc_content": 0.63289, + "length": 2901, + "md5": "6f605ed8ba4538a7ff2aee1fecbffdbd", + "name": "NODE_17576_length_2901_cov_13.493675" + }, + "NODE_175_length_133245_cov_21.314190": { + "contig_id": "NODE_175_length_133245_cov_21.314190", + "description": "", + "gc_content": 0.40149, + "length": 133245, + "md5": "d5755a6e754e1b874df256d8d054a7c5", + "name": "NODE_175_length_133245_cov_21.314190" + }, + "NODE_1769_length_25081_cov_8.896028": { + "contig_id": "NODE_1769_length_25081_cov_8.896028", + "description": "", + "gc_content": 0.66987, + "length": 25081, + "md5": "5d1b21620912f0a87097f07c6ff81815", + "name": "NODE_1769_length_25081_cov_8.896028" + }, + "NODE_1782_length_24909_cov_9.287519": { + "contig_id": "NODE_1782_length_24909_cov_9.287519", + "description": "", + "gc_content": 0.66598, + "length": 24909, + "md5": "5305448eeeed7d65b6c587d3cf4a254b", + "name": "NODE_1782_length_24909_cov_9.287519" + }, + "NODE_179_length_132124_cov_17.804617": { + "Ncount": 100, + "contig_id": "NODE_179_length_132124_cov_17.804617", + "description": "", + "gc_content": 0.39578, + "length": 132124, + "md5": "cff1c20e94411403e9f0291abe283046", + "name": "NODE_179_length_132124_cov_17.804617" + }, + "NODE_180_length_132064_cov_15.023271": { + "contig_id": "NODE_180_length_132064_cov_15.023271", + "description": "", + "gc_content": 0.49057, + "length": 132064, + "md5": "8696ae2f8a5864a3cb4ca4c3725eb5d5", + "name": "NODE_180_length_132064_cov_15.023271" + }, + "NODE_1826_length_24411_cov_31.072015": { + "contig_id": "NODE_1826_length_24411_cov_31.072015", + "description": "", + "gc_content": 0.63643, + "length": 24411, + "md5": "7fe2656aecce7df3d726ac5a431b1aa6", + "name": "NODE_1826_length_24411_cov_31.072015" + }, + "NODE_18289_length_2805_cov_26.254182": { + "contig_id": "NODE_18289_length_2805_cov_26.254182", + "description": "", + "gc_content": 0.36435, + "length": 2805, + "md5": "60f11c78eae7eeb1f188a32af99b2346", + "name": "NODE_18289_length_2805_cov_26.254182" + }, + "NODE_1829_length_24326_cov_629.623996": { + "contig_id": "NODE_1829_length_24326_cov_629.623996", + "description": "", + "gc_content": 0.62785, + "length": 24326, + "md5": "c698febb9972e150cc733fe2487cd218", + "name": "NODE_1829_length_24326_cov_629.623996" + }, + "NODE_18309_length_2802_cov_30.676010": { + "contig_id": "NODE_18309_length_2802_cov_30.676010", + "description": "", + "gc_content": 0.63669, + "length": 2802, + "md5": "b76e4b31421b602acc5fe12d7c8c2452", + "name": "NODE_18309_length_2802_cov_30.676010" + }, + "NODE_18318_length_2800_cov_665.208379": { + "contig_id": "NODE_18318_length_2800_cov_665.208379", + "description": "", + "gc_content": 0.62036, + "length": 2800, + "md5": "58ffc5f80e8662c2d3810831ac642ac7", + "name": "NODE_18318_length_2800_cov_665.208379" + }, + "NODE_183_length_131550_cov_19.374767": { + "contig_id": "NODE_183_length_131550_cov_19.374767", + "description": "", + "gc_content": 0.40335, + "length": 131550, + "md5": "dcef32a05141fa4f2d2a4ee6a6cc4a88", + "name": "NODE_183_length_131550_cov_19.374767" + }, + "NODE_18433_length_2787_cov_5.058199": { + "contig_id": "NODE_18433_length_2787_cov_5.058199", + "description": "", + "gc_content": 0.63294, + "length": 2787, + "md5": "aba41fdbf19d72ff43686b16a4d25ccb", + "name": "NODE_18433_length_2787_cov_5.058199" + }, + "NODE_18438_length_2786_cov_16.510070": { + "contig_id": "NODE_18438_length_2786_cov_16.510070", + "description": "", + "gc_content": 0.61486, + "length": 2786, + "md5": "83f200bc36237e1d0b0a8532c6004512", + "name": "NODE_18438_length_2786_cov_16.510070" + }, + "NODE_1843_length_24171_cov_20.557514": { + "contig_id": "NODE_1843_length_24171_cov_20.557514", + "description": "", + "gc_content": 0.38356, + "length": 24171, + "md5": "f6f80a5c2ac30c82fd1405dbce732a92", + "name": "NODE_1843_length_24171_cov_20.557514" + }, + "NODE_184_length_130038_cov_125.959364": { + "Ncount": 400, + "contig_id": "NODE_184_length_130038_cov_125.959364", + "description": "", + "gc_content": 0.64347, + "length": 130038, + "md5": "00e79bce0de7b2b796ce6cf5dc01b3ff", + "name": "NODE_184_length_130038_cov_125.959364" + }, + "NODE_18510_length_2777_cov_21.845334": { + "contig_id": "NODE_18510_length_2777_cov_21.845334", + "description": "", + "gc_content": 0.35182, + "length": 2777, + "md5": "1cc72a7f8b83541e9815c3840fec5232", + "name": "NODE_18510_length_2777_cov_21.845334" + }, + "NODE_1857_length_24001_cov_84.576840": { + "contig_id": "NODE_1857_length_24001_cov_84.576840", + "description": "", + "gc_content": 0.62164, + "length": 24001, + "md5": "2d91c62a614c2d0cd44831508de69bfe", + "name": "NODE_1857_length_24001_cov_84.576840" + }, + "NODE_18587_length_2768_cov_96.088094": { + "contig_id": "NODE_18587_length_2768_cov_96.088094", + "description": "", + "gc_content": 0.36561, + "length": 2768, + "md5": "5be58c52a02b44c0c71abb05f45475e4", + "name": "NODE_18587_length_2768_cov_96.088094" + }, + "NODE_1858_length_23989_cov_26.531085": { + "contig_id": "NODE_1858_length_23989_cov_26.531085", + "description": "", + "gc_content": 0.39972, + "length": 23989, + "md5": "5b8a604f50de80ed284d878ce5b4e181", + "name": "NODE_1858_length_23989_cov_26.531085" + }, + "NODE_18609_length_2765_cov_32.278229": { + "contig_id": "NODE_18609_length_2765_cov_32.278229", + "description": "", + "gc_content": 0.62785, + "length": 2765, + "md5": "ab49549ff6e1329c4171357052c74c43", + "name": "NODE_18609_length_2765_cov_32.278229" + }, + "NODE_18629_length_2763_cov_507.609675": { + "contig_id": "NODE_18629_length_2763_cov_507.609675", + "description": "", + "gc_content": 0.5114, + "length": 2763, + "md5": "d2a2a2d935c8dac249d82201f72fb759", + "name": "NODE_18629_length_2763_cov_507.609675" + }, + "NODE_1865_length_23902_cov_30.896759": { + "contig_id": "NODE_1865_length_23902_cov_30.896759", + "description": "", + "gc_content": 0.64848, + "length": 23902, + "md5": "1e00be4c88836b250de41f593137dd5e", + "name": "NODE_1865_length_23902_cov_30.896759" + }, + "NODE_18693_length_2758_cov_69.943766": { + "contig_id": "NODE_18693_length_2758_cov_69.943766", + "description": "", + "gc_content": 0.63778, + "length": 2758, + "md5": "b6680ff851ef8e85c9eeb404278640f2", + "name": "NODE_18693_length_2758_cov_69.943766" + }, + "NODE_18694_length_2758_cov_23.451350": { + "contig_id": "NODE_18694_length_2758_cov_23.451350", + "description": "", + "gc_content": 0.40065, + "length": 2758, + "md5": "719e9fa1a61e8ddc3893fd04af42a080", + "name": "NODE_18694_length_2758_cov_23.451350" + }, + "NODE_186_length_129359_cov_636.942438": { + "Ncount": 10, + "contig_id": "NODE_186_length_129359_cov_636.942438", + "description": "", + "gc_content": 0.63884, + "length": 129359, + "md5": "1d8ac33e7d566aff4c85a24b88b4c828", + "name": "NODE_186_length_129359_cov_636.942438" + }, + "NODE_18703_length_2757_cov_16.057365": { + "contig_id": "NODE_18703_length_2757_cov_16.057365", + "description": "", + "gc_content": 0.54044, + "length": 2757, + "md5": "2583db852bb7303089371fc8683d12c1", + "name": "NODE_18703_length_2757_cov_16.057365" + }, + "NODE_1871_length_23793_cov_23.765608": { + "contig_id": "NODE_1871_length_23793_cov_23.765608", + "description": "", + "gc_content": 0.65187, + "length": 23793, + "md5": "68c2a9845ea8278cbdf4bdac8b401dd6", + "name": "NODE_1871_length_23793_cov_23.765608" + }, + "NODE_18736_length_2754_cov_38.499815": { + "contig_id": "NODE_18736_length_2754_cov_38.499815", + "description": "", + "gc_content": 0.45788, + "length": 2754, + "md5": "4562c308f0b42c21a4c0a6113649a5cb", + "name": "NODE_18736_length_2754_cov_38.499815" + }, + "NODE_18776_length_2748_cov_154.342369": { + "contig_id": "NODE_18776_length_2748_cov_154.342369", + "description": "", + "gc_content": 0.46507, + "length": 2748, + "md5": "62575b17742349cbcc5e71e44fb753f4", + "name": "NODE_18776_length_2748_cov_154.342369" + }, + "NODE_18819_length_2744_cov_202.729267": { + "contig_id": "NODE_18819_length_2744_cov_202.729267", + "description": "", + "gc_content": 0.48907, + "length": 2744, + "md5": "515262e1a98f05306aad6926752d9837", + "name": "NODE_18819_length_2744_cov_202.729267" + }, + "NODE_18872_length_2738_cov_31.739098": { + "contig_id": "NODE_18872_length_2738_cov_31.739098", + "description": "", + "gc_content": 0.41417, + "length": 2738, + "md5": "192f8d7e56781f93e19dae83969e474c", + "name": "NODE_18872_length_2738_cov_31.739098" + }, + "NODE_18880_length_2737_cov_77.130872": { + "contig_id": "NODE_18880_length_2737_cov_77.130872", + "description": "", + "gc_content": 0.63683, + "length": 2737, + "md5": "206c05e398aaab57aed8240045a508e6", + "name": "NODE_18880_length_2737_cov_77.130872" + }, + "NODE_18891_length_2736_cov_166.775457": { + "contig_id": "NODE_18891_length_2736_cov_166.775457", + "description": "", + "gc_content": 0.44627, + "length": 2736, + "md5": "244002f6f511a4650f25da1a993f9c97", + "name": "NODE_18891_length_2736_cov_166.775457" + }, + "NODE_188_length_128661_cov_32.004051": { + "contig_id": "NODE_188_length_128661_cov_32.004051", + "description": "", + "gc_content": 0.64933, + "length": 128661, + "md5": "5bc6173efe0494ee1db24df279297d06", + "name": "NODE_188_length_128661_cov_32.004051" + }, + "NODE_189_length_128656_cov_15.853695": { + "contig_id": "NODE_189_length_128656_cov_15.853695", + "description": "", + "gc_content": 0.40342, + "length": 128656, + "md5": "0e834476b9592f25735ae546bdb671f3", + "name": "NODE_189_length_128656_cov_15.853695" + }, + "NODE_1900_length_23477_cov_28.834899": { + "contig_id": "NODE_1900_length_23477_cov_28.834899", + "description": "", + "gc_content": 0.64591, + "length": 23477, + "md5": "be5e8125a55d835f272cc7940db7e3b7", + "name": "NODE_1900_length_23477_cov_28.834899" + }, + "NODE_19091_length_2712_cov_26.974784": { + "contig_id": "NODE_19091_length_2712_cov_26.974784", + "description": "", + "gc_content": 0.62942, + "length": 2712, + "md5": "61ac9b71305dd08cdbabc82faa8befe2", + "name": "NODE_19091_length_2712_cov_26.974784" + }, + "NODE_190_length_127978_cov_577.337062": { + "contig_id": "NODE_190_length_127978_cov_577.337062", + "description": "", + "gc_content": 0.64481, + "length": 127978, + "md5": "53ac6baba2ce190a3383154ae56ac35a", + "name": "NODE_190_length_127978_cov_577.337062" + }, + "NODE_19200_length_2698_cov_1616.952327": { + "contig_id": "NODE_19200_length_2698_cov_1616.952327", + "description": "", + "gc_content": 0.60489, + "length": 2698, + "md5": "4cfe440dc23002ac351a6903bd6a7dc6", + "name": "NODE_19200_length_2698_cov_1616.952327" + }, + "NODE_19201_length_2698_cov_37.102535": { + "contig_id": "NODE_19201_length_2698_cov_37.102535", + "description": "", + "gc_content": 0.52483, + "length": 2698, + "md5": "68c1c2d7848425a26230e3ddd3e52012", + "name": "NODE_19201_length_2698_cov_37.102535" + }, + "NODE_19324_length_2685_cov_33.368821": { + "contig_id": "NODE_19324_length_2685_cov_33.368821", + "description": "", + "gc_content": 0.67076, + "length": 2685, + "md5": "d266d7b863b9aba328c3f6e409466af8", + "name": "NODE_19324_length_2685_cov_33.368821" + }, + "NODE_19348_length_2681_cov_11.974486": { + "contig_id": "NODE_19348_length_2681_cov_11.974486", + "description": "", + "gc_content": 0.44536, + "length": 2681, + "md5": "3a7770cad001744a38f6996cab8d42c6", + "name": "NODE_19348_length_2681_cov_11.974486" + }, + "NODE_19373_length_2678_cov_77.566146": { + "contig_id": "NODE_19373_length_2678_cov_77.566146", + "description": "", + "gc_content": 0.36669, + "length": 2678, + "md5": "a59d842888c6b674997015294198dd40", + "name": "NODE_19373_length_2678_cov_77.566146" + }, + "NODE_19382_length_2677_cov_10.319603": { + "contig_id": "NODE_19382_length_2677_cov_10.319603", + "description": "", + "gc_content": 0.66418, + "length": 2677, + "md5": "9928293b9abecea7a2b4e802e42718d6", + "name": "NODE_19382_length_2677_cov_10.319603" + }, + "NODE_193_length_127741_cov_146.712341": { + "contig_id": "NODE_193_length_127741_cov_146.712341", + "description": "", + "gc_content": 0.50927, + "length": 127741, + "md5": "ed199b76924b270dffdcc44d56092121", + "name": "NODE_193_length_127741_cov_146.712341" + }, + "NODE_1940_length_22981_cov_32.568394": { + "contig_id": "NODE_1940_length_22981_cov_32.568394", + "description": "", + "gc_content": 0.65097, + "length": 22981, + "md5": "0b2594cfdd1bcfa7137f5837f53389bb", + "name": "NODE_1940_length_22981_cov_32.568394" + }, + "NODE_1951_length_22891_cov_14.763838": { + "contig_id": "NODE_1951_length_22891_cov_14.763838", + "description": "", + "gc_content": 0.49509, + "length": 22891, + "md5": "d473c15fe94c71705b8d26e03da96cc8", + "name": "NODE_1951_length_22891_cov_14.763838" + }, + "NODE_19526_length_2662_cov_120.446490": { + "contig_id": "NODE_19526_length_2662_cov_120.446490", + "description": "", + "gc_content": 0.35913, + "length": 2662, + "md5": "c1594e9b469a1ab43e16c1f182c7d561", + "name": "NODE_19526_length_2662_cov_120.446490" + }, + "NODE_196_length_126864_cov_144.754946": { + "contig_id": "NODE_196_length_126864_cov_144.754946", + "description": "", + "gc_content": 0.51792, + "length": 126864, + "md5": "46551e53b0747a42deb433fe03dd5934", + "name": "NODE_196_length_126864_cov_144.754946" + }, + "NODE_19805_length_2629_cov_9.435897": { + "contig_id": "NODE_19805_length_2629_cov_9.435897", + "description": "", + "gc_content": 0.68011, + "length": 2629, + "md5": "ad82d69cf37c82c895b769d1f490abab", + "name": "NODE_19805_length_2629_cov_9.435897" + }, + "NODE_1981_length_22658_cov_16.537053": { + "contig_id": "NODE_1981_length_22658_cov_16.537053", + "description": "", + "gc_content": 0.39505, + "length": 22658, + "md5": "b89620312938e8589c74baf45465f6c4", + "name": "NODE_1981_length_22658_cov_16.537053" + }, + "NODE_19866_length_2622_cov_1687.858979": { + "contig_id": "NODE_19866_length_2622_cov_1687.858979", + "description": "", + "gc_content": 0.61327, + "length": 2622, + "md5": "605a3e6072d9a0bacfc6c929542a2fcf", + "name": "NODE_19866_length_2622_cov_1687.858979" + }, + "NODE_1987_length_22624_cov_31.664008": { + "Ncount": 100, + "contig_id": "NODE_1987_length_22624_cov_31.664008", + "description": "", + "gc_content": 0.63287, + "length": 22624, + "md5": "501860bcda0d4fe79dbbd2588c2abbc8", + "name": "NODE_1987_length_22624_cov_31.664008" + }, + "NODE_19_length_369542_cov_149.371956": { + "Ncount": 100, + "contig_id": "NODE_19_length_369542_cov_149.371956", + "description": "", + "gc_content": 0.51124, + "length": 369542, + "md5": "bd22a6a7e58ffd0fc3efe246acae0ed4", + "name": "NODE_19_length_369542_cov_149.371956" + }, + "NODE_20166_length_2591_cov_106.585174": { + "contig_id": "NODE_20166_length_2591_cov_106.585174", + "description": "", + "gc_content": 0.3655, + "length": 2591, + "md5": "2129a2833e2e81153f76390a2f88839e", + "name": "NODE_20166_length_2591_cov_106.585174" + }, + "NODE_201_length_125344_cov_15.090998": { + "contig_id": "NODE_201_length_125344_cov_15.090998", + "description": "", + "gc_content": 0.49697, + "length": 125344, + "md5": "3406ee041afc61471eebad74ee51cb3e", + "name": "NODE_201_length_125344_cov_15.090998" + }, + "NODE_2021_length_22303_cov_19.278407": { + "contig_id": "NODE_2021_length_22303_cov_19.278407", + "description": "", + "gc_content": 0.39596, + "length": 22303, + "md5": "c8ae4a1d9a97d3d0f442046ec2f89585", + "name": "NODE_2021_length_22303_cov_19.278407" + }, + "NODE_2024_length_22288_cov_140.035488": { + "contig_id": "NODE_2024_length_22288_cov_140.035488", + "description": "", + "gc_content": 0.50538, + "length": 22288, + "md5": "68c558444f1ce83376f2f322bf9c6699", + "name": "NODE_2024_length_22288_cov_140.035488" + }, + "NODE_202_length_125251_cov_15.912897": { + "Ncount": 10, + "contig_id": "NODE_202_length_125251_cov_15.912897", + "description": "", + "gc_content": 0.40702, + "length": 125251, + "md5": "adebbb797c61a9b389e371de7e28732b", + "name": "NODE_202_length_125251_cov_15.912897" + }, + "NODE_20345_length_2571_cov_1645.415342": { + "contig_id": "NODE_20345_length_2571_cov_1645.415342", + "description": "", + "gc_content": 0.60249, + "length": 2571, + "md5": "5e46c63be8d486d2309dbf17ecaddd91", + "name": "NODE_20345_length_2571_cov_1645.415342" + }, + "NODE_203_length_125150_cov_14.346760": { + "contig_id": "NODE_203_length_125150_cov_14.346760", + "description": "", + "gc_content": 0.49377, + "length": 125150, + "md5": "59c792a90eca1a059567165ebd00c55d", + "name": "NODE_203_length_125150_cov_14.346760" + }, + "NODE_20414_length_2565_cov_5.152191": { + "contig_id": "NODE_20414_length_2565_cov_5.152191", + "description": "", + "gc_content": 0.68421, + "length": 2565, + "md5": "df6ad80bf9cc81487f80cc30fa68269e", + "name": "NODE_20414_length_2565_cov_5.152191" + }, + "NODE_2041_length_22180_cov_121.835028": { + "Ncount": 200, + "contig_id": "NODE_2041_length_22180_cov_121.835028", + "description": "", + "gc_content": 0.62516, + "length": 22180, + "md5": "4c25c30b52ef83d36eadd611d90669bf", + "name": "NODE_2041_length_22180_cov_121.835028" + }, + "NODE_20438_length_2562_cov_105.445552": { + "contig_id": "NODE_20438_length_2562_cov_105.445552", + "description": "", + "gc_content": 0.66198, + "length": 2562, + "md5": "6d470704b9d6750657873f9c3a660837", + "name": "NODE_20438_length_2562_cov_105.445552" + }, + "NODE_20454_length_2560_cov_53.267864": { + "contig_id": "NODE_20454_length_2560_cov_53.267864", + "description": "", + "gc_content": 0.61445, + "length": 2560, + "md5": "a2ab7058f11a2ea51121a1ff262a5999", + "name": "NODE_20454_length_2560_cov_53.267864" + }, + "NODE_20500_length_2554_cov_11.466186": { + "contig_id": "NODE_20500_length_2554_cov_11.466186", + "description": "", + "gc_content": 0.67933, + "length": 2554, + "md5": "52cc427e88f766af71b2d3f287186c5f", + "name": "NODE_20500_length_2554_cov_11.466186" + }, + "NODE_20572_length_2545_cov_18.901205": { + "contig_id": "NODE_20572_length_2545_cov_18.901205", + "description": "", + "gc_content": 0.57525, + "length": 2545, + "md5": "c207f9437c4ab42cbc5165b56649b998", + "name": "NODE_20572_length_2545_cov_18.901205" + }, + "NODE_205_length_123479_cov_17.235262": { + "Ncount": 10, + "contig_id": "NODE_205_length_123479_cov_17.235262", + "description": "", + "gc_content": 0.38904, + "length": 123479, + "md5": "f97400776c6c4755ba4ccb85ce2e4544", + "name": "NODE_205_length_123479_cov_17.235262" + }, + "NODE_20681_length_2532_cov_76.142915": { + "contig_id": "NODE_20681_length_2532_cov_76.142915", + "description": "", + "gc_content": 0.63784, + "length": 2532, + "md5": "95c716db1affcb2e3a2aa610a5cfefb4", + "name": "NODE_20681_length_2532_cov_76.142915" + }, + "NODE_20699_length_2530_cov_73.686061": { + "contig_id": "NODE_20699_length_2530_cov_73.686061", + "description": "", + "gc_content": 0.64664, + "length": 2530, + "md5": "8c38eff7220b08cba864095bd40f446a", + "name": "NODE_20699_length_2530_cov_73.686061" + }, + "NODE_206_length_122828_cov_148.107426": { + "contig_id": "NODE_206_length_122828_cov_148.107426", + "description": "", + "gc_content": 0.52381, + "length": 122828, + "md5": "e0a27675214b3494873ffc9eee603137", + "name": "NODE_206_length_122828_cov_148.107426" + }, + "NODE_20705_length_2529_cov_14.567906": { + "contig_id": "NODE_20705_length_2529_cov_14.567906", + "description": "", + "gc_content": 0.66667, + "length": 2529, + "md5": "5b9bff34e98a1e6eb09501ddf80ee54c", + "name": "NODE_20705_length_2529_cov_14.567906" + }, + "NODE_20862_length_2514_cov_123.695811": { + "Ncount": 100, + "contig_id": "NODE_20862_length_2514_cov_123.695811", + "description": "", + "gc_content": 0.58512, + "length": 2514, + "md5": "2ca721c8f711da887aa89fcf82cf6d7b", + "name": "NODE_20862_length_2514_cov_123.695811" + }, + "NODE_2094_length_21613_cov_129.374014": { + "contig_id": "NODE_2094_length_21613_cov_129.374014", + "description": "", + "gc_content": 0.64854, + "length": 21613, + "md5": "89109bd9d10379b63f1fb30f6cef7f03", + "name": "NODE_2094_length_21613_cov_129.374014" + }, + "NODE_209_length_121248_cov_15.258893": { + "contig_id": "NODE_209_length_121248_cov_15.258893", + "description": "", + "gc_content": 0.48802, + "length": 121248, + "md5": "afcac66a25a871b1b7c78b6185843ae0", + "name": "NODE_209_length_121248_cov_15.258893" + }, + "NODE_21060_length_2494_cov_20.006150": { + "contig_id": "NODE_21060_length_2494_cov_20.006150", + "description": "", + "gc_content": 0.38292, + "length": 2494, + "md5": "83a7540de3fbfa8abd5cf0b36c1f750a", + "name": "NODE_21060_length_2494_cov_20.006150" + }, + "NODE_210_length_121139_cov_143.656643": { + "contig_id": "NODE_210_length_121139_cov_143.656643", + "description": "", + "gc_content": 0.39, + "length": 121139, + "md5": "9015f02fa87821d35907fcb73959d83b", + "name": "NODE_210_length_121139_cov_143.656643" + }, + "NODE_21139_length_2486_cov_32.889346": { + "contig_id": "NODE_21139_length_2486_cov_32.889346", + "description": "", + "gc_content": 0.64079, + "length": 2486, + "md5": "59f8cdf233b4ac588f02926cb4147c78", + "name": "NODE_21139_length_2486_cov_32.889346" + }, + "NODE_2114_length_21380_cov_33.128581": { + "contig_id": "NODE_2114_length_21380_cov_33.128581", + "description": "", + "gc_content": 0.64471, + "length": 21380, + "md5": "f9a9233dbb4cfbc5b2dd6e5b282c0bd3", + "name": "NODE_2114_length_21380_cov_33.128581" + }, + "NODE_211_length_120816_cov_152.852071": { + "contig_id": "NODE_211_length_120816_cov_152.852071", + "description": "", + "gc_content": 0.51144, + "length": 120816, + "md5": "b7845b10b5b6a593894c48824af69ba0", + "name": "NODE_211_length_120816_cov_152.852071" + }, + "NODE_2123_length_21252_cov_123.174789": { + "contig_id": "NODE_2123_length_21252_cov_123.174789", + "description": "", + "gc_content": 0.64775, + "length": 21252, + "md5": "2f1fa4170ffc2ecefb1957b62050f437", + "name": "NODE_2123_length_21252_cov_123.174789" + }, + "NODE_212_length_120224_cov_9.172449": { + "Ncount": 100, + "contig_id": "NODE_212_length_120224_cov_9.172449", + "description": "", + "gc_content": 0.67688, + "length": 120224, + "md5": "659fcfb677fe8cb4718e51db2628a579", + "name": "NODE_212_length_120224_cov_9.172449" + }, + "NODE_21312_length_2470_cov_30.257557": { + "contig_id": "NODE_21312_length_2470_cov_30.257557", + "description": "", + "gc_content": 0.63482, + "length": 2470, + "md5": "22b84a8d0d216339640d885f18d2a849", + "name": "NODE_21312_length_2470_cov_30.257557" + }, + "NODE_2131_length_21181_cov_127.316908": { + "contig_id": "NODE_2131_length_21181_cov_127.316908", + "description": "", + "gc_content": 0.35064, + "length": 21181, + "md5": "14705763fbcd8729dc2d9824815f0a0b", + "name": "NODE_2131_length_21181_cov_127.316908" + }, + "NODE_21449_length_2458_cov_32.880150": { + "contig_id": "NODE_21449_length_2458_cov_32.880150", + "description": "", + "gc_content": 0.64605, + "length": 2458, + "md5": "6be20dbbac680377aa9121e70b1d2ac0", + "name": "NODE_21449_length_2458_cov_32.880150" + }, + "NODE_21472_length_2455_cov_21.988333": { + "contig_id": "NODE_21472_length_2455_cov_21.988333", + "description": "", + "gc_content": 0.41222, + "length": 2455, + "md5": "3465614b571ac2c5be8067c01f67e82b", + "name": "NODE_21472_length_2455_cov_21.988333" + }, + "NODE_214_length_120175_cov_136.545521": { + "contig_id": "NODE_214_length_120175_cov_136.545521", + "description": "", + "gc_content": 0.38629, + "length": 120175, + "md5": "411ea797a18191e19e3c94c958e78e55", + "name": "NODE_214_length_120175_cov_136.545521" + }, + "NODE_2154_length_21011_cov_29.233823": { + "contig_id": "NODE_2154_length_21011_cov_29.233823", + "description": "", + "gc_content": 0.64062, + "length": 21011, + "md5": "18f2660439051eebdc3ac9655de76ee5", + "name": "NODE_2154_length_21011_cov_29.233823" + }, + "NODE_21600_length_2445_cov_104.370711": { + "contig_id": "NODE_21600_length_2445_cov_104.370711", + "description": "", + "gc_content": 0.65153, + "length": 2445, + "md5": "73bc99563d2be72a7a5aff116ef2d920", + "name": "NODE_21600_length_2445_cov_104.370711" + }, + "NODE_21634_length_2441_cov_82.142498": { + "contig_id": "NODE_21634_length_2441_cov_82.142498", + "description": "", + "gc_content": 0.38058, + "length": 2441, + "md5": "87d25b1373d7fb26f93a50cd60676e3e", + "name": "NODE_21634_length_2441_cov_82.142498" + }, + "NODE_21643_length_2440_cov_30.818868": { + "contig_id": "NODE_21643_length_2440_cov_30.818868", + "description": "", + "gc_content": 0.66066, + "length": 2440, + "md5": "bcce3bcd01580314243e66cd42f17256", + "name": "NODE_21643_length_2440_cov_30.818868" + }, + "NODE_21644_length_2440_cov_13.709015": { + "contig_id": "NODE_21644_length_2440_cov_13.709015", + "description": "", + "gc_content": 0.63115, + "length": 2440, + "md5": "c457e1ea439ad6bacf7d3cbdf49b2d6d", + "name": "NODE_21644_length_2440_cov_13.709015" + }, + "NODE_2169_length_20871_cov_28.733907": { + "contig_id": "NODE_2169_length_20871_cov_28.733907", + "description": "", + "gc_content": 0.63888, + "length": 20871, + "md5": "1744ac49e576aab1295b71dce0e6f800", + "name": "NODE_2169_length_20871_cov_28.733907" + }, + "NODE_216_length_119933_cov_165.404553": { + "contig_id": "NODE_216_length_119933_cov_165.404553", + "description": "", + "gc_content": 0.48752, + "length": 119933, + "md5": "5ac2672a8816ff8447c0b9c524171bfd", + "name": "NODE_216_length_119933_cov_165.404553" + }, + "NODE_21726_length_2432_cov_41.725284": { + "contig_id": "NODE_21726_length_2432_cov_41.725284", + "description": "", + "gc_content": 0.65419, + "length": 2432, + "md5": "f453270a274667562d85ad62a4955f2c", + "name": "NODE_21726_length_2432_cov_41.725284" + }, + "NODE_218_length_119186_cov_14.999673": { + "contig_id": "NODE_218_length_119186_cov_14.999673", + "description": "", + "gc_content": 0.4915, + "length": 119186, + "md5": "56a1dd15ee50ae84dcd7042c301a8116", + "name": "NODE_218_length_119186_cov_14.999673" + }, + "NODE_21910_length_2415_cov_73.944915": { + "contig_id": "NODE_21910_length_2415_cov_73.944915", + "description": "", + "gc_content": 0.35942, + "length": 2415, + "md5": "98bce8ee509a2c60a7393fe53c4ca140", + "name": "NODE_21910_length_2415_cov_73.944915" + }, + "NODE_21957_length_2411_cov_14.854839": { + "contig_id": "NODE_21957_length_2411_cov_14.854839", + "description": "", + "gc_content": 0.34343, + "length": 2411, + "md5": "56bd42c9d44828566065c90183ec47fe", + "name": "NODE_21957_length_2411_cov_14.854839" + }, + "NODE_2197_length_20546_cov_26.578742": { + "contig_id": "NODE_2197_length_20546_cov_26.578742", + "description": "", + "gc_content": 0.39857, + "length": 20546, + "md5": "ba3c4cdf1dd42b8e256dad7518f333f9", + "name": "NODE_2197_length_20546_cov_26.578742" + }, + "NODE_21993_length_2408_cov_30.219720": { + "contig_id": "NODE_21993_length_2408_cov_30.219720", + "description": "", + "gc_content": 0.65864, + "length": 2408, + "md5": "3f71a80f3bef24eeccc004da3df712b2", + "name": "NODE_21993_length_2408_cov_30.219720" + }, + "NODE_21_length_350571_cov_150.902159": { + "contig_id": "NODE_21_length_350571_cov_150.902159", + "description": "", + "gc_content": 0.51789, + "length": 350571, + "md5": "a82c25ebdfb659918d2c6f4d86e59dc8", + "name": "NODE_21_length_350571_cov_150.902159" + }, + "NODE_22074_length_2401_cov_66.304774": { + "contig_id": "NODE_22074_length_2401_cov_66.304774", + "description": "", + "gc_content": 0.34694, + "length": 2401, + "md5": "85a2a5dd4046280f01b14460ff325876", + "name": "NODE_22074_length_2401_cov_66.304774" + }, + "NODE_22075_length_2401_cov_50.753623": { + "contig_id": "NODE_22075_length_2401_cov_50.753623", + "description": "", + "gc_content": 0.64307, + "length": 2401, + "md5": "6742d5284e6bf1fbddc1008e1b60be79", + "name": "NODE_22075_length_2401_cov_50.753623" + }, + "NODE_22087_length_2400_cov_1776.462260": { + "contig_id": "NODE_22087_length_2400_cov_1776.462260", + "description": "", + "gc_content": 0.62, + "length": 2400, + "md5": "937c474d331edc9334c610bfe3d57017", + "name": "NODE_22087_length_2400_cov_1776.462260" + }, + "NODE_22303_length_2382_cov_106.602922": { + "contig_id": "NODE_22303_length_2382_cov_106.602922", + "description": "", + "gc_content": 0.67086, + "length": 2382, + "md5": "0da2462ef325456f0ee6782a01149250", + "name": "NODE_22303_length_2382_cov_106.602922" + }, + "NODE_2234_length_20258_cov_16.150027": { + "contig_id": "NODE_2234_length_20258_cov_16.150027", + "description": "", + "gc_content": 0.40384, + "length": 20258, + "md5": "9ff8a5a4092db9fb47cfb7dc144020c5", + "name": "NODE_2234_length_20258_cov_16.150027" + }, + "NODE_22376_length_2376_cov_12.784576": { + "contig_id": "NODE_22376_length_2376_cov_12.784576", + "description": "", + "gc_content": 0.38552, + "length": 2376, + "md5": "f786c0ac3dc8d809b8697217699d685b", + "name": "NODE_22376_length_2376_cov_12.784576" + }, + "NODE_224_length_117235_cov_16.299206": { + "contig_id": "NODE_224_length_117235_cov_16.299206", + "description": "", + "gc_content": 0.47304, + "length": 117235, + "md5": "39d6c659f6c5c60a2045985334a230df", + "name": "NODE_224_length_117235_cov_16.299206" + }, + "NODE_22520_length_2364_cov_7.979645": { + "contig_id": "NODE_22520_length_2364_cov_7.979645", + "description": "", + "gc_content": 0.68316, + "length": 2364, + "md5": "b9746150c81b1e379000e8e621dad094", + "name": "NODE_22520_length_2364_cov_7.979645" + }, + "NODE_22528_length_2363_cov_65.252600": { + "contig_id": "NODE_22528_length_2363_cov_65.252600", + "description": "", + "gc_content": 0.34236, + "length": 2363, + "md5": "5e00324d39c89adb68d58a40898fd151", + "name": "NODE_22528_length_2363_cov_65.252600" + }, + "NODE_22547_length_2361_cov_13.968777": { + "contig_id": "NODE_22547_length_2361_cov_13.968777", + "description": "", + "gc_content": 0.42948, + "length": 2361, + "md5": "f6e8e4d5f708decaa96adc75bc6c99bf", + "name": "NODE_22547_length_2361_cov_13.968777" + }, + "NODE_225_length_117118_cov_133.096674": { + "contig_id": "NODE_225_length_117118_cov_133.096674", + "description": "", + "gc_content": 0.39295, + "length": 117118, + "md5": "67d76a3cba24f4f449dce1157b351905", + "name": "NODE_225_length_117118_cov_133.096674" + }, + "NODE_2264_length_20025_cov_28.201552": { + "contig_id": "NODE_2264_length_20025_cov_28.201552", + "description": "", + "gc_content": 0.6404, + "length": 20025, + "md5": "6fef3b910a0da045be5b20603a4d53d9", + "name": "NODE_2264_length_20025_cov_28.201552" + }, + "NODE_22724_length_2346_cov_71.536010": { + "contig_id": "NODE_22724_length_2346_cov_71.536010", + "description": "", + "gc_content": 0.315, + "length": 2346, + "md5": "61b8f8031fefd331e0e7ebca84326b3d", + "name": "NODE_22724_length_2346_cov_71.536010" + }, + "NODE_22820_length_2338_cov_35.425756": { + "contig_id": "NODE_22820_length_2338_cov_35.425756", + "description": "", + "gc_content": 0.62789, + "length": 2338, + "md5": "a08eeed2a4d43bee7017c213b92c3972", + "name": "NODE_22820_length_2338_cov_35.425756" + }, + "NODE_22834_length_2337_cov_9.636722": { + "contig_id": "NODE_22834_length_2337_cov_9.636722", + "description": "", + "gc_content": 0.33718, + "length": 2337, + "md5": "8958de94b2a7e2d2713c79cff2eeb885", + "name": "NODE_22834_length_2337_cov_9.636722" + }, + "NODE_2287_length_19856_cov_166.299328": { + "contig_id": "NODE_2287_length_19856_cov_166.299328", + "description": "", + "gc_content": 0.50453, + "length": 19856, + "md5": "48ffba25f1a615468ab132ee2470462c", + "name": "NODE_2287_length_19856_cov_166.299328" + }, + "NODE_2292_length_19808_cov_29.671949": { + "Ncount": 100, + "contig_id": "NODE_2292_length_19808_cov_29.671949", + "description": "", + "gc_content": 0.65554, + "length": 19808, + "md5": "957353668df85c10e3a65d77b8d56e75", + "name": "NODE_2292_length_19808_cov_29.671949" + }, + "NODE_2295_length_19773_cov_112.840298": { + "contig_id": "NODE_2295_length_19773_cov_112.840298", + "description": "", + "gc_content": 0.63061, + "length": 19773, + "md5": "b65b4d2eb44929666f1fb4643cb97640", + "name": "NODE_2295_length_19773_cov_112.840298" + }, + "NODE_22992_length_2325_cov_160.096035": { + "contig_id": "NODE_22992_length_2325_cov_160.096035", + "description": "", + "gc_content": 0.3372, + "length": 2325, + "md5": "7f6dca3ec38155b5bc0c3f2e80d12c09", + "name": "NODE_22992_length_2325_cov_160.096035" + }, + "NODE_22_length_339019_cov_146.931987": { + "contig_id": "NODE_22_length_339019_cov_146.931987", + "description": "", + "gc_content": 0.51248, + "length": 339019, + "md5": "a5f90d563884abaf53bc44da0662e13e", + "name": "NODE_22_length_339019_cov_146.931987" + }, + "NODE_2301_length_19716_cov_13.865826": { + "Ncount": 100, + "contig_id": "NODE_2301_length_19716_cov_13.865826", + "description": "", + "gc_content": 0.49046, + "length": 19716, + "md5": "d89b2e55295d84dd3a1f31f6b9b1eb55", + "name": "NODE_2301_length_19716_cov_13.865826" + }, + "NODE_23090_length_2317_cov_289.395225": { + "contig_id": "NODE_23090_length_2317_cov_289.395225", + "description": "", + "gc_content": 0.48425, + "length": 2317, + "md5": "cbe5404b7508e5e074e72e590b6a1938", + "name": "NODE_23090_length_2317_cov_289.395225" + }, + "NODE_2315_length_19592_cov_9.143471": { + "contig_id": "NODE_2315_length_19592_cov_9.143471", + "description": "", + "gc_content": 0.65557, + "length": 19592, + "md5": "1c3c871e7176e0ee211ad0d35f9919cd", + "name": "NODE_2315_length_19592_cov_9.143471" + }, + "NODE_23175_length_2310_cov_1695.530820": { + "contig_id": "NODE_23175_length_2310_cov_1695.530820", + "description": "", + "gc_content": 0.63896, + "length": 2310, + "md5": "a3b68a12468be3a27a3f42587b7efbc1", + "name": "NODE_23175_length_2310_cov_1695.530820" + }, + "NODE_2318_length_19558_cov_130.422499": { + "contig_id": "NODE_2318_length_19558_cov_130.422499", + "description": "", + "gc_content": 0.63202, + "length": 19558, + "md5": "42a58a77224bda18b7ca2ccc2db52797", + "name": "NODE_2318_length_19558_cov_130.422499" + }, + "NODE_231_length_114862_cov_18.500910": { + "contig_id": "NODE_231_length_114862_cov_18.500910", + "description": "", + "gc_content": 0.40602, + "length": 114862, + "md5": "fe49f5adba9f790ff834f0086ad98e95", + "name": "NODE_231_length_114862_cov_18.500910" + }, + "NODE_23221_length_2307_cov_14.066163": { + "contig_id": "NODE_23221_length_2307_cov_14.066163", + "description": "", + "gc_content": 0.53273, + "length": 2307, + "md5": "9e1150dd6f712a01ba94a58a3b228964", + "name": "NODE_23221_length_2307_cov_14.066163" + }, + "NODE_23248_length_2305_cov_91.095111": { + "contig_id": "NODE_23248_length_2305_cov_91.095111", + "description": "", + "gc_content": 0.59913, + "length": 2305, + "md5": "3bfff33175900e01734557f46a05d1b9", + "name": "NODE_23248_length_2305_cov_91.095111" + }, + "NODE_232_length_114784_cov_136.072231": { + "contig_id": "NODE_232_length_114784_cov_136.072231", + "description": "", + "gc_content": 0.3914, + "length": 114784, + "md5": "beaa271e402b426cb3f5e1ffada114b4", + "name": "NODE_232_length_114784_cov_136.072231" + }, + "NODE_23324_length_2299_cov_10.996435": { + "contig_id": "NODE_23324_length_2299_cov_10.996435", + "description": "", + "gc_content": 0.31448, + "length": 2299, + "md5": "0138db32c0a9ad6651b1c0bfb724891e", + "name": "NODE_23324_length_2299_cov_10.996435" + }, + "NODE_2334_length_19474_cov_9.178228": { + "contig_id": "NODE_2334_length_19474_cov_9.178228", + "description": "", + "gc_content": 0.6294, + "length": 19474, + "md5": "52b62a931384588e4fcd17660233f9b6", + "name": "NODE_2334_length_19474_cov_9.178228" + }, + "NODE_23356_length_2296_cov_143.576528": { + "contig_id": "NODE_23356_length_2296_cov_143.576528", + "description": "", + "gc_content": 0.46951, + "length": 2296, + "md5": "f34bf44aa94b05975dfc8b5c17687fca", + "name": "NODE_23356_length_2296_cov_143.576528" + }, + "NODE_234_length_113993_cov_16.541207": { + "contig_id": "NODE_234_length_113993_cov_16.541207", + "description": "", + "gc_content": 0.49412, + "length": 113993, + "md5": "220c5aecee23f3136734226adc84eb08", + "name": "NODE_234_length_113993_cov_16.541207" + }, + "NODE_23514_length_2284_cov_75.495738": { + "contig_id": "NODE_23514_length_2284_cov_75.495738", + "description": "", + "gc_content": 0.39842, + "length": 2284, + "md5": "7d5abc00d79764ccfd47f4f0f26a19a1", + "name": "NODE_23514_length_2284_cov_75.495738" + }, + "NODE_23515_length_2284_cov_62.226110": { + "contig_id": "NODE_23515_length_2284_cov_62.226110", + "description": "", + "gc_content": 0.63704, + "length": 2284, + "md5": "cc56baf1a6397fbc49d33f1de6ee5712", + "name": "NODE_23515_length_2284_cov_62.226110" + }, + "NODE_235_length_113953_cov_29.965513": { + "contig_id": "NODE_235_length_113953_cov_29.965513", + "description": "", + "gc_content": 0.64437, + "length": 113953, + "md5": "243d21bd84f0b0854ff2f7e0e0516804", + "name": "NODE_235_length_113953_cov_29.965513" + }, + "NODE_2362_length_19236_cov_138.785048": { + "contig_id": "NODE_2362_length_19236_cov_138.785048", + "description": "", + "gc_content": 0.38303, + "length": 19236, + "md5": "4779f3998170cabb9a672b85427b0afb", + "name": "NODE_2362_length_19236_cov_138.785048" + }, + "NODE_2381_length_19117_cov_15.609118": { + "contig_id": "NODE_2381_length_19117_cov_15.609118", + "description": "", + "gc_content": 0.32772, + "length": 19117, + "md5": "17f31271e3cb12a3da0bdcc5034493be", + "name": "NODE_2381_length_19117_cov_15.609118" + }, + "NODE_23978_length_2249_cov_78.826345": { + "contig_id": "NODE_23978_length_2249_cov_78.826345", + "description": "", + "gc_content": 0.65273, + "length": 2249, + "md5": "82f0cd7b06abad54b5ba00b8804f9ce8", + "name": "NODE_23978_length_2249_cov_78.826345" + }, + "NODE_2398_length_19024_cov_30.808213": { + "Ncount": 200, + "contig_id": "NODE_2398_length_19024_cov_30.808213", + "description": "", + "gc_content": 0.63877, + "length": 19024, + "md5": "86dc98f081bf79fe6b17dd01d9b988fb", + "name": "NODE_2398_length_19024_cov_30.808213" + }, + "NODE_239_length_113581_cov_8.696986": { + "Ncount": 100, + "contig_id": "NODE_239_length_113581_cov_8.696986", + "description": "", + "gc_content": 0.65862, + "length": 113581, + "md5": "5386cdba4c4f9b403437712a85424c3f", + "name": "NODE_239_length_113581_cov_8.696986" + }, + "NODE_2401_length_18970_cov_31.233518": { + "contig_id": "NODE_2401_length_18970_cov_31.233518", + "description": "", + "gc_content": 0.64475, + "length": 18970, + "md5": "68cf29ee2b1e2ebb95733a88c10ef5da", + "name": "NODE_2401_length_18970_cov_31.233518" + }, + "NODE_24072_length_2243_cov_112.176417": { + "contig_id": "NODE_24072_length_2243_cov_112.176417", + "description": "", + "gc_content": 0.63085, + "length": 2243, + "md5": "2cc04e8d8b141a1dea3b0394e74e2d23", + "name": "NODE_24072_length_2243_cov_112.176417" + }, + "NODE_24139_length_2237_cov_94.315307": { + "contig_id": "NODE_24139_length_2237_cov_94.315307", + "description": "", + "gc_content": 0.36209, + "length": 2237, + "md5": "c7c8738f5719a9951b208a1de8da1c81", + "name": "NODE_24139_length_2237_cov_94.315307" + }, + "NODE_24199_length_2233_cov_76.191460": { + "contig_id": "NODE_24199_length_2233_cov_76.191460", + "description": "", + "gc_content": 0.34707, + "length": 2233, + "md5": "ef476a362496d2049b339cfbbf5d2253", + "name": "NODE_24199_length_2233_cov_76.191460" + }, + "NODE_24200_length_2233_cov_33.382002": { + "contig_id": "NODE_24200_length_2233_cov_33.382002", + "description": "", + "gc_content": 0.33766, + "length": 2233, + "md5": "a16045af8ea03a1e13e818814a6670b6", + "name": "NODE_24200_length_2233_cov_33.382002" + }, + "NODE_24211_length_2232_cov_11.887919": { + "contig_id": "NODE_24211_length_2232_cov_11.887919", + "description": "", + "gc_content": 0.66846, + "length": 2232, + "md5": "1b2aa681149bf79d1076d78b9aea402f", + "name": "NODE_24211_length_2232_cov_11.887919" + }, + "NODE_24270_length_2227_cov_41.495856": { + "contig_id": "NODE_24270_length_2227_cov_41.495856", + "description": "", + "gc_content": 0.61608, + "length": 2227, + "md5": "66956f568246eacc3cfe5ffe55aca56c", + "name": "NODE_24270_length_2227_cov_41.495856" + }, + "NODE_24411_length_2215_cov_15.628704": { + "contig_id": "NODE_24411_length_2215_cov_15.628704", + "description": "", + "gc_content": 0.38781, + "length": 2215, + "md5": "a73672703ce14e8f83c594fcfaf227e0", + "name": "NODE_24411_length_2215_cov_15.628704" + }, + "NODE_24505_length_2207_cov_58.144517": { + "contig_id": "NODE_24505_length_2207_cov_58.144517", + "description": "", + "gc_content": 0.66153, + "length": 2207, + "md5": "3998676374c20e64a32b954339fbf50b", + "name": "NODE_24505_length_2207_cov_58.144517" + }, + "NODE_245_length_112932_cov_135.593540": { + "contig_id": "NODE_245_length_112932_cov_135.593540", + "description": "", + "gc_content": 0.38977, + "length": 112932, + "md5": "58096bee56970104e3398a7516ccfd0f", + "name": "NODE_245_length_112932_cov_135.593540" + }, + "NODE_246_length_112673_cov_113.474240": { + "Ncount": 200, + "contig_id": "NODE_246_length_112673_cov_113.474240", + "description": "", + "gc_content": 0.6584, + "length": 112673, + "md5": "84318c56bda192f6d772e1db54441254", + "name": "NODE_246_length_112673_cov_113.474240" + }, + "NODE_24739_length_2190_cov_167.254801": { + "contig_id": "NODE_24739_length_2190_cov_167.254801", + "description": "", + "gc_content": 0.42374, + "length": 2190, + "md5": "81ae4ce7ac4c10dab4661595a7c613af", + "name": "NODE_24739_length_2190_cov_167.254801" + }, + "NODE_24766_length_2188_cov_34.692452": { + "contig_id": "NODE_24766_length_2188_cov_34.692452", + "description": "", + "gc_content": 0.67962, + "length": 2188, + "md5": "ba910974081ca4e210ecf71e4e295331", + "name": "NODE_24766_length_2188_cov_34.692452" + }, + "NODE_247_length_112285_cov_124.510683": { + "Ncount": 400, + "contig_id": "NODE_247_length_112285_cov_124.510683", + "description": "", + "gc_content": 0.64819, + "length": 112285, + "md5": "fa192fbbc749e6b669fcc98b9f386546", + "name": "NODE_247_length_112285_cov_124.510683" + }, + "NODE_24834_length_2183_cov_47.104323": { + "contig_id": "NODE_24834_length_2183_cov_47.104323", + "description": "", + "gc_content": 0.60834, + "length": 2183, + "md5": "48946ff4d9e1a76c32876d0bb74ac5d2", + "name": "NODE_24834_length_2183_cov_47.104323" + }, + "NODE_24835_length_2183_cov_20.057331": { + "contig_id": "NODE_24835_length_2183_cov_20.057331", + "description": "", + "gc_content": 0.33761, + "length": 2183, + "md5": "a593e4f325bf687c45ad50e1deb2b227", + "name": "NODE_24835_length_2183_cov_20.057331" + }, + "NODE_24869_length_2180_cov_150.608471": { + "contig_id": "NODE_24869_length_2180_cov_150.608471", + "description": "", + "gc_content": 0.36468, + "length": 2180, + "md5": "e48a8f2c07515e00fba4479ed6707202", + "name": "NODE_24869_length_2180_cov_150.608471" + }, + "NODE_248_length_112192_cov_149.328990": { + "contig_id": "NODE_248_length_112192_cov_149.328990", + "description": "", + "gc_content": 0.52424, + "length": 112192, + "md5": "f906ebe4a1ba078cabeb9996aad94388", + "name": "NODE_248_length_112192_cov_149.328990" + }, + "NODE_24915_length_2176_cov_24.019802": { + "contig_id": "NODE_24915_length_2176_cov_24.019802", + "description": "", + "gc_content": 0.63649, + "length": 2176, + "md5": "7ccf17a2c0cfb52b881a56e134c6bf5a", + "name": "NODE_24915_length_2176_cov_24.019802" + }, + "NODE_24944_length_2174_cov_26.401605": { + "contig_id": "NODE_24944_length_2174_cov_26.401605", + "description": "", + "gc_content": 0.55014, + "length": 2174, + "md5": "ad2fe03c3724a9ccb50f887ef4aed53d", + "name": "NODE_24944_length_2174_cov_26.401605" + }, + "NODE_24963_length_2173_cov_9.739849": { + "contig_id": "NODE_24963_length_2173_cov_9.739849", + "description": "", + "gc_content": 0.34929, + "length": 2173, + "md5": "bec9282c706a9a5f8d30d8db08f3dba6", + "name": "NODE_24963_length_2173_cov_9.739849" + }, + "NODE_25003_length_2170_cov_29.317258": { + "contig_id": "NODE_25003_length_2170_cov_29.317258", + "description": "", + "gc_content": 0.67235, + "length": 2170, + "md5": "12e2bc97ca5dc40943c9daaa4f1c99e5", + "name": "NODE_25003_length_2170_cov_29.317258" + }, + "NODE_25066_length_2165_cov_35.720853": { + "contig_id": "NODE_25066_length_2165_cov_35.720853", + "description": "", + "gc_content": 0.37783, + "length": 2165, + "md5": "aa3dde4ae07b0c7e3cb0682eb6ef602e", + "name": "NODE_25066_length_2165_cov_35.720853" + }, + "NODE_25122_length_2161_cov_26.171890": { + "contig_id": "NODE_25122_length_2161_cov_26.171890", + "description": "", + "gc_content": 0.61407, + "length": 2161, + "md5": "db5027cb2fe1b4c70c07215f91e54afe", + "name": "NODE_25122_length_2161_cov_26.171890" + }, + "NODE_25123_length_2161_cov_25.907407": { + "contig_id": "NODE_25123_length_2161_cov_25.907407", + "description": "", + "gc_content": 0.57566, + "length": 2161, + "md5": "29fa12a850c6f5db4fbfee2adbb7a1ea", + "name": "NODE_25123_length_2161_cov_25.907407" + }, + "NODE_25179_length_2156_cov_1710.533555": { + "contig_id": "NODE_25179_length_2156_cov_1710.533555", + "description": "", + "gc_content": 0.61224, + "length": 2156, + "md5": "0bf28f05a0da05ef6a28dc2d7bec0bbc", + "name": "NODE_25179_length_2156_cov_1710.533555" + }, + "NODE_25270_length_2150_cov_47.964200": { + "contig_id": "NODE_25270_length_2150_cov_47.964200", + "description": "", + "gc_content": 0.6707, + "length": 2150, + "md5": "b7661ae5ac96eccf82fadb312062b7cc", + "name": "NODE_25270_length_2150_cov_47.964200" + }, + "NODE_25271_length_2150_cov_8.526014": { + "contig_id": "NODE_25271_length_2150_cov_8.526014", + "description": "", + "gc_content": 0.69535, + "length": 2150, + "md5": "9995590ff62f8c4dba51c05b12d40d66", + "name": "NODE_25271_length_2150_cov_8.526014" + }, + "NODE_25353_length_2144_cov_13.205840": { + "contig_id": "NODE_25353_length_2144_cov_13.205840", + "description": "", + "gc_content": 0.39879, + "length": 2144, + "md5": "e3f56741a8afb204925cfbc3841b39f1", + "name": "NODE_25353_length_2144_cov_13.205840" + }, + "NODE_25381_length_2142_cov_9.712027": { + "contig_id": "NODE_25381_length_2142_cov_9.712027", + "description": "", + "gc_content": 0.36648, + "length": 2142, + "md5": "657d8e72c847e7a4d0aa6816e3027df3", + "name": "NODE_25381_length_2142_cov_9.712027" + }, + "NODE_253_length_110929_cov_15.534210": { + "contig_id": "NODE_253_length_110929_cov_15.534210", + "description": "", + "gc_content": 0.49392, + "length": 110929, + "md5": "bfe1171b672ff3dae59641041ff03ea0", + "name": "NODE_253_length_110929_cov_15.534210" + }, + "NODE_25409_length_2140_cov_32.541007": { + "contig_id": "NODE_25409_length_2140_cov_32.541007", + "description": "", + "gc_content": 0.3486, + "length": 2140, + "md5": "054e81e165834dd625c62d3c032bd5dc", + "name": "NODE_25409_length_2140_cov_32.541007" + }, + "NODE_25480_length_2135_cov_136.434135": { + "contig_id": "NODE_25480_length_2135_cov_136.434135", + "description": "", + "gc_content": 0.363, + "length": 2135, + "md5": "b73be3d91984907b77b58aece0860960", + "name": "NODE_25480_length_2135_cov_136.434135" + }, + "NODE_25508_length_2133_cov_10.584697": { + "contig_id": "NODE_25508_length_2133_cov_10.584697", + "description": "", + "gc_content": 0.35677, + "length": 2133, + "md5": "ade30762cb38dc503e856fb0b257020a", + "name": "NODE_25508_length_2133_cov_10.584697" + }, + "NODE_2554_length_17929_cov_9.254392": { + "contig_id": "NODE_2554_length_17929_cov_9.254392", + "description": "", + "gc_content": 0.67533, + "length": 17929, + "md5": "4cb4b72c74615a784c74ab1fcdba80f2", + "name": "NODE_2554_length_17929_cov_9.254392" + }, + "NODE_2563_length_17875_cov_28.742031": { + "contig_id": "NODE_2563_length_17875_cov_28.742031", + "description": "", + "gc_content": 0.61622, + "length": 17875, + "md5": "d75643d677dbbc821db8cf4f0f27555d", + "name": "NODE_2563_length_17875_cov_28.742031" + }, + "NODE_25653_length_2123_cov_30.176983": { + "contig_id": "NODE_25653_length_2123_cov_30.176983", + "description": "", + "gc_content": 0.41686, + "length": 2123, + "md5": "0739adf28f508bf55e2277663ee5c945", + "name": "NODE_25653_length_2123_cov_30.176983" + }, + "NODE_2570_length_17838_cov_29.131586": { + "Ncount": 100, + "contig_id": "NODE_2570_length_17838_cov_29.131586", + "description": "", + "gc_content": 0.62731, + "length": 17838, + "md5": "b0457a2f91592b950558ec6e5b51cadb", + "name": "NODE_2570_length_17838_cov_29.131586" + }, + "NODE_257_length_110767_cov_108.798847": { + "Ncount": 200, + "contig_id": "NODE_257_length_110767_cov_108.798847", + "description": "", + "gc_content": 0.6538, + "length": 110767, + "md5": "28dc43ae1a691928a729312ba874981e", + "name": "NODE_257_length_110767_cov_108.798847" + }, + "NODE_258_length_110174_cov_21.555608": { + "contig_id": "NODE_258_length_110174_cov_21.555608", + "description": "", + "gc_content": 0.39666, + "length": 110174, + "md5": "53d69f38a72fd960d6cb2a9ad1e8b78d", + "name": "NODE_258_length_110174_cov_21.555608" + }, + "NODE_25919_length_2103_cov_195.544922": { + "contig_id": "NODE_25919_length_2103_cov_195.544922", + "description": "", + "gc_content": 0.43747, + "length": 2103, + "md5": "f2b3e678660c2e41081e440387c68a7e", + "name": "NODE_25919_length_2103_cov_195.544922" + }, + "NODE_25_length_329311_cov_157.847954": { + "contig_id": "NODE_25_length_329311_cov_157.847954", + "description": "", + "gc_content": 0.50993, + "length": 329311, + "md5": "8ab621fb1b64b8c5afd3fc0b62bcf9b9", + "name": "NODE_25_length_329311_cov_157.847954" + }, + "NODE_26074_length_2092_cov_10.183603": { + "contig_id": "NODE_26074_length_2092_cov_10.183603", + "description": "", + "gc_content": 0.63671, + "length": 2092, + "md5": "dd97788eb9aaa0e54c147c1cbfee6263", + "name": "NODE_26074_length_2092_cov_10.183603" + }, + "NODE_2610_length_17619_cov_33.192895": { + "contig_id": "NODE_2610_length_17619_cov_33.192895", + "description": "", + "gc_content": 0.64765, + "length": 17619, + "md5": "f7078ab66ae61c70b65fc4f44fb0e315", + "name": "NODE_2610_length_17619_cov_33.192895" + }, + "NODE_26121_length_2089_cov_28.469027": { + "contig_id": "NODE_26121_length_2089_cov_28.469027", + "description": "", + "gc_content": 0.64241, + "length": 2089, + "md5": "b27acced2eaa70133a20c4100e22efa7", + "name": "NODE_26121_length_2089_cov_28.469027" + }, + "NODE_2616_length_17587_cov_35.150240": { + "contig_id": "NODE_2616_length_17587_cov_35.150240", + "description": "", + "gc_content": 0.65241, + "length": 17587, + "md5": "5a6d6a5782b1b47dca7b5a27dce0f4fc", + "name": "NODE_2616_length_17587_cov_35.150240" + }, + "NODE_26193_length_2084_cov_6.963529": { + "contig_id": "NODE_26193_length_2084_cov_6.963529", + "description": "", + "gc_content": 0.67131, + "length": 2084, + "md5": "fff7dedd3e4903864236fda81cf4a501", + "name": "NODE_26193_length_2084_cov_6.963529" + }, + "NODE_26234_length_2081_cov_75.734452": { + "contig_id": "NODE_26234_length_2081_cov_75.734452", + "description": "", + "gc_content": 0.66074, + "length": 2081, + "md5": "4bcfdd89c442b1ca204e58bf3cbd1b2d", + "name": "NODE_26234_length_2081_cov_75.734452" + }, + "NODE_26235_length_2081_cov_9.362784": { + "contig_id": "NODE_26235_length_2081_cov_9.362784", + "description": "", + "gc_content": 0.68861, + "length": 2081, + "md5": "1df4129150903f511fe77253ff2252f8", + "name": "NODE_26235_length_2081_cov_9.362784" + }, + "NODE_26262_length_2079_cov_30.441700": { + "contig_id": "NODE_26262_length_2079_cov_30.441700", + "description": "", + "gc_content": 0.37085, + "length": 2079, + "md5": "0466b6ebb37ed6365f07f642a538c3a0", + "name": "NODE_26262_length_2079_cov_30.441700" + }, + "NODE_262_length_108194_cov_16.156253": { + "contig_id": "NODE_262_length_108194_cov_16.156253", + "description": "", + "gc_content": 0.48584, + "length": 108194, + "md5": "b04e905c45206e7018449280e97f00d0", + "name": "NODE_262_length_108194_cov_16.156253" + }, + "NODE_2645_length_17412_cov_15.837760": { + "contig_id": "NODE_2645_length_17412_cov_15.837760", + "description": "", + "gc_content": 0.38927, + "length": 17412, + "md5": "a9346e253b4d36f8f2ded4e177e841e9", + "name": "NODE_2645_length_17412_cov_15.837760" + }, + "NODE_26517_length_2063_cov_37.494522": { + "contig_id": "NODE_26517_length_2063_cov_37.494522", + "description": "", + "gc_content": 0.51188, + "length": 2063, + "md5": "894ce58ca1942f59745f6596439f8303", + "name": "NODE_26517_length_2063_cov_37.494522" + }, + "NODE_26650_length_2052_cov_46.327491": { + "contig_id": "NODE_26650_length_2052_cov_46.327491", + "description": "", + "gc_content": 0.59113, + "length": 2052, + "md5": "7a2689f5404b735cf9afe6450afa28fb", + "name": "NODE_26650_length_2052_cov_46.327491" + }, + "NODE_2667_length_17280_cov_134.065022": { + "contig_id": "NODE_2667_length_17280_cov_134.065022", + "description": "", + "gc_content": 0.40723, + "length": 17280, + "md5": "c9c4ab0df382a4ab1b27c5d95e6da996", + "name": "NODE_2667_length_17280_cov_134.065022" + }, + "NODE_26714_length_2048_cov_153.347717": { + "contig_id": "NODE_26714_length_2048_cov_153.347717", + "description": "", + "gc_content": 0.62939, + "length": 2048, + "md5": "f12883fca60112359c8881773e4b0d56", + "name": "NODE_26714_length_2048_cov_153.347717" + }, + "NODE_26735_length_2047_cov_239.696285": { + "contig_id": "NODE_26735_length_2047_cov_239.696285", + "description": "", + "gc_content": 0.36541, + "length": 2047, + "md5": "7b26dde7a79cacd5196f42a8a9fdf90a", + "name": "NODE_26735_length_2047_cov_239.696285" + }, + "NODE_26838_length_2041_cov_8.271400": { + "contig_id": "NODE_26838_length_2041_cov_8.271400", + "description": "", + "gc_content": 0.6732, + "length": 2041, + "md5": "e22dd77744241142937b058596c55a65", + "name": "NODE_26838_length_2041_cov_8.271400" + }, + "NODE_2684_length_17094_cov_120.311873": { + "contig_id": "NODE_2684_length_17094_cov_120.311873", + "description": "", + "gc_content": 0.62946, + "length": 17094, + "md5": "db9798a84da0b64b07f1a4f7573a7b41", + "name": "NODE_2684_length_17094_cov_120.311873" + }, + "NODE_26852_length_2040_cov_127.266499": { + "contig_id": "NODE_26852_length_2040_cov_127.266499", + "description": "", + "gc_content": 0.60588, + "length": 2040, + "md5": "984e9c8fa7b845c36a54294e37901440", + "name": "NODE_26852_length_2040_cov_127.266499" + }, + "NODE_268_length_106948_cov_135.103870": { + "contig_id": "NODE_268_length_106948_cov_135.103870", + "description": "", + "gc_content": 0.38598, + "length": 106948, + "md5": "81597a8cd02c2ef526d96cba6e5fa350", + "name": "NODE_268_length_106948_cov_135.103870" + }, + "NODE_2695_length_17036_cov_31.833343": { + "contig_id": "NODE_2695_length_17036_cov_31.833343", + "description": "", + "gc_content": 0.65068, + "length": 17036, + "md5": "3a400801559180c74fd38827f7c6a31d", + "name": "NODE_2695_length_17036_cov_31.833343" + }, + "NODE_26997_length_2031_cov_34.196862": { + "contig_id": "NODE_26997_length_2031_cov_34.196862", + "description": "", + "gc_content": 0.59183, + "length": 2031, + "md5": "e4a053f96ad0a2cb5d16a2e960061a76", + "name": "NODE_26997_length_2031_cov_34.196862" + }, + "NODE_27019_length_2030_cov_52.502785": { + "contig_id": "NODE_27019_length_2030_cov_52.502785", + "description": "", + "gc_content": 0.59606, + "length": 2030, + "md5": "63f685427d60bbbd6d91f023a51dd1ca", + "name": "NODE_27019_length_2030_cov_52.502785" + }, + "NODE_270_length_106246_cov_8.286343": { + "Ncount": 10, + "contig_id": "NODE_270_length_106246_cov_8.286343", + "description": "", + "gc_content": 0.66306, + "length": 106246, + "md5": "64712ef503a0570b95307ac1b6646827", + "name": "NODE_270_length_106246_cov_8.286343" + }, + "NODE_2720_length_16865_cov_9.602201": { + "contig_id": "NODE_2720_length_16865_cov_9.602201", + "description": "", + "gc_content": 0.68337, + "length": 16865, + "md5": "11d281763bdeeee34757b762bd67a912", + "name": "NODE_2720_length_16865_cov_9.602201" + }, + "NODE_2730_length_16798_cov_16.804635": { + "contig_id": "NODE_2730_length_16798_cov_16.804635", + "description": "", + "gc_content": 0.40654, + "length": 16798, + "md5": "6aa4e89f03d367dd7e1dda894dc7ac63", + "name": "NODE_2730_length_16798_cov_16.804635" + }, + "NODE_27328_length_2011_cov_34.305726": { + "contig_id": "NODE_27328_length_2011_cov_34.305726", + "description": "", + "gc_content": 0.5629, + "length": 2011, + "md5": "1fb6788d1c7cb59bd698af9560238bb6", + "name": "NODE_27328_length_2011_cov_34.305726" + }, + "NODE_2732_length_16784_cov_17.384602": { + "contig_id": "NODE_2732_length_16784_cov_17.384602", + "description": "", + "gc_content": 0.38978, + "length": 16784, + "md5": "a8ed880f98c537783c01263ea8b99717", + "name": "NODE_2732_length_16784_cov_17.384602" + }, + "NODE_2763_length_16582_cov_561.773220": { + "contig_id": "NODE_2763_length_16582_cov_561.773220", + "description": "", + "gc_content": 0.62079, + "length": 16582, + "md5": "715c6c90c63d7a65087fceaea6d69bf0", + "name": "NODE_2763_length_16582_cov_561.773220" + }, + "NODE_2795_length_16359_cov_205.114082": { + "contig_id": "NODE_2795_length_16359_cov_205.114082", + "description": "", + "gc_content": 0.47289, + "length": 16359, + "md5": "5f3eb2ef917e389be7e4b0784f216807", + "name": "NODE_2795_length_16359_cov_205.114082" + }, + "NODE_2796_length_16358_cov_9.219898": { + "contig_id": "NODE_2796_length_16358_cov_9.219898", + "description": "", + "gc_content": 0.67062, + "length": 16358, + "md5": "88531655c1d1e9de97609d08f1a034d4", + "name": "NODE_2796_length_16358_cov_9.219898" + }, + "NODE_2813_length_16255_cov_8.959444": { + "contig_id": "NODE_2813_length_16255_cov_8.959444", + "description": "", + "gc_content": 0.66859, + "length": 16255, + "md5": "fdf0879ee3c08ed5c8d139302326973b", + "name": "NODE_2813_length_16255_cov_8.959444" + }, + "NODE_281_length_103420_cov_16.192754": { + "Ncount": 100, + "contig_id": "NODE_281_length_103420_cov_16.192754", + "description": "", + "gc_content": 0.39591, + "length": 103420, + "md5": "deb89ba792e69f4d7c0de7f3670530a9", + "name": "NODE_281_length_103420_cov_16.192754" + }, + "NODE_2829_length_16162_cov_28.843050": { + "contig_id": "NODE_2829_length_16162_cov_28.843050", + "description": "", + "gc_content": 0.61125, + "length": 16162, + "md5": "45d47d08c12d7ad557726814c86fab9a", + "name": "NODE_2829_length_16162_cov_28.843050" + }, + "NODE_283_length_102485_cov_9.102782": { + "contig_id": "NODE_283_length_102485_cov_9.102782", + "description": "", + "gc_content": 0.67888, + "length": 102485, + "md5": "6c540d4af3cb558f345cc8d7ef79edb8", + "name": "NODE_283_length_102485_cov_9.102782" + }, + "NODE_2851_length_16039_cov_113.872685": { + "contig_id": "NODE_2851_length_16039_cov_113.872685", + "description": "", + "gc_content": 0.37764, + "length": 16039, + "md5": "9ea77b32485ebdc7dda975c5a5508a7a", + "name": "NODE_2851_length_16039_cov_113.872685" + }, + "NODE_28_length_320674_cov_16.293258": { + "Ncount": 210, + "contig_id": "NODE_28_length_320674_cov_16.293258", + "description": "", + "gc_content": 0.40316, + "length": 320674, + "md5": "1708cc57f7b7da2b7fafb937b81e64f8", + "name": "NODE_28_length_320674_cov_16.293258" + }, + "NODE_2928_length_15603_cov_142.263700": { + "contig_id": "NODE_2928_length_15603_cov_142.263700", + "description": "", + "gc_content": 0.39883, + "length": 15603, + "md5": "7d98d07c8fad528d31ea24379b9cef75", + "name": "NODE_2928_length_15603_cov_142.263700" + }, + "NODE_2974_length_15381_cov_139.426661": { + "contig_id": "NODE_2974_length_15381_cov_139.426661", + "description": "", + "gc_content": 0.66413, + "length": 15381, + "md5": "edc1bb6d894a28938689510c3ce9f3ce", + "name": "NODE_2974_length_15381_cov_139.426661" + }, + "NODE_3014_length_15127_cov_138.238389": { + "contig_id": "NODE_3014_length_15127_cov_138.238389", + "description": "", + "gc_content": 0.39063, + "length": 15127, + "md5": "e61a093016fcd4708970ce88328334fa", + "name": "NODE_3014_length_15127_cov_138.238389" + }, + "NODE_3017_length_15112_cov_110.401740": { + "contig_id": "NODE_3017_length_15112_cov_110.401740", + "description": "", + "gc_content": 0.65637, + "length": 15112, + "md5": "f66b27c7d0ec3f6544d4fe196606d3e7", + "name": "NODE_3017_length_15112_cov_110.401740" + }, + "NODE_302_length_97886_cov_617.165173": { + "Ncount": 10, + "contig_id": "NODE_302_length_97886_cov_617.165173", + "description": "", + "gc_content": 0.64284, + "length": 97886, + "md5": "d503efea033ec2c570ea4dacedd0447a", + "name": "NODE_302_length_97886_cov_617.165173" + }, + "NODE_3035_length_15015_cov_32.700668": { + "contig_id": "NODE_3035_length_15015_cov_32.700668", + "description": "", + "gc_content": 0.63397, + "length": 15015, + "md5": "0f72ed76b63fd7d1ccd7ed5cf8d70c19", + "name": "NODE_3035_length_15015_cov_32.700668" + }, + "NODE_303_length_97862_cov_641.361518": { + "contig_id": "NODE_303_length_97862_cov_641.361518", + "description": "", + "gc_content": 0.64779, + "length": 97862, + "md5": "a4abc29e19143abf0fbef47a752f354f", + "name": "NODE_303_length_97862_cov_641.361518" + }, + "NODE_308_length_97127_cov_9.276321": { + "contig_id": "NODE_308_length_97127_cov_9.276321", + "description": "", + "gc_content": 0.68097, + "length": 97127, + "md5": "ec4435d82b777cd275a62ef79e8bf333", + "name": "NODE_308_length_97127_cov_9.276321" + }, + "NODE_3090_length_14757_cov_19.739695": { + "contig_id": "NODE_3090_length_14757_cov_19.739695", + "description": "", + "gc_content": 0.38829, + "length": 14757, + "md5": "bb4f8101290d71a3ad371a5b1c7eba19", + "name": "NODE_3090_length_14757_cov_19.739695" + }, + "NODE_3220_length_14050_cov_7.257663": { + "contig_id": "NODE_3220_length_14050_cov_7.257663", + "description": "", + "gc_content": 0.65694, + "length": 14050, + "md5": "3f1f5dd4b033bb6448bcc439eecf9dfa", + "name": "NODE_3220_length_14050_cov_7.257663" + }, + "NODE_3242_length_13962_cov_30.816927": { + "contig_id": "NODE_3242_length_13962_cov_30.816927", + "description": "", + "gc_content": 0.64052, + "length": 13962, + "md5": "4502b7382376c781fd4c04ff9e8eafdd", + "name": "NODE_3242_length_13962_cov_30.816927" + }, + "NODE_3246_length_13938_cov_74.777138": { + "contig_id": "NODE_3246_length_13938_cov_74.777138", + "description": "", + "gc_content": 0.56421, + "length": 13938, + "md5": "44b2117c935e9fdf675c64bff1cd43b9", + "name": "NODE_3246_length_13938_cov_74.777138" + }, + "NODE_324_length_94836_cov_132.601851": { + "Ncount": 100, + "contig_id": "NODE_324_length_94836_cov_132.601851", + "description": "", + "gc_content": 0.63207, + "length": 94836, + "md5": "1236eb70b47f0e4213ef540cc84f2051", + "name": "NODE_324_length_94836_cov_132.601851" + }, + "NODE_3276_length_13799_cov_16.636205": { + "Ncount": 100, + "contig_id": "NODE_3276_length_13799_cov_16.636205", + "description": "", + "gc_content": 0.38822, + "length": 13799, + "md5": "c20190f79c9411b9e8c9bceb339d8cfe", + "name": "NODE_3276_length_13799_cov_16.636205" + }, + "NODE_3278_length_13792_cov_28.236733": { + "contig_id": "NODE_3278_length_13792_cov_28.236733", + "description": "", + "gc_content": 0.63276, + "length": 13792, + "md5": "ecb818f55f76ec7894f81f3b897d2318", + "name": "NODE_3278_length_13792_cov_28.236733" + }, + "NODE_3283_length_13774_cov_144.931701": { + "contig_id": "NODE_3283_length_13774_cov_144.931701", + "description": "", + "gc_content": 0.38986, + "length": 13774, + "md5": "2c638ffca4a8cd1a620cbc37bcecc55e", + "name": "NODE_3283_length_13774_cov_144.931701" + }, + "NODE_3331_length_13585_cov_21.915299": { + "contig_id": "NODE_3331_length_13585_cov_21.915299", + "description": "", + "gc_content": 0.63224, + "length": 13585, + "md5": "3889b67f42c4ccece7734fc4ea24ca6e", + "name": "NODE_3331_length_13585_cov_21.915299" + }, + "NODE_333_length_93363_cov_128.182396": { + "contig_id": "NODE_333_length_93363_cov_128.182396", + "description": "", + "gc_content": 0.63796, + "length": 93363, + "md5": "34baf7fc9ae66f8a6b9d11d87b17e2bd", + "name": "NODE_333_length_93363_cov_128.182396" + }, + "NODE_3364_length_13464_cov_127.677530": { + "Ncount": 100, + "contig_id": "NODE_3364_length_13464_cov_127.677530", + "description": "", + "gc_content": 0.38748, + "length": 13464, + "md5": "250fa261f392f4288fa4fc2cbcf6f0b9", + "name": "NODE_3364_length_13464_cov_127.677530" + }, + "NODE_337_length_92784_cov_118.914169": { + "Ncount": 300, + "contig_id": "NODE_337_length_92784_cov_118.914169", + "description": "", + "gc_content": 0.63946, + "length": 92784, + "md5": "7d3cc4463621e27e31ebc171e380eef0", + "name": "NODE_337_length_92784_cov_118.914169" + }, + "NODE_3385_length_13409_cov_10.228621": { + "contig_id": "NODE_3385_length_13409_cov_10.228621", + "description": "", + "gc_content": 0.69155, + "length": 13409, + "md5": "bdc61a69cd7a9014c7b0cd0d6c1f6781", + "name": "NODE_3385_length_13409_cov_10.228621" + }, + "NODE_33_length_297482_cov_15.455836": { + "contig_id": "NODE_33_length_297482_cov_15.455836", + "description": "", + "gc_content": 0.4952, + "length": 297482, + "md5": "a2f7bc360ea2b19c9a5f3aed25112999", + "name": "NODE_33_length_297482_cov_15.455836" + }, + "NODE_3416_length_13266_cov_128.115585": { + "contig_id": "NODE_3416_length_13266_cov_128.115585", + "description": "", + "gc_content": 0.63252, + "length": 13266, + "md5": "ed45fb810b8d220d28fd386160f3db06", + "name": "NODE_3416_length_13266_cov_128.115585" + }, + "NODE_3447_length_13082_cov_30.126814": { + "contig_id": "NODE_3447_length_13082_cov_30.126814", + "description": "", + "gc_content": 0.6275, + "length": 13082, + "md5": "caeda78af236af377de613fca98f83f9", + "name": "NODE_3447_length_13082_cov_30.126814" + }, + "NODE_345_length_91782_cov_14.737024": { + "contig_id": "NODE_345_length_91782_cov_14.737024", + "description": "", + "gc_content": 0.48633, + "length": 91782, + "md5": "4f0ba26638c6500fc6cb92f79a668c6a", + "name": "NODE_345_length_91782_cov_14.737024" + }, + "NODE_346_length_91519_cov_129.264377": { + "contig_id": "NODE_346_length_91519_cov_129.264377", + "description": "", + "gc_content": 0.64345, + "length": 91519, + "md5": "550adb4519c67215086da15df506a614", + "name": "NODE_346_length_91519_cov_129.264377" + }, + "NODE_347_length_91195_cov_29.489719": { + "Ncount": 300, + "contig_id": "NODE_347_length_91195_cov_29.489719", + "description": "", + "gc_content": 0.63558, + "length": 91195, + "md5": "7898b710a1ff89ab2bb6cde330804d89", + "name": "NODE_347_length_91195_cov_29.489719" + }, + "NODE_3481_length_12969_cov_110.665247": { + "contig_id": "NODE_3481_length_12969_cov_110.665247", + "description": "", + "gc_content": 0.64461, + "length": 12969, + "md5": "1d9e9424aaa0dd780a8c57779f09f53c", + "name": "NODE_3481_length_12969_cov_110.665247" + }, + "NODE_3494_length_12917_cov_78.411522": { + "Ncount": 200, + "contig_id": "NODE_3494_length_12917_cov_78.411522", + "description": "", + "gc_content": 0.64504, + "length": 12917, + "md5": "965d9d31fb2ee1174c72e3b9f8f81b4b", + "name": "NODE_3494_length_12917_cov_78.411522" + }, + "NODE_3495_length_12914_cov_30.630687": { + "contig_id": "NODE_3495_length_12914_cov_30.630687", + "description": "", + "gc_content": 0.64984, + "length": 12914, + "md5": "d753e7505d0ef50d9069ad99bab2d001", + "name": "NODE_3495_length_12914_cov_30.630687" + }, + "NODE_34_length_294824_cov_16.687850": { + "Ncount": 200, + "contig_id": "NODE_34_length_294824_cov_16.687850", + "description": "", + "gc_content": 0.40032, + "length": 294824, + "md5": "45ed4c1d7c9353f23f3a7bbfa4826e3e", + "name": "NODE_34_length_294824_cov_16.687850" + }, + "NODE_354_length_88670_cov_16.311415": { + "contig_id": "NODE_354_length_88670_cov_16.311415", + "description": "", + "gc_content": 0.47585, + "length": 88670, + "md5": "c1449e5133c096b708dcca0550d54650", + "name": "NODE_354_length_88670_cov_16.311415" + }, + "NODE_3567_length_12655_cov_69.978889": { + "contig_id": "NODE_3567_length_12655_cov_69.978889", + "description": "", + "gc_content": 0.31094, + "length": 12655, + "md5": "313683cc4cbdf738a5feef1378e5335f", + "name": "NODE_3567_length_12655_cov_69.978889" + }, + "NODE_3601_length_12557_cov_118.124860": { + "contig_id": "NODE_3601_length_12557_cov_118.124860", + "description": "", + "gc_content": 0.62913, + "length": 12557, + "md5": "10099f8ea8a8d5838aab38abd94b59e6", + "name": "NODE_3601_length_12557_cov_118.124860" + }, + "NODE_3625_length_12492_cov_114.968803": { + "contig_id": "NODE_3625_length_12492_cov_114.968803", + "description": "", + "gc_content": 0.64681, + "length": 12492, + "md5": "eb7def82a178cbc39df3916e31314e29", + "name": "NODE_3625_length_12492_cov_114.968803" + }, + "NODE_3634_length_12459_cov_155.011932": { + "contig_id": "NODE_3634_length_12459_cov_155.011932", + "description": "", + "gc_content": 0.46055, + "length": 12459, + "md5": "f8e5e7803d498731a2fc2d66b50d5c0a", + "name": "NODE_3634_length_12459_cov_155.011932" + }, + "NODE_3659_length_12376_cov_134.496307": { + "contig_id": "NODE_3659_length_12376_cov_134.496307", + "description": "", + "gc_content": 0.64189, + "length": 12376, + "md5": "5c26a2d3ed1d0e3df432615e9d1bb50e", + "name": "NODE_3659_length_12376_cov_134.496307" + }, + "NODE_3689_length_12257_cov_31.139158": { + "contig_id": "NODE_3689_length_12257_cov_31.139158", + "description": "", + "gc_content": 0.5968, + "length": 12257, + "md5": "63576c75e3da2a578137c323ce355581", + "name": "NODE_3689_length_12257_cov_31.139158" + }, + "NODE_369_length_86974_cov_17.617713": { + "contig_id": "NODE_369_length_86974_cov_17.617713", + "description": "", + "gc_content": 0.39816, + "length": 86974, + "md5": "cf9a9423b307225fe167dc2cdfb7d396", + "name": "NODE_369_length_86974_cov_17.617713" + }, + "NODE_371_length_86833_cov_19.898891": { + "contig_id": "NODE_371_length_86833_cov_19.898891", + "description": "", + "gc_content": 0.39988, + "length": 86833, + "md5": "a16a4c6c050278f21f60fd391d397502", + "name": "NODE_371_length_86833_cov_19.898891" + }, + "NODE_3740_length_12125_cov_28.826926": { + "Ncount": 100, + "contig_id": "NODE_3740_length_12125_cov_28.826926", + "description": "", + "gc_content": 0.64074, + "length": 12125, + "md5": "41a9b14cf9fc63b77847624e3d840343", + "name": "NODE_3740_length_12125_cov_28.826926" + }, + "NODE_3753_length_12083_cov_141.645328": { + "contig_id": "NODE_3753_length_12083_cov_141.645328", + "description": "", + "gc_content": 0.38517, + "length": 12083, + "md5": "e43232f27e65cb2675e7bc3475394714", + "name": "NODE_3753_length_12083_cov_141.645328" + }, + "NODE_376_length_86128_cov_18.699255": { + "contig_id": "NODE_376_length_86128_cov_18.699255", + "description": "", + "gc_content": 0.40216, + "length": 86128, + "md5": "44fc5af689baa59ca4da75d239c85939", + "name": "NODE_376_length_86128_cov_18.699255" + }, + "NODE_387_length_84567_cov_18.465697": { + "contig_id": "NODE_387_length_84567_cov_18.465697", + "description": "", + "gc_content": 0.39323, + "length": 84567, + "md5": "e2d352eebb3ad4cc574b6c9fc61dc6ae", + "name": "NODE_387_length_84567_cov_18.465697" + }, + "NODE_389_length_84482_cov_122.837244": { + "Ncount": 100, + "contig_id": "NODE_389_length_84482_cov_122.837244", + "description": "", + "gc_content": 0.64618, + "length": 84482, + "md5": "f248268848f3becad064b712d170a547", + "name": "NODE_389_length_84482_cov_122.837244" + }, + "NODE_3956_length_11557_cov_32.232916": { + "contig_id": "NODE_3956_length_11557_cov_32.232916", + "description": "", + "gc_content": 0.64056, + "length": 11557, + "md5": "c1b04492738b0fc93c14cb5dabbba3e6", + "name": "NODE_3956_length_11557_cov_32.232916" + }, + "NODE_3980_length_11487_cov_119.937369": { + "contig_id": "NODE_3980_length_11487_cov_119.937369", + "description": "", + "gc_content": 0.63898, + "length": 11487, + "md5": "e91a9ca668ea882a90681d22547d45c1", + "name": "NODE_3980_length_11487_cov_119.937369" + }, + "NODE_39_length_280711_cov_158.055303": { + "contig_id": "NODE_39_length_280711_cov_158.055303", + "description": "", + "gc_content": 0.50834, + "length": 280711, + "md5": "e33547001f33fbd4032d8b19e7e25d48", + "name": "NODE_39_length_280711_cov_158.055303" + }, + "NODE_3_length_955858_cov_599.524973": { + "Ncount": 20, + "contig_id": "NODE_3_length_955858_cov_599.524973", + "description": "", + "gc_content": 0.63506, + "length": 955858, + "md5": "5a47df4e4ba50065460296c734363836", + "name": "NODE_3_length_955858_cov_599.524973" + }, + "NODE_400_length_82714_cov_123.620634": { + "Ncount": 100, + "contig_id": "NODE_400_length_82714_cov_123.620634", + "description": "", + "gc_content": 0.62531, + "length": 82714, + "md5": "27bc6c93b38331bb3f42ce6734765199", + "name": "NODE_400_length_82714_cov_123.620634" + }, + "NODE_4018_length_11372_cov_73.477777": { + "contig_id": "NODE_4018_length_11372_cov_73.477777", + "description": "", + "gc_content": 0.336, + "length": 11372, + "md5": "fdfbbfc290e2dd8238e1af7347e64473", + "name": "NODE_4018_length_11372_cov_73.477777" + }, + "NODE_4038_length_11316_cov_18.710860": { + "contig_id": "NODE_4038_length_11316_cov_18.710860", + "description": "", + "gc_content": 0.39236, + "length": 11316, + "md5": "4eded0ba220f6198c665522671e3f17b", + "name": "NODE_4038_length_11316_cov_18.710860" + }, + "NODE_403_length_82307_cov_119.957071": { + "Ncount": 100, + "contig_id": "NODE_403_length_82307_cov_119.957071", + "description": "", + "gc_content": 0.64377, + "length": 82307, + "md5": "1ddeb54b10f3d3e057d11a6c97235dfb", + "name": "NODE_403_length_82307_cov_119.957071" + }, + "NODE_406_length_82094_cov_15.268933": { + "Ncount": 100, + "contig_id": "NODE_406_length_82094_cov_15.268933", + "description": "", + "gc_content": 0.48591, + "length": 82094, + "md5": "a74e6ae06e3361a4a36d6669c355f2c6", + "name": "NODE_406_length_82094_cov_15.268933" + }, + "NODE_408_length_81653_cov_32.790056": { + "contig_id": "NODE_408_length_81653_cov_32.790056", + "description": "", + "gc_content": 0.63308, + "length": 81653, + "md5": "4c3902d01224baeb15785d57abb1080d", + "name": "NODE_408_length_81653_cov_32.790056" + }, + "NODE_410_length_81395_cov_133.638210": { + "contig_id": "NODE_410_length_81395_cov_133.638210", + "description": "", + "gc_content": 0.39326, + "length": 81395, + "md5": "77a55f6de06dc034f01408ca6aca5f2a", + "name": "NODE_410_length_81395_cov_133.638210" + }, + "NODE_412_length_81342_cov_29.429085": { + "Ncount": 100, + "contig_id": "NODE_412_length_81342_cov_29.429085", + "description": "", + "gc_content": 0.64925, + "length": 81342, + "md5": "3475876c6d42601334900f558fc3025b", + "name": "NODE_412_length_81342_cov_29.429085" + }, + "NODE_413_length_81124_cov_31.092699": { + "Ncount": 200, + "contig_id": "NODE_413_length_81124_cov_31.092699", + "description": "", + "gc_content": 0.6398, + "length": 81124, + "md5": "c184ea3e4eac4c9afb4ead53f94d8dff", + "name": "NODE_413_length_81124_cov_31.092699" + }, + "NODE_4154_length_11006_cov_18.597297": { + "Ncount": 200, + "contig_id": "NODE_4154_length_11006_cov_18.597297", + "description": "", + "gc_content": 0.36725, + "length": 11006, + "md5": "cb914140965f120efd85e9f546997b88", + "name": "NODE_4154_length_11006_cov_18.597297" + }, + "NODE_4159_length_10991_cov_138.870428": { + "contig_id": "NODE_4159_length_10991_cov_138.870428", + "description": "", + "gc_content": 0.39268, + "length": 10991, + "md5": "696b920fbb1eb1d73a4c3a585d5cbb39", + "name": "NODE_4159_length_10991_cov_138.870428" + }, + "NODE_4178_length_10932_cov_138.647145": { + "contig_id": "NODE_4178_length_10932_cov_138.647145", + "description": "", + "gc_content": 0.64023, + "length": 10932, + "md5": "ee1f123ad63196b325850a8543856ff8", + "name": "NODE_4178_length_10932_cov_138.647145" + }, + "NODE_4179_length_10932_cov_74.876069": { + "contig_id": "NODE_4179_length_10932_cov_74.876069", + "description": "", + "gc_content": 0.6266, + "length": 10932, + "md5": "78f4deba83305f2fcfc09c48985228fb", + "name": "NODE_4179_length_10932_cov_74.876069" + }, + "NODE_41_length_267261_cov_15.378195": { + "contig_id": "NODE_41_length_267261_cov_15.378195", + "description": "", + "gc_content": 0.48658, + "length": 267261, + "md5": "f2bd74259f6e346bb2df450afbddefee", + "name": "NODE_41_length_267261_cov_15.378195" + }, + "NODE_4249_length_10771_cov_8.632699": { + "contig_id": "NODE_4249_length_10771_cov_8.632699", + "description": "", + "gc_content": 0.66215, + "length": 10771, + "md5": "76b9e163bce20fb68c7e1b907a07af09", + "name": "NODE_4249_length_10771_cov_8.632699" + }, + "NODE_424_length_78693_cov_129.098527": { + "Ncount": 100, + "contig_id": "NODE_424_length_78693_cov_129.098527", + "description": "", + "gc_content": 0.64233, + "length": 78693, + "md5": "41f80db12fa47c9aaad2aa646729d412", + "name": "NODE_424_length_78693_cov_129.098527" + }, + "NODE_425_length_78681_cov_15.564673": { + "contig_id": "NODE_425_length_78681_cov_15.564673", + "description": "", + "gc_content": 0.48887, + "length": 78681, + "md5": "8838745e81d31131062ca5f0b389fa78", + "name": "NODE_425_length_78681_cov_15.564673" + }, + "NODE_429_length_78354_cov_32.058379": { + "Ncount": 200, + "contig_id": "NODE_429_length_78354_cov_32.058379", + "description": "", + "gc_content": 0.64549, + "length": 78354, + "md5": "4ef9e90b7a3c124c7326c02c97754596", + "name": "NODE_429_length_78354_cov_32.058379" + }, + "NODE_4321_length_10560_cov_133.106616": { + "Ncount": 100, + "contig_id": "NODE_4321_length_10560_cov_133.106616", + "description": "", + "gc_content": 0.64318, + "length": 10560, + "md5": "62a6f4546b424d402ce34c4f78a39796", + "name": "NODE_4321_length_10560_cov_133.106616" + }, + "NODE_432_length_77993_cov_18.271729": { + "contig_id": "NODE_432_length_77993_cov_18.271729", + "description": "", + "gc_content": 0.38782, + "length": 77993, + "md5": "d88dd986e4ca0151aefdcf19091b6847", + "name": "NODE_432_length_77993_cov_18.271729" + }, + "NODE_434_length_77378_cov_9.009945": { + "contig_id": "NODE_434_length_77378_cov_9.009945", + "description": "", + "gc_content": 0.68125, + "length": 77378, + "md5": "6ccccda207e5e5d35e587d5242ef2766", + "name": "NODE_434_length_77378_cov_9.009945" + }, + "NODE_435_length_77139_cov_17.261572": { + "contig_id": "NODE_435_length_77139_cov_17.261572", + "description": "", + "gc_content": 0.40296, + "length": 77139, + "md5": "22a0355f5c455d009037a55c72471378", + "name": "NODE_435_length_77139_cov_17.261572" + }, + "NODE_436_length_77054_cov_118.260977": { + "Ncount": 100, + "contig_id": "NODE_436_length_77054_cov_118.260977", + "description": "", + "gc_content": 0.64027, + "length": 77054, + "md5": "16ada5bd01bb3c73ced25dfdeb8f835c", + "name": "NODE_436_length_77054_cov_118.260977" + }, + "NODE_4409_length_10376_cov_123.460227": { + "contig_id": "NODE_4409_length_10376_cov_123.460227", + "description": "", + "gc_content": 0.62828, + "length": 10376, + "md5": "2d05b2f17bb83b23936a9df48eb6565a", + "name": "NODE_4409_length_10376_cov_123.460227" + }, + "NODE_440_length_76709_cov_31.326571": { + "Ncount": 100, + "contig_id": "NODE_440_length_76709_cov_31.326571", + "description": "", + "gc_content": 0.6451, + "length": 76709, + "md5": "0677c2d96199150f23ebf5398f92f9e8", + "name": "NODE_440_length_76709_cov_31.326571" + }, + "NODE_4427_length_10327_cov_22.755938": { + "contig_id": "NODE_4427_length_10327_cov_22.755938", + "description": "", + "gc_content": 0.40273, + "length": 10327, + "md5": "2946588cc135c1e51bc4e25c4f352d02", + "name": "NODE_4427_length_10327_cov_22.755938" + }, + "NODE_4434_length_10311_cov_31.311720": { + "Ncount": 100, + "contig_id": "NODE_4434_length_10311_cov_31.311720", + "description": "", + "gc_content": 0.64543, + "length": 10311, + "md5": "41b551c09e2f97a0e5f9588a309320ba", + "name": "NODE_4434_length_10311_cov_31.311720" + }, + "NODE_443_length_76553_cov_29.596538": { + "contig_id": "NODE_443_length_76553_cov_29.596538", + "description": "", + "gc_content": 0.63909, + "length": 76553, + "md5": "6ee2772c1b743ae819bfdcf9e9fe00f3", + "name": "NODE_443_length_76553_cov_29.596538" + }, + "NODE_4461_length_10260_cov_159.823028": { + "contig_id": "NODE_4461_length_10260_cov_159.823028", + "description": "", + "gc_content": 0.47495, + "length": 10260, + "md5": "f1be56163a2f1965d8fd5e118f701481", + "name": "NODE_4461_length_10260_cov_159.823028" + }, + "NODE_449_length_76067_cov_9.273944": { + "Ncount": 10, + "contig_id": "NODE_449_length_76067_cov_9.273944", + "description": "", + "gc_content": 0.67174, + "length": 76067, + "md5": "5095bcdf2f3596847d98b458212fc123", + "name": "NODE_449_length_76067_cov_9.273944" + }, + "NODE_44_length_259607_cov_149.222568": { + "contig_id": "NODE_44_length_259607_cov_149.222568", + "description": "", + "gc_content": 0.52498, + "length": 259607, + "md5": "140020d72681bfeb9af4137b830215ee", + "name": "NODE_44_length_259607_cov_149.222568" + }, + "NODE_4519_length_10111_cov_26.746321": { + "contig_id": "NODE_4519_length_10111_cov_26.746321", + "description": "", + "gc_content": 0.34665, + "length": 10111, + "md5": "0bd99e04ef51e14a1633435931a48d6d", + "name": "NODE_4519_length_10111_cov_26.746321" + }, + "NODE_4526_length_10099_cov_24.847073": { + "contig_id": "NODE_4526_length_10099_cov_24.847073", + "description": "", + "gc_content": 0.40281, + "length": 10099, + "md5": "6eefdb842c867d4e04d1782a25a8c28e", + "name": "NODE_4526_length_10099_cov_24.847073" + }, + "NODE_452_length_75896_cov_139.185797": { + "contig_id": "NODE_452_length_75896_cov_139.185797", + "description": "", + "gc_content": 0.38754, + "length": 75896, + "md5": "61faf52b8f6e9d91a65093cfb93c0d42", + "name": "NODE_452_length_75896_cov_139.185797" + }, + "NODE_4547_length_10044_cov_116.664131": { + "contig_id": "NODE_4547_length_10044_cov_116.664131", + "description": "", + "gc_content": 0.64556, + "length": 10044, + "md5": "6d97284831613967301ccf48ca7fa5c0", + "name": "NODE_4547_length_10044_cov_116.664131" + }, + "NODE_454_length_75663_cov_142.046503": { + "Ncount": 100, + "contig_id": "NODE_454_length_75663_cov_142.046503", + "description": "", + "gc_content": 0.38781, + "length": 75663, + "md5": "be6ec44a9bf449031eeeb3a5db3b6922", + "name": "NODE_454_length_75663_cov_142.046503" + }, + "NODE_4568_length_9994_cov_8.541201": { + "contig_id": "NODE_4568_length_9994_cov_8.541201", + "description": "", + "gc_content": 0.65189, + "length": 9994, + "md5": "b213c29d309addcd5b3c87a11857d9d8", + "name": "NODE_4568_length_9994_cov_8.541201" + }, + "NODE_456_length_75341_cov_8.965611": { + "contig_id": "NODE_456_length_75341_cov_8.965611", + "description": "", + "gc_content": 0.67824, + "length": 75341, + "md5": "73f20fcd4af65a0cb14d1fa10357b0a9", + "name": "NODE_456_length_75341_cov_8.965611" + }, + "NODE_457_length_75181_cov_32.246972": { + "Ncount": 110, + "contig_id": "NODE_457_length_75181_cov_32.246972", + "description": "", + "gc_content": 0.64244, + "length": 75181, + "md5": "a965726bec9ecfb4f51db056bfdd5654", + "name": "NODE_457_length_75181_cov_32.246972" + }, + "NODE_4595_length_9930_cov_13.524051": { + "Ncount": 10, + "contig_id": "NODE_4595_length_9930_cov_13.524051", + "description": "", + "gc_content": 0.50312, + "length": 9930, + "md5": "6af2d8ef71bfeea611cd11b63c9c1df6", + "name": "NODE_4595_length_9930_cov_13.524051" + }, + "NODE_460_length_75021_cov_138.414588": { + "Ncount": 200, + "contig_id": "NODE_460_length_75021_cov_138.414588", + "description": "", + "gc_content": 0.65368, + "length": 75021, + "md5": "7f43455f4320fff82ff93a5aeaa5d0d2", + "name": "NODE_460_length_75021_cov_138.414588" + }, + "NODE_4617_length_9878_cov_10.195358": { + "contig_id": "NODE_4617_length_9878_cov_10.195358", + "description": "", + "gc_content": 0.65347, + "length": 9878, + "md5": "84d7195926f35baa61cdf0ed632f23d5", + "name": "NODE_4617_length_9878_cov_10.195358" + }, + "NODE_464_length_74490_cov_30.307369": { + "Ncount": 100, + "contig_id": "NODE_464_length_74490_cov_30.307369", + "description": "", + "gc_content": 0.63835, + "length": 74490, + "md5": "6b9c5bc9a02e9cdfdf692cdb9290c962", + "name": "NODE_464_length_74490_cov_30.307369" + }, + "NODE_4661_length_9790_cov_63.520185": { + "contig_id": "NODE_4661_length_9790_cov_63.520185", + "description": "", + "gc_content": 0.61879, + "length": 9790, + "md5": "20cb51e89d41c32d9267f345b08212d3", + "name": "NODE_4661_length_9790_cov_63.520185" + }, + "NODE_466_length_74263_cov_30.335018": { + "contig_id": "NODE_466_length_74263_cov_30.335018", + "description": "", + "gc_content": 0.64087, + "length": 74263, + "md5": "3cdd06edd5aa74943c9fd52a4147c94a", + "name": "NODE_466_length_74263_cov_30.335018" + }, + "NODE_4675_length_9762_cov_18.263830": { + "contig_id": "NODE_4675_length_9762_cov_18.263830", + "description": "", + "gc_content": 0.48914, + "length": 9762, + "md5": "aafebb841f1a94fe198d3818e5b0c0d0", + "name": "NODE_4675_length_9762_cov_18.263830" + }, + "NODE_467_length_74231_cov_8.534135": { + "contig_id": "NODE_467_length_74231_cov_8.534135", + "description": "", + "gc_content": 0.66646, + "length": 74231, + "md5": "15e6e34076c2b11f75bcd8fdcafed49d", + "name": "NODE_467_length_74231_cov_8.534135" + }, + "NODE_468_length_73847_cov_15.917823": { + "contig_id": "NODE_468_length_73847_cov_15.917823", + "description": "", + "gc_content": 0.39456, + "length": 73847, + "md5": "68069cad71741b00951041e41a021225", + "name": "NODE_468_length_73847_cov_15.917823" + }, + "NODE_4695_length_9730_cov_17.744393": { + "Ncount": 215, + "contig_id": "NODE_4695_length_9730_cov_17.744393", + "description": "", + "gc_content": 0.37071, + "length": 9730, + "md5": "b7842e43750d157162f0712206a8fcb7", + "name": "NODE_4695_length_9730_cov_17.744393" + }, + "NODE_46_length_253743_cov_15.070792": { + "Ncount": 100, + "contig_id": "NODE_46_length_253743_cov_15.070792", + "description": "", + "gc_content": 0.48927, + "length": 253743, + "md5": "5caffe73cdb729e651f3666834c56695", + "name": "NODE_46_length_253743_cov_15.070792" + }, + "NODE_4751_length_9623_cov_30.188232": { + "contig_id": "NODE_4751_length_9623_cov_30.188232", + "description": "", + "gc_content": 0.64055, + "length": 9623, + "md5": "ff24826a25146c7b5edb4b1c37221ec1", + "name": "NODE_4751_length_9623_cov_30.188232" + }, + "NODE_4777_length_9569_cov_19.745428": { + "contig_id": "NODE_4777_length_9569_cov_19.745428", + "description": "", + "gc_content": 0.35949, + "length": 9569, + "md5": "452651d4d3a21fddbb6da136805c2370", + "name": "NODE_4777_length_9569_cov_19.745428" + }, + "NODE_477_length_71982_cov_121.741238": { + "Ncount": 100, + "contig_id": "NODE_477_length_71982_cov_121.741238", + "description": "", + "gc_content": 0.65314, + "length": 71982, + "md5": "013bff4eee8ec31464a82cadf2e87a7d", + "name": "NODE_477_length_71982_cov_121.741238" + }, + "NODE_479_length_71734_cov_9.087529": { + "Ncount": 200, + "contig_id": "NODE_479_length_71734_cov_9.087529", + "description": "", + "gc_content": 0.68401, + "length": 71734, + "md5": "b27f1a2eeba15890223ab6d4926006d0", + "name": "NODE_479_length_71734_cov_9.087529" + }, + "NODE_47_length_253246_cov_150.781169": { + "contig_id": "NODE_47_length_253246_cov_150.781169", + "description": "", + "gc_content": 0.50706, + "length": 253246, + "md5": "53476568954b53bbd63c645ddaa31ac5", + "name": "NODE_47_length_253246_cov_150.781169" + }, + "NODE_4815_length_9505_cov_158.931958": { + "contig_id": "NODE_4815_length_9505_cov_158.931958", + "description": "", + "gc_content": 0.49016, + "length": 9505, + "md5": "6b7386c151cd55e92f704faeeed0e460", + "name": "NODE_4815_length_9505_cov_158.931958" + }, + "NODE_485_length_71438_cov_584.619727": { + "Ncount": 10, + "contig_id": "NODE_485_length_71438_cov_584.619727", + "description": "", + "gc_content": 0.62706, + "length": 71438, + "md5": "a791aab57aa79c930c4c548270a80e26", + "name": "NODE_485_length_71438_cov_584.619727" + }, + "NODE_489_length_71202_cov_16.818278": { + "contig_id": "NODE_489_length_71202_cov_16.818278", + "description": "", + "gc_content": 0.48465, + "length": 71202, + "md5": "50e5e0b8032bde1d8f8b8fddbd958b53", + "name": "NODE_489_length_71202_cov_16.818278" + }, + "NODE_490_length_71002_cov_8.752012": { + "contig_id": "NODE_490_length_71002_cov_8.752012", + "description": "", + "gc_content": 0.67056, + "length": 71002, + "md5": "e9f46ea5fcc4ced241202222cd192f71", + "name": "NODE_490_length_71002_cov_8.752012" + }, + "NODE_4919_length_9279_cov_22.470078": { + "contig_id": "NODE_4919_length_9279_cov_22.470078", + "description": "", + "gc_content": 0.66192, + "length": 9279, + "md5": "57a9004b2585cec8ec077eb86cf83c7d", + "name": "NODE_4919_length_9279_cov_22.470078" + }, + "NODE_496_length_70430_cov_14.447716": { + "contig_id": "NODE_496_length_70430_cov_14.447716", + "description": "", + "gc_content": 0.49808, + "length": 70430, + "md5": "7cae8ec279843a7fb3c9be730487e56c", + "name": "NODE_496_length_70430_cov_14.447716" + }, + "NODE_4985_length_9154_cov_611.354874": { + "contig_id": "NODE_4985_length_9154_cov_611.354874", + "description": "", + "gc_content": 0.60891, + "length": 9154, + "md5": "04da9971d355b578baaa20d72425a6de", + "name": "NODE_4985_length_9154_cov_611.354874" + }, + "NODE_499_length_70270_cov_9.207477": { + "contig_id": "NODE_499_length_70270_cov_9.207477", + "description": "", + "gc_content": 0.68002, + "length": 70270, + "md5": "9d5d4d0a9fdc672d43dc8e511f3b3212", + "name": "NODE_499_length_70270_cov_9.207477" + }, + "NODE_4_length_940015_cov_569.509463": { + "Ncount": 20, + "contig_id": "NODE_4_length_940015_cov_569.509463", + "description": "", + "gc_content": 0.64006, + "length": 940015, + "md5": "c3749f847bcd55151eaca13094dcab89", + "name": "NODE_4_length_940015_cov_569.509463" + }, + "NODE_503_length_69804_cov_16.693831": { + "Ncount": 100, + "contig_id": "NODE_503_length_69804_cov_16.693831", + "description": "", + "gc_content": 0.40009, + "length": 69804, + "md5": "3fc2e758fa95a6c2ac0c0db7b7bf45c8", + "name": "NODE_503_length_69804_cov_16.693831" + }, + "NODE_506_length_69443_cov_154.922696": { + "contig_id": "NODE_506_length_69443_cov_154.922696", + "description": "", + "gc_content": 0.51871, + "length": 69443, + "md5": "acfa1028ea196dbb66aca2650fc1d852", + "name": "NODE_506_length_69443_cov_154.922696" + }, + "NODE_5072_length_8963_cov_120.434104": { + "contig_id": "NODE_5072_length_8963_cov_120.434104", + "description": "", + "gc_content": 0.3963, + "length": 8963, + "md5": "bc605e6e53529eb15ea232199dbf8da5", + "name": "NODE_5072_length_8963_cov_120.434104" + }, + "NODE_5097_length_8923_cov_119.937077": { + "contig_id": "NODE_5097_length_8923_cov_119.937077", + "description": "", + "gc_content": 0.63645, + "length": 8923, + "md5": "c65e1880c47202b2ac334a9b48243a10", + "name": "NODE_5097_length_8923_cov_119.937077" + }, + "NODE_509_length_69102_cov_122.857966": { + "Ncount": 100, + "contig_id": "NODE_509_length_69102_cov_122.857966", + "description": "", + "gc_content": 0.63979, + "length": 69102, + "md5": "0482a47ff2dcdf7e29cb42ff8cb34e7f", + "name": "NODE_509_length_69102_cov_122.857966" + }, + "NODE_50_length_249256_cov_9.511888": { + "Ncount": 10, + "contig_id": "NODE_50_length_249256_cov_9.511888", + "description": "", + "gc_content": 0.68106, + "length": 249256, + "md5": "6d0eabbf6246c52eaa9a0e26b963ba08", + "name": "NODE_50_length_249256_cov_9.511888" + }, + "NODE_510_length_69065_cov_30.382887": { + "contig_id": "NODE_510_length_69065_cov_30.382887", + "description": "", + "gc_content": 0.64447, + "length": 69065, + "md5": "dee2525a19bdc2b8d5cfbecf99780da2", + "name": "NODE_510_length_69065_cov_30.382887" + }, + "NODE_512_length_68940_cov_14.845119": { + "Ncount": 100, + "contig_id": "NODE_512_length_68940_cov_14.845119", + "description": "", + "gc_content": 0.50019, + "length": 68940, + "md5": "da7085881dd2026bc7fdb4e72bd37e48", + "name": "NODE_512_length_68940_cov_14.845119" + }, + "NODE_513_length_68869_cov_111.930872": { + "Ncount": 300, + "contig_id": "NODE_513_length_68869_cov_111.930872", + "description": "", + "gc_content": 0.64522, + "length": 68869, + "md5": "e53e3eb5d46d81758e340c5e104d486c", + "name": "NODE_513_length_68869_cov_111.930872" + }, + "NODE_517_length_68782_cov_8.542902": { + "contig_id": "NODE_517_length_68782_cov_8.542902", + "description": "", + "gc_content": 0.68541, + "length": 68782, + "md5": "3f95de09df97f470fafedf533820b5c4", + "name": "NODE_517_length_68782_cov_8.542902" + }, + "NODE_5192_length_8778_cov_38.629715": { + "Ncount": 100, + "contig_id": "NODE_5192_length_8778_cov_38.629715", + "description": "", + "gc_content": 0.62429, + "length": 8778, + "md5": "a66600cdaf9307b24f06ce6f306dc717", + "name": "NODE_5192_length_8778_cov_38.629715" + }, + "NODE_5207_length_8745_cov_117.359033": { + "contig_id": "NODE_5207_length_8745_cov_117.359033", + "description": "", + "gc_content": 0.39154, + "length": 8745, + "md5": "7551ec87e08c397aebc586c339baa565", + "name": "NODE_5207_length_8745_cov_117.359033" + }, + "NODE_531_length_67136_cov_124.685872": { + "Ncount": 300, + "contig_id": "NODE_531_length_67136_cov_124.685872", + "description": "", + "gc_content": 0.64548, + "length": 67136, + "md5": "e0e3f6ece44b7073e8827d5afecabc84", + "name": "NODE_531_length_67136_cov_124.685872" + }, + "NODE_532_length_67112_cov_18.033867": { + "contig_id": "NODE_532_length_67112_cov_18.033867", + "description": "", + "gc_content": 0.39485, + "length": 67112, + "md5": "7ecb37d28d50cdfdff7bfbedc12d89ae", + "name": "NODE_532_length_67112_cov_18.033867" + }, + "NODE_533_length_67071_cov_25.359750": { + "Ncount": 10, + "contig_id": "NODE_533_length_67071_cov_25.359750", + "description": "", + "gc_content": 0.3821, + "length": 67071, + "md5": "70ee6b02caf65f44373ac38220fc555a", + "name": "NODE_533_length_67071_cov_25.359750" + }, + "NODE_534_length_67031_cov_135.276920": { + "Ncount": 100, + "contig_id": "NODE_534_length_67031_cov_135.276920", + "description": "", + "gc_content": 0.39058, + "length": 67031, + "md5": "8d2f3ae6fea9525c9442baa2be2f80ee", + "name": "NODE_534_length_67031_cov_135.276920" + }, + "NODE_5368_length_8465_cov_5.765042": { + "contig_id": "NODE_5368_length_8465_cov_5.765042", + "description": "", + "gc_content": 0.6508, + "length": 8465, + "md5": "1e1644d237b6dd99cc8c53bbf029b8c1", + "name": "NODE_5368_length_8465_cov_5.765042" + }, + "NODE_540_length_66598_cov_30.696677": { + "Ncount": 200, + "contig_id": "NODE_540_length_66598_cov_30.696677", + "description": "", + "gc_content": 0.64682, + "length": 66598, + "md5": "19182713e9c4085d888ed5591b09ff6f", + "name": "NODE_540_length_66598_cov_30.696677" + }, + "NODE_5459_length_8335_cov_8.732367": { + "contig_id": "NODE_5459_length_8335_cov_8.732367", + "description": "", + "gc_content": 0.68686, + "length": 8335, + "md5": "5518f8c94a6c7eb97cffec0bde0aced9", + "name": "NODE_5459_length_8335_cov_8.732367" + }, + "NODE_5492_length_8275_cov_22.334915": { + "contig_id": "NODE_5492_length_8275_cov_22.334915", + "description": "", + "gc_content": 0.38973, + "length": 8275, + "md5": "644a5efc3cab55383f6de8d3dd246a00", + "name": "NODE_5492_length_8275_cov_22.334915" + }, + "NODE_551_length_65215_cov_123.636403": { + "Ncount": 100, + "contig_id": "NODE_551_length_65215_cov_123.636403", + "description": "", + "gc_content": 0.64192, + "length": 65215, + "md5": "fd877f6069e23922cf0cc323d634adac", + "name": "NODE_551_length_65215_cov_123.636403" + }, + "NODE_5547_length_8192_cov_113.185326": { + "Ncount": 100, + "contig_id": "NODE_5547_length_8192_cov_113.185326", + "description": "", + "gc_content": 0.3949, + "length": 8192, + "md5": "6cb3149a9426688753ea1f4add64a572", + "name": "NODE_5547_length_8192_cov_113.185326" + }, + "NODE_554_length_64826_cov_9.191181": { + "contig_id": "NODE_554_length_64826_cov_9.191181", + "description": "", + "gc_content": 0.67107, + "length": 64826, + "md5": "468f315cf036413f04f39b7737dde28d", + "name": "NODE_554_length_64826_cov_9.191181" + }, + "NODE_555_length_64654_cov_145.943389": { + "contig_id": "NODE_555_length_64654_cov_145.943389", + "description": "", + "gc_content": 0.38714, + "length": 64654, + "md5": "5a531519e4580cc9b34eb25457e62f8d", + "name": "NODE_555_length_64654_cov_145.943389" + }, + "NODE_556_length_64437_cov_9.328896": { + "contig_id": "NODE_556_length_64437_cov_9.328896", + "description": "", + "gc_content": 0.68127, + "length": 64437, + "md5": "5560e1784915549c5f26ae9fcaf922a7", + "name": "NODE_556_length_64437_cov_9.328896" + }, + "NODE_5582_length_8141_cov_75.632698": { + "contig_id": "NODE_5582_length_8141_cov_75.632698", + "description": "", + "gc_content": 0.3405, + "length": 8141, + "md5": "6eaa7e444383fee01b3fc36a13d5eb2f", + "name": "NODE_5582_length_8141_cov_75.632698" + }, + "NODE_561_length_63899_cov_28.003931": { + "Ncount": 100, + "contig_id": "NODE_561_length_63899_cov_28.003931", + "description": "", + "gc_content": 0.64197, + "length": 63899, + "md5": "6b3306aeaf97fb140b9b5631131e4a24", + "name": "NODE_561_length_63899_cov_28.003931" + }, + "NODE_564_length_63499_cov_126.133236": { + "Ncount": 100, + "contig_id": "NODE_564_length_63499_cov_126.133236", + "description": "", + "gc_content": 0.64615, + "length": 63499, + "md5": "66bc6f0fe172c952b1a5ac42c09acfa9", + "name": "NODE_564_length_63499_cov_126.133236" + }, + "NODE_567_length_63352_cov_30.361613": { + "Ncount": 400, + "contig_id": "NODE_567_length_63352_cov_30.361613", + "description": "", + "gc_content": 0.62811, + "length": 63352, + "md5": "7f657cc58e164978c37a0f1523998819", + "name": "NODE_567_length_63352_cov_30.361613" + }, + "NODE_569_length_63253_cov_29.829947": { + "contig_id": "NODE_569_length_63253_cov_29.829947", + "description": "", + "gc_content": 0.64454, + "length": 63253, + "md5": "7c0ec2e33b6ff6a386c90395e5865ae8", + "name": "NODE_569_length_63253_cov_29.829947" + }, + "NODE_5780_length_7884_cov_87.887470": { + "contig_id": "NODE_5780_length_7884_cov_87.887470", + "description": "", + "gc_content": 0.62976, + "length": 7884, + "md5": "02326e3179426c15ebac2d58667bbb46", + "name": "NODE_5780_length_7884_cov_87.887470" + }, + "NODE_579_length_62774_cov_18.179276": { + "Ncount": 200, + "contig_id": "NODE_579_length_62774_cov_18.179276", + "description": "", + "gc_content": 0.39741, + "length": 62774, + "md5": "ee572e3a738e4d502d8609b0d33d99eb", + "name": "NODE_579_length_62774_cov_18.179276" + }, + "NODE_57_length_231805_cov_124.103978": { + "Ncount": 500, + "contig_id": "NODE_57_length_231805_cov_124.103978", + "description": "", + "gc_content": 0.64216, + "length": 231805, + "md5": "85f199bbdb90a0e4466582e4cef3f78a", + "name": "NODE_57_length_231805_cov_124.103978" + }, + "NODE_5816_length_7835_cov_34.387018": { + "Ncount": 10, + "contig_id": "NODE_5816_length_7835_cov_34.387018", + "description": "", + "gc_content": 0.68462, + "length": 7835, + "md5": "65fa108ecce93b4a0804ab914317772e", + "name": "NODE_5816_length_7835_cov_34.387018" + }, + "NODE_582_length_62460_cov_126.496915": { + "Ncount": 200, + "contig_id": "NODE_582_length_62460_cov_126.496915", + "description": "", + "gc_content": 0.63602, + "length": 62460, + "md5": "b9307ae81474bf1441134df29b8b5535", + "name": "NODE_582_length_62460_cov_126.496915" + }, + "NODE_586_length_62359_cov_143.073751": { + "contig_id": "NODE_586_length_62359_cov_143.073751", + "description": "", + "gc_content": 0.63949, + "length": 62359, + "md5": "0a12b3d5e0743407dc178d00be882dac", + "name": "NODE_586_length_62359_cov_143.073751" + }, + "NODE_592_length_61638_cov_130.143903": { + "Ncount": 100, + "contig_id": "NODE_592_length_61638_cov_130.143903", + "description": "", + "gc_content": 0.64142, + "length": 61638, + "md5": "b4e3fb6dc818ff22cb46d7fa8d75c088", + "name": "NODE_592_length_61638_cov_130.143903" + }, + "NODE_5940_length_7684_cov_29.465199": { + "contig_id": "NODE_5940_length_7684_cov_29.465199", + "description": "", + "gc_content": 0.63782, + "length": 7684, + "md5": "951076e273f0516972fef73553d9cf6e", + "name": "NODE_5940_length_7684_cov_29.465199" + }, + "NODE_5954_length_7670_cov_81.032830": { + "contig_id": "NODE_5954_length_7670_cov_81.032830", + "description": "", + "gc_content": 0.60352, + "length": 7670, + "md5": "4da7dde0a0ddcdba14f63a795585854c", + "name": "NODE_5954_length_7670_cov_81.032830" + }, + "NODE_5973_length_7649_cov_125.028707": { + "contig_id": "NODE_5973_length_7649_cov_125.028707", + "description": "", + "gc_content": 0.66662, + "length": 7649, + "md5": "9be1cb2716ca7ebbdb0de9a76a434621", + "name": "NODE_5973_length_7649_cov_125.028707" + }, + "NODE_5989_length_7628_cov_31.501783": { + "contig_id": "NODE_5989_length_7628_cov_31.501783", + "description": "", + "gc_content": 0.64696, + "length": 7628, + "md5": "4b720044895d0efe072bac21ddccb37e", + "name": "NODE_5989_length_7628_cov_31.501783" + }, + "NODE_6019_length_7599_cov_16.769486": { + "contig_id": "NODE_6019_length_7599_cov_16.769486", + "description": "", + "gc_content": 0.49401, + "length": 7599, + "md5": "a68441f462d746b118e9460d5e057da5", + "name": "NODE_6019_length_7599_cov_16.769486" + }, + "NODE_6083_length_7535_cov_29.077674": { + "contig_id": "NODE_6083_length_7535_cov_29.077674", + "description": "", + "gc_content": 0.32223, + "length": 7535, + "md5": "c47b4d04f186bfa760c1409fbaa25d7a", + "name": "NODE_6083_length_7535_cov_29.077674" + }, + "NODE_6101_length_7514_cov_34.274165": { + "contig_id": "NODE_6101_length_7514_cov_34.274165", + "description": "", + "gc_content": 0.4819, + "length": 7514, + "md5": "c1b4a4bbf295884caf291d3c561f5895", + "name": "NODE_6101_length_7514_cov_34.274165" + }, + "NODE_6120_length_7490_cov_18.961802": { + "contig_id": "NODE_6120_length_7490_cov_18.961802", + "description": "", + "gc_content": 0.59987, + "length": 7490, + "md5": "6b2c92187ddeb9279a7584e0a2441bc0", + "name": "NODE_6120_length_7490_cov_18.961802" + }, + "NODE_6122_length_7486_cov_92.462522": { + "contig_id": "NODE_6122_length_7486_cov_92.462522", + "description": "", + "gc_content": 0.35373, + "length": 7486, + "md5": "cc2e7417cf41c1962a52fc27b5813781", + "name": "NODE_6122_length_7486_cov_92.462522" + }, + "NODE_614_length_60012_cov_125.554080": { + "Ncount": 100, + "contig_id": "NODE_614_length_60012_cov_125.554080", + "description": "", + "gc_content": 0.62219, + "length": 60012, + "md5": "f52ef4bb542a84cef213cd14b481956c", + "name": "NODE_614_length_60012_cov_125.554080" + }, + "NODE_617_length_59797_cov_619.548877": { + "contig_id": "NODE_617_length_59797_cov_619.548877", + "description": "", + "gc_content": 0.64386, + "length": 59797, + "md5": "c2615282a13796dc89ef2eded4a71fa7", + "name": "NODE_617_length_59797_cov_619.548877" + }, + "NODE_6194_length_7400_cov_637.468346": { + "contig_id": "NODE_6194_length_7400_cov_637.468346", + "description": "", + "gc_content": 0.5927, + "length": 7400, + "md5": "8e3e39cf815e3e0eb7ebd56ced1d237f", + "name": "NODE_6194_length_7400_cov_637.468346" + }, + "NODE_619_length_59608_cov_150.524172": { + "Ncount": 100, + "contig_id": "NODE_619_length_59608_cov_150.524172", + "description": "", + "gc_content": 0.38679, + "length": 59608, + "md5": "e8d5d5d77accf9d5849bc3b9104456c4", + "name": "NODE_619_length_59608_cov_150.524172" + }, + "NODE_61_length_215940_cov_14.853014": { + "Ncount": 100, + "contig_id": "NODE_61_length_215940_cov_14.853014", + "description": "", + "gc_content": 0.4918, + "length": 215940, + "md5": "87c0c5e1545bac1d9461c7de0c54caf8", + "name": "NODE_61_length_215940_cov_14.853014" + }, + "NODE_620_length_59372_cov_29.672843": { + "contig_id": "NODE_620_length_59372_cov_29.672843", + "description": "", + "gc_content": 0.64588, + "length": 59372, + "md5": "f897a31a47d6049f2c7301f9e01ab437", + "name": "NODE_620_length_59372_cov_29.672843" + }, + "NODE_6279_length_7331_cov_107.395410": { + "contig_id": "NODE_6279_length_7331_cov_107.395410", + "description": "", + "gc_content": 0.60483, + "length": 7331, + "md5": "ce2655c5c2776996ef2e8053cfba2fde", + "name": "NODE_6279_length_7331_cov_107.395410" + }, + "NODE_628_length_58947_cov_30.965275": { + "contig_id": "NODE_628_length_58947_cov_30.965275", + "description": "", + "gc_content": 0.63533, + "length": 58947, + "md5": "0fed33f8b6d3dd0453142303a45b5e6b", + "name": "NODE_628_length_58947_cov_30.965275" + }, + "NODE_6291_length_7310_cov_111.403997": { + "contig_id": "NODE_6291_length_7310_cov_111.403997", + "description": "", + "gc_content": 0.38509, + "length": 7310, + "md5": "f77afb8e9cc4bd84f408c50373ee9ca7", + "name": "NODE_6291_length_7310_cov_111.403997" + }, + "NODE_629_length_58942_cov_160.143410": { + "contig_id": "NODE_629_length_58942_cov_160.143410", + "description": "", + "gc_content": 0.50349, + "length": 58942, + "md5": "75ef7d2c424f65593e6b5cb895082941", + "name": "NODE_629_length_58942_cov_160.143410" + }, + "NODE_6325_length_7276_cov_68.142086": { + "contig_id": "NODE_6325_length_7276_cov_68.142086", + "description": "", + "gc_content": 0.61943, + "length": 7276, + "md5": "88ac2931f6e1ad2d085edfbac3178824", + "name": "NODE_6325_length_7276_cov_68.142086" + }, + "NODE_6355_length_7245_cov_6.010709": { + "contig_id": "NODE_6355_length_7245_cov_6.010709", + "description": "", + "gc_content": 0.67633, + "length": 7245, + "md5": "b41a915b5659f3f95edbf5e7eb213f8a", + "name": "NODE_6355_length_7245_cov_6.010709" + }, + "NODE_6359_length_7238_cov_166.053181": { + "contig_id": "NODE_6359_length_7238_cov_166.053181", + "description": "", + "gc_content": 0.40094, + "length": 7238, + "md5": "2b762f59b881d3f5195c8ad321c72978", + "name": "NODE_6359_length_7238_cov_166.053181" + }, + "NODE_636_length_58624_cov_15.779542": { + "contig_id": "NODE_636_length_58624_cov_15.779542", + "description": "", + "gc_content": 0.40576, + "length": 58624, + "md5": "751218e17d1567b7f63e38bf94943dde", + "name": "NODE_636_length_58624_cov_15.779542" + }, + "NODE_6398_length_7202_cov_17.312859": { + "contig_id": "NODE_6398_length_7202_cov_17.312859", + "description": "", + "gc_content": 0.33546, + "length": 7202, + "md5": "dd0ab1acd52f669b84370a685386c698", + "name": "NODE_6398_length_7202_cov_17.312859" + }, + "NODE_63_length_214850_cov_20.328620": { + "contig_id": "NODE_63_length_214850_cov_20.328620", + "description": "", + "gc_content": 0.40235, + "length": 214850, + "md5": "638a479696d53a648738ab61139b95df", + "name": "NODE_63_length_214850_cov_20.328620" + }, + "NODE_6401_length_7198_cov_141.483690": { + "contig_id": "NODE_6401_length_7198_cov_141.483690", + "description": "", + "gc_content": 0.36218, + "length": 7198, + "md5": "590d888d9a6339ab260824be29e1baea", + "name": "NODE_6401_length_7198_cov_141.483690" + }, + "NODE_6405_length_7196_cov_180.984316": { + "contig_id": "NODE_6405_length_7196_cov_180.984316", + "description": "", + "gc_content": 0.3923, + "length": 7196, + "md5": "aa4dbe76fa3d25550f4cd617d2dca01d", + "name": "NODE_6405_length_7196_cov_180.984316" + }, + "NODE_648_length_57727_cov_128.855684": { + "Ncount": 300, + "contig_id": "NODE_648_length_57727_cov_128.855684", + "description": "", + "gc_content": 0.63631, + "length": 57727, + "md5": "54154dbd0064a475cecad5a920f979b7", + "name": "NODE_648_length_57727_cov_128.855684" + }, + "NODE_651_length_57656_cov_142.729571": { + "contig_id": "NODE_651_length_57656_cov_142.729571", + "description": "", + "gc_content": 0.52674, + "length": 57656, + "md5": "7f525a078c4af9f969ae8a05fd113bd2", + "name": "NODE_651_length_57656_cov_142.729571" + }, + "NODE_6542_length_7049_cov_520.103231": { + "contig_id": "NODE_6542_length_7049_cov_520.103231", + "description": "", + "gc_content": 0.6364, + "length": 7049, + "md5": "290ff9efd7555fa7266dedb1eb7b3ea1", + "name": "NODE_6542_length_7049_cov_520.103231" + }, + "NODE_6566_length_7030_cov_72.684301": { + "contig_id": "NODE_6566_length_7030_cov_72.684301", + "description": "", + "gc_content": 0.40939, + "length": 7030, + "md5": "7d44d9b910d6e9483fbc285772dd2c55", + "name": "NODE_6566_length_7030_cov_72.684301" + }, + "NODE_6573_length_7017_cov_112.783252": { + "contig_id": "NODE_6573_length_7017_cov_112.783252", + "description": "", + "gc_content": 0.61622, + "length": 7017, + "md5": "b90d8bd372713235195fb96788d16d8e", + "name": "NODE_6573_length_7017_cov_112.783252" + }, + "NODE_659_length_57295_cov_15.796820": { + "Ncount": 100, + "contig_id": "NODE_659_length_57295_cov_15.796820", + "description": "", + "gc_content": 0.40384, + "length": 57295, + "md5": "f347bca2a8f3b7a70c530a6dbd42968c", + "name": "NODE_659_length_57295_cov_15.796820" + }, + "NODE_6609_length_6984_cov_24.225285": { + "contig_id": "NODE_6609_length_6984_cov_24.225285", + "description": "", + "gc_content": 0.63631, + "length": 6984, + "md5": "ea76a534ed362b96e159678b89330be0", + "name": "NODE_6609_length_6984_cov_24.225285" + }, + "NODE_6618_length_6974_cov_8.079347": { + "contig_id": "NODE_6618_length_6974_cov_8.079347", + "description": "", + "gc_content": 0.68827, + "length": 6974, + "md5": "c1d13b5df9941628f66d893788c5d073", + "name": "NODE_6618_length_6974_cov_8.079347" + }, + "NODE_6672_length_6919_cov_614.467075": { + "contig_id": "NODE_6672_length_6919_cov_614.467075", + "description": "", + "gc_content": 0.59431, + "length": 6919, + "md5": "345014a26f92351bee0dc1f250adea58", + "name": "NODE_6672_length_6919_cov_614.467075" + }, + "NODE_6693_length_6890_cov_85.482809": { + "contig_id": "NODE_6693_length_6890_cov_85.482809", + "description": "", + "gc_content": 0.65588, + "length": 6890, + "md5": "592f82300005a33bfad0a7dd2a21e7c3", + "name": "NODE_6693_length_6890_cov_85.482809" + }, + "NODE_6699_length_6884_cov_7.543418": { + "contig_id": "NODE_6699_length_6884_cov_7.543418", + "description": "", + "gc_content": 0.67882, + "length": 6884, + "md5": "b2549e035d0ebbe84af43e4e21197d72", + "name": "NODE_6699_length_6884_cov_7.543418" + }, + "NODE_6731_length_6854_cov_17.630534": { + "contig_id": "NODE_6731_length_6854_cov_17.630534", + "description": "", + "gc_content": 0.47651, + "length": 6854, + "md5": "6726dcd340ec9dac1d8b0a4aa6443741", + "name": "NODE_6731_length_6854_cov_17.630534" + }, + "NODE_6750_length_6834_cov_7.684319": { + "contig_id": "NODE_6750_length_6834_cov_7.684319", + "description": "", + "gc_content": 0.64516, + "length": 6834, + "md5": "c0a39065df04857c3c3b966a24442756", + "name": "NODE_6750_length_6834_cov_7.684319" + }, + "NODE_6751_length_6833_cov_20.854529": { + "contig_id": "NODE_6751_length_6833_cov_20.854529", + "description": "", + "gc_content": 0.46583, + "length": 6833, + "md5": "fd2b887ba74656ba118a0990c302bb11", + "name": "NODE_6751_length_6833_cov_20.854529" + }, + "NODE_6774_length_6802_cov_29.489551": { + "contig_id": "NODE_6774_length_6802_cov_29.489551", + "description": "", + "gc_content": 0.62864, + "length": 6802, + "md5": "61e89914a79b2d15e5b157085dfec790", + "name": "NODE_6774_length_6802_cov_29.489551" + }, + "NODE_679_length_56544_cov_113.413957": { + "Ncount": 200, + "contig_id": "NODE_679_length_56544_cov_113.413957", + "description": "", + "gc_content": 0.64396, + "length": 56544, + "md5": "714bab70ee3be5061e1a5eae9f49713f", + "name": "NODE_679_length_56544_cov_113.413957" + }, + "NODE_680_length_56331_cov_153.990209": { + "contig_id": "NODE_680_length_56331_cov_153.990209", + "description": "", + "gc_content": 0.5017, + "length": 56331, + "md5": "ff164cc73fa48d87e6889cdacc80dab2", + "name": "NODE_680_length_56331_cov_153.990209" + }, + "NODE_6810_length_6767_cov_119.059893": { + "contig_id": "NODE_6810_length_6767_cov_119.059893", + "description": "", + "gc_content": 0.65553, + "length": 6767, + "md5": "b1259a977e2a5fb462815b1c373ab9e5", + "name": "NODE_6810_length_6767_cov_119.059893" + }, + "NODE_683_length_56170_cov_132.757658": { + "Ncount": 100, + "contig_id": "NODE_683_length_56170_cov_132.757658", + "description": "", + "gc_content": 0.64079, + "length": 56170, + "md5": "192be8d0fec1a5fad860ebd06c47d916", + "name": "NODE_683_length_56170_cov_132.757658" + }, + "NODE_685_length_56139_cov_106.838403": { + "contig_id": "NODE_685_length_56139_cov_106.838403", + "description": "", + "gc_content": 0.64787, + "length": 56139, + "md5": "b3b99a4a45cfcee5afcd180bbbcb1ea0", + "name": "NODE_685_length_56139_cov_106.838403" + }, + "NODE_6891_length_6698_cov_15.409002": { + "contig_id": "NODE_6891_length_6698_cov_15.409002", + "description": "", + "gc_content": 0.50567, + "length": 6698, + "md5": "206126a474a81151d8e39bf55ab39bd4", + "name": "NODE_6891_length_6698_cov_15.409002" + }, + "NODE_690_length_55970_cov_31.828937": { + "contig_id": "NODE_690_length_55970_cov_31.828937", + "description": "", + "gc_content": 0.64351, + "length": 55970, + "md5": "cb9f6eb80487958ddbc5670583b4d15a", + "name": "NODE_690_length_55970_cov_31.828937" + }, + "NODE_691_length_55900_cov_15.467025": { + "Ncount": 200, + "contig_id": "NODE_691_length_55900_cov_15.467025", + "description": "", + "gc_content": 0.41301, + "length": 55900, + "md5": "1afc97a71676ddc3e654325f4c8becba", + "name": "NODE_691_length_55900_cov_15.467025" + }, + "NODE_6920_length_6679_cov_11.783514": { + "contig_id": "NODE_6920_length_6679_cov_11.783514", + "description": "", + "gc_content": 0.36113, + "length": 6679, + "md5": "59d41204e12cb49dc270eb473bfc72ea", + "name": "NODE_6920_length_6679_cov_11.783514" + }, + "NODE_6925_length_6674_cov_141.037317": { + "contig_id": "NODE_6925_length_6674_cov_141.037317", + "description": "", + "gc_content": 0.29353, + "length": 6674, + "md5": "6593862f91218f09c936ce952fd12964", + "name": "NODE_6925_length_6674_cov_141.037317" + }, + "NODE_6939_length_6655_cov_8.166364": { + "contig_id": "NODE_6939_length_6655_cov_8.166364", + "description": "", + "gc_content": 0.68745, + "length": 6655, + "md5": "deda3a8b52d3f61441d6bf5a6e2ae0b1", + "name": "NODE_6939_length_6655_cov_8.166364" + }, + "NODE_697_length_55642_cov_21.635454": { + "contig_id": "NODE_697_length_55642_cov_21.635454", + "description": "", + "gc_content": 0.39237, + "length": 55642, + "md5": "b056176d1cba2c4e963950f02a576684", + "name": "NODE_697_length_55642_cov_21.635454" + }, + "NODE_6_length_783337_cov_571.650609": { + "Ncount": 20, + "contig_id": "NODE_6_length_783337_cov_571.650609", + "description": "", + "gc_content": 0.63842, + "length": 783337, + "md5": "16fbf10493b5eabf53e06e532ca2f3b8", + "name": "NODE_6_length_783337_cov_571.650609" + }, + "NODE_7020_length_6575_cov_8.774693": { + "contig_id": "NODE_7020_length_6575_cov_8.774693", + "description": "", + "gc_content": 0.69703, + "length": 6575, + "md5": "612adfcbbb8c98fa8b588ecd91b9485b", + "name": "NODE_7020_length_6575_cov_8.774693" + }, + "NODE_7029_length_6565_cov_242.124578": { + "contig_id": "NODE_7029_length_6565_cov_242.124578", + "description": "", + "gc_content": 0.38979, + "length": 6565, + "md5": "23b3f7c7febfee6dc1057eec7fe036a2", + "name": "NODE_7029_length_6565_cov_242.124578" + }, + "NODE_7036_length_6560_cov_117.717602": { + "Ncount": 100, + "contig_id": "NODE_7036_length_6560_cov_117.717602", + "description": "", + "gc_content": 0.6503, + "length": 6560, + "md5": "67904acedce0a28116dcbaaa50e76718", + "name": "NODE_7036_length_6560_cov_117.717602" + }, + "NODE_7047_length_6551_cov_115.536638": { + "contig_id": "NODE_7047_length_6551_cov_115.536638", + "description": "", + "gc_content": 0.64341, + "length": 6551, + "md5": "48aaac078e013e007d264aa4b6ad2818", + "name": "NODE_7047_length_6551_cov_115.536638" + }, + "NODE_706_length_55137_cov_29.516394": { + "contig_id": "NODE_706_length_55137_cov_29.516394", + "description": "", + "gc_content": 0.63834, + "length": 55137, + "md5": "63830ab00e23f627d3562c07c2264ae4", + "name": "NODE_706_length_55137_cov_29.516394" + }, + "NODE_717_length_54760_cov_8.356110": { + "contig_id": "NODE_717_length_54760_cov_8.356110", + "description": "", + "gc_content": 0.66063, + "length": 54760, + "md5": "da86e9b93e649ec725338f8506a9f7ee", + "name": "NODE_717_length_54760_cov_8.356110" + }, + "NODE_7242_length_6394_cov_25.830573": { + "contig_id": "NODE_7242_length_6394_cov_25.830573", + "description": "", + "gc_content": 0.67047, + "length": 6394, + "md5": "c86d543f3b1c67fd4b0879990d7716a6", + "name": "NODE_7242_length_6394_cov_25.830573" + }, + "NODE_7245_length_6391_cov_14.648043": { + "contig_id": "NODE_7245_length_6391_cov_14.648043", + "description": "", + "gc_content": 0.33328, + "length": 6391, + "md5": "e36466af321ed33953f468cc145ecc9c", + "name": "NODE_7245_length_6391_cov_14.648043" + }, + "NODE_7275_length_6364_cov_129.431923": { + "contig_id": "NODE_7275_length_6364_cov_129.431923", + "description": "", + "gc_content": 0.62665, + "length": 6364, + "md5": "032ae8bdf751a8dc7aeb938271a7fd79", + "name": "NODE_7275_length_6364_cov_129.431923" + }, + "NODE_7282_length_6355_cov_27.245397": { + "Ncount": 100, + "contig_id": "NODE_7282_length_6355_cov_27.245397", + "description": "", + "gc_content": 0.39449, + "length": 6355, + "md5": "a510f1a0285d6442ae55d6cc6e68e894", + "name": "NODE_7282_length_6355_cov_27.245397" + }, + "NODE_736_length_53493_cov_9.202945": { + "Ncount": 10, + "contig_id": "NODE_736_length_53493_cov_9.202945", + "description": "", + "gc_content": 0.67607, + "length": 53493, + "md5": "12d3a4a6c468173c2f8d75770bf1a7f3", + "name": "NODE_736_length_53493_cov_9.202945" + }, + "NODE_7395_length_6272_cov_37.732508": { + "contig_id": "NODE_7395_length_6272_cov_37.732508", + "description": "", + "gc_content": 0.53492, + "length": 6272, + "md5": "1b1c42415c00b5b577a0189ca8ead1c9", + "name": "NODE_7395_length_6272_cov_37.732508" + }, + "NODE_7411_length_6260_cov_45.889122": { + "contig_id": "NODE_7411_length_6260_cov_45.889122", + "description": "", + "gc_content": 0.59185, + "length": 6260, + "md5": "05c1b8480e0f4da9b771e47eefd2dd76", + "name": "NODE_7411_length_6260_cov_45.889122" + }, + "NODE_7423_length_6253_cov_140.303162": { + "contig_id": "NODE_7423_length_6253_cov_140.303162", + "description": "", + "gc_content": 0.38094, + "length": 6253, + "md5": "08a31f3bec01fdd9fa1d47a4a7504f80", + "name": "NODE_7423_length_6253_cov_140.303162" + }, + "NODE_743_length_53171_cov_28.472927": { + "contig_id": "NODE_743_length_53171_cov_28.472927", + "description": "", + "gc_content": 0.64595, + "length": 53171, + "md5": "71e684c40ddcc83b92699b213bd6a227", + "name": "NODE_743_length_53171_cov_28.472927" + }, + "NODE_7461_length_6223_cov_178.169423": { + "contig_id": "NODE_7461_length_6223_cov_178.169423", + "description": "", + "gc_content": 0.47951, + "length": 6223, + "md5": "5aa9ba857bb48cddeaba6dd088619285", + "name": "NODE_7461_length_6223_cov_178.169423" + }, + "NODE_7482_length_6205_cov_7.075610": { + "contig_id": "NODE_7482_length_6205_cov_7.075610", + "description": "", + "gc_content": 0.67446, + "length": 6205, + "md5": "cc08621722ac084b262a716cfd1b1181", + "name": "NODE_7482_length_6205_cov_7.075610" + }, + "NODE_7515_length_6176_cov_123.871426": { + "contig_id": "NODE_7515_length_6176_cov_123.871426", + "description": "", + "gc_content": 0.64718, + "length": 6176, + "md5": "088f2f3c73eb43499a10da1e6519ce32", + "name": "NODE_7515_length_6176_cov_123.871426" + }, + "NODE_754_length_52444_cov_15.900590": { + "contig_id": "NODE_754_length_52444_cov_15.900590", + "description": "", + "gc_content": 0.39888, + "length": 52444, + "md5": "ca5c522955de94471a6030d818573acc", + "name": "NODE_754_length_52444_cov_15.900590" + }, + "NODE_7557_length_6149_cov_7.029209": { + "Ncount": 100, + "contig_id": "NODE_7557_length_6149_cov_7.029209", + "description": "", + "gc_content": 0.6767, + "length": 6149, + "md5": "0cfc7d374caa141093adf819dcd8a391", + "name": "NODE_7557_length_6149_cov_7.029209" + }, + "NODE_755_length_52404_cov_8.757340": { + "contig_id": "NODE_755_length_52404_cov_8.757340", + "description": "", + "gc_content": 0.65352, + "length": 52404, + "md5": "dbe0d05dd1eb14a539fcb9ed26d81330", + "name": "NODE_755_length_52404_cov_8.757340" + }, + "NODE_7589_length_6125_cov_17.656507": { + "contig_id": "NODE_7589_length_6125_cov_17.656507", + "description": "", + "gc_content": 0.39249, + "length": 6125, + "md5": "e4af8c2df3a30d02e4879a1e015e3d4c", + "name": "NODE_7589_length_6125_cov_17.656507" + }, + "NODE_7625_length_6093_cov_31.955780": { + "contig_id": "NODE_7625_length_6093_cov_31.955780", + "description": "", + "gc_content": 0.52421, + "length": 6093, + "md5": "f44982f2c2f6e810e226a787b3350d5d", + "name": "NODE_7625_length_6093_cov_31.955780" + }, + "NODE_766_length_51854_cov_15.814205": { + "contig_id": "NODE_766_length_51854_cov_15.814205", + "description": "", + "gc_content": 0.48673, + "length": 51854, + "md5": "f0aeaa15df6545a5d211b61b3fad324a", + "name": "NODE_766_length_51854_cov_15.814205" + }, + "NODE_770_length_51760_cov_137.383483": { + "Ncount": 100, + "contig_id": "NODE_770_length_51760_cov_137.383483", + "description": "", + "gc_content": 0.64865, + "length": 51760, + "md5": "4075b62da867e57cac014a79af497bf4", + "name": "NODE_770_length_51760_cov_137.383483" + }, + "NODE_7724_length_6015_cov_53.270638": { + "contig_id": "NODE_7724_length_6015_cov_53.270638", + "description": "", + "gc_content": 0.62494, + "length": 6015, + "md5": "df254986826d8ef211404f99ac8d1ce4", + "name": "NODE_7724_length_6015_cov_53.270638" + }, + "NODE_774_length_51547_cov_122.440049": { + "contig_id": "NODE_774_length_51547_cov_122.440049", + "description": "", + "gc_content": 0.64605, + "length": 51547, + "md5": "c0410b616b52eaac7dc223f85d295893", + "name": "NODE_774_length_51547_cov_122.440049" + }, + "NODE_7844_length_5920_cov_57.136061": { + "contig_id": "NODE_7844_length_5920_cov_57.136061", + "description": "", + "gc_content": 0.61318, + "length": 5920, + "md5": "1dc75c731ac68a159578d414fe21f00c", + "name": "NODE_7844_length_5920_cov_57.136061" + }, + "NODE_7850_length_5916_cov_32.574475": { + "Ncount": 57, + "contig_id": "NODE_7850_length_5916_cov_32.574475", + "description": "", + "gc_content": 0.63455, + "length": 5916, + "md5": "673e9dd5826e566507f1e9035fb49ee9", + "name": "NODE_7850_length_5916_cov_32.574475" + }, + "NODE_789_length_50826_cov_143.577140": { + "contig_id": "NODE_789_length_50826_cov_143.577140", + "description": "", + "gc_content": 0.53087, + "length": 50826, + "md5": "57e5ee62107e62fac5b8a372f7bea0c4", + "name": "NODE_789_length_50826_cov_143.577140" + }, + "NODE_78_length_199467_cov_625.100716": { + "Ncount": 10, + "contig_id": "NODE_78_length_199467_cov_625.100716", + "description": "", + "gc_content": 0.63796, + "length": 199467, + "md5": "69c1e9843c77931c1800c81d49a6defd", + "name": "NODE_78_length_199467_cov_625.100716" + }, + "NODE_791_length_50791_cov_18.057750": { + "contig_id": "NODE_791_length_50791_cov_18.057750", + "description": "", + "gc_content": 0.38948, + "length": 50791, + "md5": "49d89fbb62594ff3706172c565fab800", + "name": "NODE_791_length_50791_cov_18.057750" + }, + "NODE_7925_length_5859_cov_5.237939": { + "contig_id": "NODE_7925_length_5859_cov_5.237939", + "description": "", + "gc_content": 0.6665, + "length": 5859, + "md5": "6f10a3913dc1364afb6b880c21411f45", + "name": "NODE_7925_length_5859_cov_5.237939" + }, + "NODE_7944_length_5850_cov_23.809491": { + "contig_id": "NODE_7944_length_5850_cov_23.809491", + "description": "", + "gc_content": 0.35179, + "length": 5850, + "md5": "dbd62acecb19aeef6e58b207ffbb2251", + "name": "NODE_7944_length_5850_cov_23.809491" + }, + "NODE_7968_length_5840_cov_67.807260": { + "contig_id": "NODE_7968_length_5840_cov_67.807260", + "description": "", + "gc_content": 0.62055, + "length": 5840, + "md5": "2265975e5e925da422bfa5838b94478c", + "name": "NODE_7968_length_5840_cov_67.807260" + }, + "NODE_7985_length_5829_cov_13.211812": { + "contig_id": "NODE_7985_length_5829_cov_13.211812", + "description": "", + "gc_content": 0.41311, + "length": 5829, + "md5": "81ee3b247140f5c617f275c3d214fcda", + "name": "NODE_7985_length_5829_cov_13.211812" + }, + "NODE_8023_length_5806_cov_27.846809": { + "contig_id": "NODE_8023_length_5806_cov_27.846809", + "description": "", + "gc_content": 0.65295, + "length": 5806, + "md5": "628d33d81b17f61974011f6f0a109d56", + "name": "NODE_8023_length_5806_cov_27.846809" + }, + "NODE_8043_length_5797_cov_10.840300": { + "contig_id": "NODE_8043_length_5797_cov_10.840300", + "description": "", + "gc_content": 0.39451, + "length": 5797, + "md5": "3caf3f28a63ea1418f78a66c20cc0ea0", + "name": "NODE_8043_length_5797_cov_10.840300" + }, + "NODE_807_length_49891_cov_134.850971": { + "contig_id": "NODE_807_length_49891_cov_134.850971", + "description": "", + "gc_content": 0.38684, + "length": 49891, + "md5": "4732474d838de7ddfacf4b322aa475fb", + "name": "NODE_807_length_49891_cov_134.850971" + }, + "NODE_80_length_197697_cov_116.540361": { + "Ncount": 100, + "contig_id": "NODE_80_length_197697_cov_116.540361", + "description": "", + "gc_content": 0.63843, + "length": 197697, + "md5": "1f95c7c74e2c34362cd6ffbdb764b913", + "name": "NODE_80_length_197697_cov_116.540361" + }, + "NODE_812_length_49703_cov_16.488801": { + "contig_id": "NODE_812_length_49703_cov_16.488801", + "description": "", + "gc_content": 0.49061, + "length": 49703, + "md5": "d9ca2571e2838f6e8ecd1add669fad15", + "name": "NODE_812_length_49703_cov_16.488801" + }, + "NODE_8162_length_5726_cov_35.282137": { + "Ncount": 31, + "contig_id": "NODE_8162_length_5726_cov_35.282137", + "description": "", + "gc_content": 0.60933, + "length": 5726, + "md5": "9fd4410765a000b4c538dd5755945791", + "name": "NODE_8162_length_5726_cov_35.282137" + }, + "NODE_816_length_49547_cov_129.349370": { + "contig_id": "NODE_816_length_49547_cov_129.349370", + "description": "", + "gc_content": 0.39066, + "length": 49547, + "md5": "a37ffc8c7e6c090c003eb014c10d5da5", + "name": "NODE_816_length_49547_cov_129.349370" + }, + "NODE_81_length_197616_cov_8.798715": { + "contig_id": "NODE_81_length_197616_cov_8.798715", + "description": "", + "gc_content": 0.67061, + "length": 197616, + "md5": "bb6e4325aae28b71eac41fac3edc2fc0", + "name": "NODE_81_length_197616_cov_8.798715" + }, + "NODE_8207_length_5693_cov_39.400319": { + "contig_id": "NODE_8207_length_5693_cov_39.400319", + "description": "", + "gc_content": 0.6183, + "length": 5693, + "md5": "9c44c619b46ad5776a56437ddd66d5fe", + "name": "NODE_8207_length_5693_cov_39.400319" + }, + "NODE_8212_length_5691_cov_52.415366": { + "contig_id": "NODE_8212_length_5691_cov_52.415366", + "description": "", + "gc_content": 0.57143, + "length": 5691, + "md5": "c375824813e0173b9ae6d8b5d4c727b9", + "name": "NODE_8212_length_5691_cov_52.415366" + }, + "NODE_8229_length_5683_cov_15.362296": { + "contig_id": "NODE_8229_length_5683_cov_15.362296", + "description": "", + "gc_content": 0.40049, + "length": 5683, + "md5": "aa2f59422e0454f65d84158161fa8de0", + "name": "NODE_8229_length_5683_cov_15.362296" + }, + "NODE_822_length_49194_cov_15.369625": { + "contig_id": "NODE_822_length_49194_cov_15.369625", + "description": "", + "gc_content": 0.48614, + "length": 49194, + "md5": "7ff4ad4cd68c6262ea4e0931910e0cec", + "name": "NODE_822_length_49194_cov_15.369625" + }, + "NODE_824_length_49162_cov_133.993484": { + "Ncount": 200, + "contig_id": "NODE_824_length_49162_cov_133.993484", + "description": "", + "gc_content": 0.64047, + "length": 49162, + "md5": "154f0e8193b0695dd4638e363ef2545d", + "name": "NODE_824_length_49162_cov_133.993484" + }, + "NODE_8279_length_5657_cov_125.824348": { + "contig_id": "NODE_8279_length_5657_cov_125.824348", + "description": "", + "gc_content": 0.69524, + "length": 5657, + "md5": "f6b7b49ea8afbaf6c0c87980f69015ee", + "name": "NODE_8279_length_5657_cov_125.824348" + }, + "NODE_8280_length_5656_cov_14.131048": { + "contig_id": "NODE_8280_length_5656_cov_14.131048", + "description": "", + "gc_content": 0.37571, + "length": 5656, + "md5": "6b6103c93f75d268ce209aea3e330470", + "name": "NODE_8280_length_5656_cov_14.131048" + }, + "NODE_8288_length_5650_cov_25.592493": { + "contig_id": "NODE_8288_length_5650_cov_25.592493", + "description": "", + "gc_content": 0.60814, + "length": 5650, + "md5": "7699719a3a0ca1caedfca223daa3f0c4", + "name": "NODE_8288_length_5650_cov_25.592493" + }, + "NODE_831_length_48890_cov_126.042981": { + "contig_id": "NODE_831_length_48890_cov_126.042981", + "description": "", + "gc_content": 0.63408, + "length": 48890, + "md5": "d42c8655358028205bdaacd07cb9986e", + "name": "NODE_831_length_48890_cov_126.042981" + }, + "NODE_833_length_48710_cov_139.315569": { + "contig_id": "NODE_833_length_48710_cov_139.315569", + "description": "", + "gc_content": 0.6526, + "length": 48710, + "md5": "68ddb40adc519fb99c47e96c075a03a8", + "name": "NODE_833_length_48710_cov_139.315569" + }, + "NODE_8351_length_5612_cov_59.402555": { + "contig_id": "NODE_8351_length_5612_cov_59.402555", + "description": "", + "gc_content": 0.32627, + "length": 5612, + "md5": "3e0fd03b341564ee9c09b5da770ee000", + "name": "NODE_8351_length_5612_cov_59.402555" + }, + "NODE_8376_length_5597_cov_587.659329": { + "contig_id": "NODE_8376_length_5597_cov_587.659329", + "description": "", + "gc_content": 0.62194, + "length": 5597, + "md5": "4acd6de0447fe246b118204590136f37", + "name": "NODE_8376_length_5597_cov_587.659329" + }, + "NODE_839_length_48199_cov_17.055438": { + "contig_id": "NODE_839_length_48199_cov_17.055438", + "description": "", + "gc_content": 0.40729, + "length": 48199, + "md5": "52d4a1c51f4baad3b6998804d4655dc1", + "name": "NODE_839_length_48199_cov_17.055438" + }, + "NODE_83_length_196022_cov_154.407268": { + "contig_id": "NODE_83_length_196022_cov_154.407268", + "description": "", + "gc_content": 0.50892, + "length": 196022, + "md5": "70fa5bd747167eaa00a0e7063445b3ea", + "name": "NODE_83_length_196022_cov_154.407268" + }, + "NODE_84_length_192950_cov_576.564587": { + "Ncount": 10, + "contig_id": "NODE_84_length_192950_cov_576.564587", + "description": "", + "gc_content": 0.6322, + "length": 192950, + "md5": "6adb310d3cc0d17df7b65eb888e22d7f", + "name": "NODE_84_length_192950_cov_576.564587" + }, + "NODE_8562_length_5491_cov_89.790287": { + "contig_id": "NODE_8562_length_5491_cov_89.790287", + "description": "", + "gc_content": 0.45274, + "length": 5491, + "md5": "1645961dc4758794e81e9d0429608d0d", + "name": "NODE_8562_length_5491_cov_89.790287" + }, + "NODE_8579_length_5485_cov_245.198158": { + "contig_id": "NODE_8579_length_5485_cov_245.198158", + "description": "", + "gc_content": 0.41386, + "length": 5485, + "md5": "f4ea6e5310a63a442e8803a839182733", + "name": "NODE_8579_length_5485_cov_245.198158" + }, + "NODE_8591_length_5477_cov_152.780708": { + "contig_id": "NODE_8591_length_5477_cov_152.780708", + "description": "", + "gc_content": 0.64579, + "length": 5477, + "md5": "934b14e00949e74aa359d67a8f2b4e38", + "name": "NODE_8591_length_5477_cov_152.780708" + }, + "NODE_8672_length_5423_cov_20.928651": { + "contig_id": "NODE_8672_length_5423_cov_20.928651", + "description": "", + "gc_content": 0.37083, + "length": 5423, + "md5": "fd453c19e3de7c3e5ef99586592c5584", + "name": "NODE_8672_length_5423_cov_20.928651" + }, + "NODE_873_length_46695_cov_144.317217": { + "Ncount": 200, + "contig_id": "NODE_873_length_46695_cov_144.317217", + "description": "", + "gc_content": 0.64033, + "length": 46695, + "md5": "dea2ea5a058ac2b6c8ab461da39181fe", + "name": "NODE_873_length_46695_cov_144.317217" + }, + "NODE_87_length_190175_cov_30.214338": { + "Ncount": 100, + "contig_id": "NODE_87_length_190175_cov_30.214338", + "description": "", + "gc_content": 0.6464, + "length": 190175, + "md5": "2443c562796ce3793180ff8846b93b31", + "name": "NODE_87_length_190175_cov_30.214338" + }, + "NODE_883_length_46178_cov_136.335234": { + "contig_id": "NODE_883_length_46178_cov_136.335234", + "description": "", + "gc_content": 0.63643, + "length": 46178, + "md5": "b77944176bffd6b91488af7c9c4a8c65", + "name": "NODE_883_length_46178_cov_136.335234" + }, + "NODE_884_length_46167_cov_133.556992": { + "Ncount": 200, + "contig_id": "NODE_884_length_46167_cov_133.556992", + "description": "", + "gc_content": 0.63437, + "length": 46167, + "md5": "ea943ce64798bfd1a65086c0f37f8a52", + "name": "NODE_884_length_46167_cov_133.556992" + }, + "NODE_886_length_46025_cov_9.440178": { + "Ncount": 10, + "contig_id": "NODE_886_length_46025_cov_9.440178", + "description": "", + "gc_content": 0.675, + "length": 46025, + "md5": "03425a712ececebebb80a5dbd241d1cf", + "name": "NODE_886_length_46025_cov_9.440178" + }, + "NODE_88_length_190096_cov_14.562521": { + "contig_id": "NODE_88_length_190096_cov_14.562521", + "description": "", + "gc_content": 0.4974, + "length": 190096, + "md5": "77ab5605f21f87fc56120bdbd37d6f59", + "name": "NODE_88_length_190096_cov_14.562521" + }, + "NODE_9040_length_5209_cov_25.655801": { + "contig_id": "NODE_9040_length_5209_cov_25.655801", + "description": "", + "gc_content": 0.61413, + "length": 5209, + "md5": "04596f6d09c5992471a41b23b41ef059", + "name": "NODE_9040_length_5209_cov_25.655801" + }, + "NODE_9047_length_5204_cov_20.159060": { + "contig_id": "NODE_9047_length_5204_cov_20.159060", + "description": "", + "gc_content": 0.40949, + "length": 5204, + "md5": "d65a37520d6685ff9c0c71050a27f4fa", + "name": "NODE_9047_length_5204_cov_20.159060" + }, + "NODE_909_length_45091_cov_529.995803": { + "Ncount": 10, + "contig_id": "NODE_909_length_45091_cov_529.995803", + "description": "", + "gc_content": 0.63305, + "length": 45091, + "md5": "2e65688fcde7fe0290c39180e73b17ca", + "name": "NODE_909_length_45091_cov_529.995803" + }, + "NODE_9114_length_5170_cov_27.644575": { + "contig_id": "NODE_9114_length_5170_cov_27.644575", + "description": "", + "gc_content": 0.63791, + "length": 5170, + "md5": "a458e82f12dd87f44fdf77b585811db9", + "name": "NODE_9114_length_5170_cov_27.644575" + }, + "NODE_911_length_45084_cov_30.755891": { + "contig_id": "NODE_911_length_45084_cov_30.755891", + "description": "", + "gc_content": 0.63457, + "length": 45084, + "md5": "08bf1192c95d2b6bfb97e08ac1e49123", + "name": "NODE_911_length_45084_cov_30.755891" + }, + "NODE_9177_length_5139_cov_122.266129": { + "contig_id": "NODE_9177_length_5139_cov_122.266129", + "description": "", + "gc_content": 0.40845, + "length": 5139, + "md5": "8eff252a3d81d59fb38273d938db7296", + "name": "NODE_9177_length_5139_cov_122.266129" + }, + "NODE_9268_length_5090_cov_60.494340": { + "contig_id": "NODE_9268_length_5090_cov_60.494340", + "description": "", + "gc_content": 0.63222, + "length": 5090, + "md5": "64c944365bfdc0c4c22c6bcf0e00ec1a", + "name": "NODE_9268_length_5090_cov_60.494340" + }, + "NODE_9314_length_5070_cov_112.129013": { + "contig_id": "NODE_9314_length_5070_cov_112.129013", + "description": "", + "gc_content": 0.61203, + "length": 5070, + "md5": "7843bad69de0abbcca3e160b430277e5", + "name": "NODE_9314_length_5070_cov_112.129013" + }, + "NODE_9327_length_5062_cov_607.352506": { + "contig_id": "NODE_9327_length_5062_cov_607.352506", + "description": "", + "gc_content": 0.61063, + "length": 5062, + "md5": "be1ac5d4b2047f844124a87a25eea084", + "name": "NODE_9327_length_5062_cov_607.352506" + }, + "NODE_9331_length_5060_cov_12.633566": { + "contig_id": "NODE_9331_length_5060_cov_12.633566", + "description": "", + "gc_content": 0.38992, + "length": 5060, + "md5": "c238cda648b19fa5492eb1c7c13440c7", + "name": "NODE_9331_length_5060_cov_12.633566" + }, + "NODE_9336_length_5056_cov_108.661868": { + "contig_id": "NODE_9336_length_5056_cov_108.661868", + "description": "", + "gc_content": 0.64379, + "length": 5056, + "md5": "6e50153448be5904a1dd2be20e0085f3", + "name": "NODE_9336_length_5056_cov_108.661868" + }, + "NODE_934_length_44183_cov_136.004940": { + "contig_id": "NODE_934_length_44183_cov_136.004940", + "description": "", + "gc_content": 0.63194, + "length": 44183, + "md5": "4783e42672b19781d8fc96c028fd10c4", + "name": "NODE_934_length_44183_cov_136.004940" + }, + "NODE_937_length_44042_cov_9.003410": { + "contig_id": "NODE_937_length_44042_cov_9.003410", + "description": "", + "gc_content": 0.68403, + "length": 44042, + "md5": "a714156ae70b1059ee9b6eb38efd8369", + "name": "NODE_937_length_44042_cov_9.003410" + }, + "NODE_93_length_184670_cov_122.713263": { + "Ncount": 400, + "contig_id": "NODE_93_length_184670_cov_122.713263", + "description": "", + "gc_content": 0.64058, + "length": 184670, + "md5": "ce3e3b2d53987de7c85e231a9562e158", + "name": "NODE_93_length_184670_cov_122.713263" + }, + "NODE_9417_length_5014_cov_14.573099": { + "Ncount": 100, + "contig_id": "NODE_9417_length_5014_cov_14.573099", + "description": "", + "gc_content": 0.44994, + "length": 5014, + "md5": "d4c30d4af01d1a9b5f63541046c72647", + "name": "NODE_9417_length_5014_cov_14.573099" + }, + "NODE_945_length_43815_cov_17.299200": { + "contig_id": "NODE_945_length_43815_cov_17.299200", + "description": "", + "gc_content": 0.39187, + "length": 43815, + "md5": "c621ced3c7579f55144008a75238905a", + "name": "NODE_945_length_43815_cov_17.299200" + }, + "NODE_946_length_43726_cov_134.859999": { + "contig_id": "NODE_946_length_43726_cov_134.859999", + "description": "", + "gc_content": 0.64294, + "length": 43726, + "md5": "416adcfa414b7b4f7571cb4dd3b9dfad", + "name": "NODE_946_length_43726_cov_134.859999" + }, + "NODE_94_length_184300_cov_14.870216": { + "contig_id": "NODE_94_length_184300_cov_14.870216", + "description": "", + "gc_content": 0.49742, + "length": 184300, + "md5": "6c3f96fa2623209f8e7d9dd5d85f3ffa", + "name": "NODE_94_length_184300_cov_14.870216" + }, + "NODE_954_length_43446_cov_122.656611": { + "Ncount": 100, + "contig_id": "NODE_954_length_43446_cov_122.656611", + "description": "", + "gc_content": 0.64291, + "length": 43446, + "md5": "0a01e5445b4ae5e1604cbb14cf46b928", + "name": "NODE_954_length_43446_cov_122.656611" + }, + "NODE_9577_length_4930_cov_87.790564": { + "contig_id": "NODE_9577_length_4930_cov_87.790564", + "description": "", + "gc_content": 0.6574, + "length": 4930, + "md5": "a99f6a7bd789552a4ef161cf9316654b", + "name": "NODE_9577_length_4930_cov_87.790564" + }, + "NODE_9630_length_4911_cov_25.354613": { + "Ncount": 100, + "contig_id": "NODE_9630_length_4911_cov_25.354613", + "description": "", + "gc_content": 0.38668, + "length": 4911, + "md5": "b5223c91ab938e984a6faf142aa47a2e", + "name": "NODE_9630_length_4911_cov_25.354613" + }, + "NODE_9696_length_4883_cov_8.201947": { + "contig_id": "NODE_9696_length_4883_cov_8.201947", + "description": "", + "gc_content": 0.64305, + "length": 4883, + "md5": "e38a369bfe4c32a4ef75abf4d38a9c4d", + "name": "NODE_9696_length_4883_cov_8.201947" + }, + "NODE_978_length_42563_cov_644.872048": { + "contig_id": "NODE_978_length_42563_cov_644.872048", + "description": "", + "gc_content": 0.64617, + "length": 42563, + "md5": "7092bac662701bacc363b44aeac1fd93", + "name": "NODE_978_length_42563_cov_644.872048" + }, + "NODE_9920_length_4793_cov_24.394681": { + "contig_id": "NODE_9920_length_4793_cov_24.394681", + "description": "", + "gc_content": 0.3382, + "length": 4793, + "md5": "a8a1ecedf5f3bb9064b9858b2818b07d", + "name": "NODE_9920_length_4793_cov_24.394681" + }, + "NODE_994_length_42117_cov_17.135918": { + "contig_id": "NODE_994_length_42117_cov_17.135918", + "description": "", + "gc_content": 0.39329, + "length": 42117, + "md5": "c15c8bd51a683390e21912b21cee2392", + "name": "NODE_994_length_42117_cov_17.135918" + }, + "NODE_9964_length_4775_cov_27.418432": { + "Ncount": 100, + "contig_id": "NODE_9964_length_4775_cov_27.418432", + "description": "", + "gc_content": 0.36147, + "length": 4775, + "md5": "31f8d583dd52a1d062cfd6a728d81a15", + "name": "NODE_9964_length_4775_cov_27.418432" + }, + "NODE_99_length_180926_cov_149.891685": { + "contig_id": "NODE_99_length_180926_cov_149.891685", + "description": "", + "gc_content": 0.52841, + "length": 180926, + "md5": "6e7a745dea111244230aac216fe836a3", + "name": "NODE_99_length_180926_cov_149.891685" + } + }, + "dna_size": 32411722, + "fasta_handle_info": { + "handle": { + "file_name": "Compost_HQ_Bins.fa_assembly.fa", + "hid": "KBH_655882", + "id": "f8c9da6c-4d6d-41b5-8e9a-6b51eedffc31", + "remote_md5": "2f1f446cb0b7894addd2a188e530ef8f", + "type": "shock", + "url": "https://ci.kbase.us/services/shock-api" + }, + "node_file_name": "Compost_HQ_Bins.fa_assembly.fa", + "shock_id": "f8c9da6c-4d6d-41b5-8e9a-6b51eedffc31", + "size": 32979107 + }, + "fasta_handle_ref": "KBH_655882", + "gc_content": 0.54941, + "md5": "b07e1c9be725d6c9220fddebd59bc75b", + "num_contigs": 709, + "type": "metagenome" + }, + "objectInfo": { + "id": 7, + "name": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", + "type": "KBaseGenomeAnnotations.Assembly-6.0", + "save_date": "2021-10-10T22:14:02+0000", + "version": 1, + "saved_by": "kbaseuitest", + "wsid": 64493, + "ws": "kbaseuitest:narrative_1633901898363", + "checksum": "8da310c9ff85e9d448204f113553d7e7", + "size": 166430, + "metadata": { + "GC content": "0.54941", + "Size": "32411722", + "N Contigs": "709", + "MD5": "b07e1c9be725d6c9220fddebd59bc75b" + }, + "ref": "64493/7/1", + "obj_id": "ws.64493.obj.7", + "typeModule": "KBaseGenomeAnnotations", + "typeName": "Assembly", + "typeMajorVersion": "6", + "typeMinorVersion": "0", + "saveDate": "2021-10-10T22:14:02.000Z" } } \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json deleted file mode 100644 index 9874cf6b50..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_02_props.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "set": { - "status": "loading" - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json deleted file mode 100644 index ef35650eae..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_expected.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "This is an Error" -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json deleted file mode 100644 index 1e760cc72f..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_03_props.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "set": { - "status": "error", - "error": { - "message": "This is an Error" - } - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json deleted file mode 100644 index a0a9ba05de..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_expected.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "Description": "test assembly set", - "Alignment type": "KBaseGenomeAnnotations.Assembly-6.0", - "DNA Size": "32,411,722", - "Contig Count": "709", - "GC Content": "54.94%" -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json b/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json deleted file mode 100644 index 302e3e1bb6..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/assemblyset_case_04_props.json +++ /dev/null @@ -1,6026 +0,0 @@ -{ - "set": { - "status": "loaded", - "value": { - "description": "test assembly set", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "items": [ - { - "label": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", - "ref": "64493/7/1", - "info": [ - 7, - "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", - "KBaseGenomeAnnotations.Assembly-6.0", - "2021-10-10T22:14:02+0000", - 1, - "kbaseuitest", - 64493, - "kbaseuitest:narrative_1633901898363", - "8da310c9ff85e9d448204f113553d7e7", - 166430, - { - "GC content": "0.54941", - "Size": "32411722", - "N Contigs": "709", - "MD5": "b07e1c9be725d6c9220fddebd59bc75b" - } - ], - "objectInfo": { - "id": 7, - "name": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "save_date": "2021-10-10T22:14:02+0000", - "version": 1, - "saved_by": "kbaseuitest", - "wsid": 64493, - "ws": "kbaseuitest:narrative_1633901898363", - "checksum": "8da310c9ff85e9d448204f113553d7e7", - "size": 166430, - "metadata": { - "GC content": "0.54941", - "Size": "32411722", - "N Contigs": "709", - "MD5": "b07e1c9be725d6c9220fddebd59bc75b" - }, - "ref": "64493/7/1", - "obj_id": "ws.64493.obj.7", - "typeModule": "KBaseGenomeAnnotations", - "typeName": "Assembly", - "typeMajorVersion": "6", - "typeMinorVersion": "0", - "saveDate": "2021-10-10T22:14:02.000Z" - } - }, - { - "label": "prochlorococus_prokka_output.assembly", - "ref": "64493/10/1", - "info": [ - 10, - "prochlorococus_prokka_output.assembly", - "KBaseGenomeAnnotations.Assembly-6.0", - "2021-10-10T22:19:42+0000", - 1, - "kbaseuitest", - 64493, - "kbaseuitest:narrative_1633901898363", - "d199837cdfb65c9813c881d6a7f70212", - 783, - { - "GC content": "0.36442", - "Size": "1751080", - "N Contigs": "1", - "MD5": "9575448e7385db1195bf0b74c1d63850" - } - ], - "objectInfo": { - "id": 10, - "name": "prochlorococus_prokka_output.assembly", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "save_date": "2021-10-10T22:19:42+0000", - "version": 1, - "saved_by": "kbaseuitest", - "wsid": 64493, - "ws": "kbaseuitest:narrative_1633901898363", - "checksum": "d199837cdfb65c9813c881d6a7f70212", - "size": 783, - "metadata": { - "GC content": "0.36442", - "Size": "1751080", - "N Contigs": "1", - "MD5": "9575448e7385db1195bf0b74c1d63850" - }, - "ref": "64493/10/1", - "obj_id": "ws.64493.obj.10", - "typeModule": "KBaseGenomeAnnotations", - "typeName": "Assembly", - "typeMajorVersion": "6", - "typeMinorVersion": "0", - "saveDate": "2021-10-10T22:19:42.000Z" - } - }, - { - "label": "GCF_000007925.1_ASM792v1_genomic.fna_assembly", - "ref": "64493/11/1", - "info": [ - 11, - "GCF_000007925.1_ASM792v1_genomic.fna_assembly", - "KBaseGenomeAnnotations.Assembly-6.0", - "2021-10-10T22:19:44+0000", - 1, - "kbaseuitest", - 64493, - "kbaseuitest:narrative_1633901898363", - "d22a33f77c25bbc76d0da3e62d056e64", - 919, - { - "GC content": "0.36442", - "Size": "1751080", - "N Contigs": "1", - "MD5": "9575448e7385db1195bf0b74c1d63850" - } - ], - "objectInfo": { - "id": 11, - "name": "GCF_000007925.1_ASM792v1_genomic.fna_assembly", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "save_date": "2021-10-10T22:19:44+0000", - "version": 1, - "saved_by": "kbaseuitest", - "wsid": 64493, - "ws": "kbaseuitest:narrative_1633901898363", - "checksum": "d22a33f77c25bbc76d0da3e62d056e64", - "size": 919, - "metadata": { - "GC content": "0.36442", - "Size": "1751080", - "N Contigs": "1", - "MD5": "9575448e7385db1195bf0b74c1d63850" - }, - "ref": "64493/11/1", - "obj_id": "ws.64493.obj.11", - "typeModule": "KBaseGenomeAnnotations", - "typeName": "Assembly", - "typeMajorVersion": "6", - "typeMinorVersion": "0", - "saveDate": "2021-10-10T22:19:44.000Z" - } - } - ] - }, - "selectedItem": { - "status": "loaded", - "value": { - "assembly_id": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", - "base_counts": { - "A": 7284227, - "C": 8872108, - "G": 8935140, - "N": 17916, - "T": 7302331 - }, - "contigs": { - "NODE_10017_length_4750_cov_159.169968": { - "contig_id": "NODE_10017_length_4750_cov_159.169968", - "description": "", - "gc_content": 0.36379, - "length": 4750, - "md5": "98d432c21e8668546554a77905e920e9", - "name": "NODE_10017_length_4750_cov_159.169968" - }, - "NODE_10058_length_4734_cov_25.066253": { - "contig_id": "NODE_10058_length_4734_cov_25.066253", - "description": "", - "gc_content": 0.36713, - "length": 4734, - "md5": "54910be76e860fef5ca235cec74e50b6", - "name": "NODE_10058_length_4734_cov_25.066253" - }, - "NODE_1007_length_41543_cov_92.931980": { - "contig_id": "NODE_1007_length_41543_cov_92.931980", - "description": "", - "gc_content": 0.43264, - "length": 41543, - "md5": "d709fdbb7603364c9f86c09e08316ccd", - "name": "NODE_1007_length_41543_cov_92.931980" - }, - "NODE_100_length_180411_cov_16.745603": { - "contig_id": "NODE_100_length_180411_cov_16.745603", - "description": "", - "gc_content": 0.39194, - "length": 180411, - "md5": "e2753b8c88d5acf60af98f1e62f559fd", - "name": "NODE_100_length_180411_cov_16.745603" - }, - "NODE_10162_length_4682_cov_159.917441": { - "Ncount": 100, - "contig_id": "NODE_10162_length_4682_cov_159.917441", - "description": "", - "gc_content": 0.36138, - "length": 4682, - "md5": "3f73b2880fe0c6205673f659ebad96d2", - "name": "NODE_10162_length_4682_cov_159.917441" - }, - "NODE_10189_length_4671_cov_57.500217": { - "contig_id": "NODE_10189_length_4671_cov_57.500217", - "description": "", - "gc_content": 0.63177, - "length": 4671, - "md5": "7db19bba78dbb9afb61ffc4a0acd7544", - "name": "NODE_10189_length_4671_cov_57.500217" - }, - "NODE_1023_length_41198_cov_139.202683": { - "contig_id": "NODE_1023_length_41198_cov_139.202683", - "description": "", - "gc_content": 0.39378, - "length": 41198, - "md5": "45c043af78db4ee17bc83d26d61da8ee", - "name": "NODE_1023_length_41198_cov_139.202683" - }, - "NODE_103_length_176357_cov_9.075881": { - "Ncount": 100, - "contig_id": "NODE_103_length_176357_cov_9.075881", - "description": "", - "gc_content": 0.67569, - "length": 176357, - "md5": "62c82137f7b34d8bb19e1abb0bf3b700", - "name": "NODE_103_length_176357_cov_9.075881" - }, - "NODE_104_length_175670_cov_147.466936": { - "contig_id": "NODE_104_length_175670_cov_147.466936", - "description": "", - "gc_content": 0.52235, - "length": 175670, - "md5": "8f7ecce4377767405e412de531f9c156", - "name": "NODE_104_length_175670_cov_147.466936" - }, - "NODE_1050_length_40362_cov_89.890887": { - "Ncount": 300, - "contig_id": "NODE_1050_length_40362_cov_89.890887", - "description": "", - "gc_content": 0.60963, - "length": 40362, - "md5": "6c8c64361e6ad2ffa2395c4a4dd56a98", - "name": "NODE_1050_length_40362_cov_89.890887" - }, - "NODE_1054_length_40207_cov_31.091677": { - "contig_id": "NODE_1054_length_40207_cov_31.091677", - "description": "", - "gc_content": 0.63822, - "length": 40207, - "md5": "e82550e717687e4d9da948367b6fd73e", - "name": "NODE_1054_length_40207_cov_31.091677" - }, - "NODE_10554_length_4530_cov_30.726704": { - "contig_id": "NODE_10554_length_4530_cov_30.726704", - "description": "", - "gc_content": 0.43024, - "length": 4530, - "md5": "3c47e4087ddd77ff8adaaff45d8554b2", - "name": "NODE_10554_length_4530_cov_30.726704" - }, - "NODE_1057_length_40056_cov_30.995825": { - "contig_id": "NODE_1057_length_40056_cov_30.995825", - "description": "", - "gc_content": 0.63943, - "length": 40056, - "md5": "aeb45ead1917a8dfc1ecb17937ba0c77", - "name": "NODE_1057_length_40056_cov_30.995825" - }, - "NODE_1063_length_39828_cov_602.691524": { - "contig_id": "NODE_1063_length_39828_cov_602.691524", - "description": "", - "gc_content": 0.62793, - "length": 39828, - "md5": "5e079127b0bb820f119414d55f7722d5", - "name": "NODE_1063_length_39828_cov_602.691524" - }, - "NODE_1064_length_39795_cov_147.757549": { - "contig_id": "NODE_1064_length_39795_cov_147.757549", - "description": "", - "gc_content": 0.62772, - "length": 39795, - "md5": "84be6246633590a696fc0bcf7300ad6e", - "name": "NODE_1064_length_39795_cov_147.757549" - }, - "NODE_10687_length_4472_cov_43.925515": { - "contig_id": "NODE_10687_length_4472_cov_43.925515", - "description": "", - "gc_content": 0.39401, - "length": 4472, - "md5": "8c6d92fbefe6f0144b817d1c8c9d3de3", - "name": "NODE_10687_length_4472_cov_43.925515" - }, - "NODE_106_length_175061_cov_19.076672": { - "contig_id": "NODE_106_length_175061_cov_19.076672", - "description": "", - "gc_content": 0.40105, - "length": 175061, - "md5": "154b5cf6ba454efd6ba6f5af75e602c9", - "name": "NODE_106_length_175061_cov_19.076672" - }, - "NODE_1070_length_39489_cov_16.199751": { - "Ncount": 160, - "contig_id": "NODE_1070_length_39489_cov_16.199751", - "description": "", - "gc_content": 0.39758, - "length": 39489, - "md5": "f617f28feda791e2990c1354d2e3072e", - "name": "NODE_1070_length_39489_cov_16.199751" - }, - "NODE_107_length_174613_cov_14.986543": { - "contig_id": "NODE_107_length_174613_cov_14.986543", - "description": "", - "gc_content": 0.47794, - "length": 174613, - "md5": "7afb8c94bb17af15ffb0b6e0cec7f6e7", - "name": "NODE_107_length_174613_cov_14.986543" - }, - "NODE_10839_length_4415_cov_13.632110": { - "contig_id": "NODE_10839_length_4415_cov_13.632110", - "description": "", - "gc_content": 0.35651, - "length": 4415, - "md5": "dda21b3b8e75bae07dbe19a05f8f053f", - "name": "NODE_10839_length_4415_cov_13.632110" - }, - "NODE_108_length_171878_cov_15.745773": { - "contig_id": "NODE_108_length_171878_cov_15.745773", - "description": "", - "gc_content": 0.48685, - "length": 171878, - "md5": "8aca2314b8d60d48d382a9363f9cfe2f", - "name": "NODE_108_length_171878_cov_15.745773" - }, - "NODE_1093_length_38730_cov_20.574428": { - "contig_id": "NODE_1093_length_38730_cov_20.574428", - "description": "", - "gc_content": 0.40207, - "length": 38730, - "md5": "3045b6e207b3177afdb210cf79fbbcf9", - "name": "NODE_1093_length_38730_cov_20.574428" - }, - "NODE_1098_length_38514_cov_30.807717": { - "contig_id": "NODE_1098_length_38514_cov_30.807717", - "description": "", - "gc_content": 0.64197, - "length": 38514, - "md5": "56435f988bb8a087c4de878ac812aed8", - "name": "NODE_1098_length_38514_cov_30.807717" - }, - "NODE_1103_length_38450_cov_133.530017": { - "contig_id": "NODE_1103_length_38450_cov_133.530017", - "description": "", - "gc_content": 0.64377, - "length": 38450, - "md5": "64f786bf093b33185322e665ceab015a", - "name": "NODE_1103_length_38450_cov_133.530017" - }, - "NODE_1105_length_38381_cov_8.888718": { - "contig_id": "NODE_1105_length_38381_cov_8.888718", - "description": "", - "gc_content": 0.67171, - "length": 38381, - "md5": "89c5d3d1f02a56ce3dc059705aa3936b", - "name": "NODE_1105_length_38381_cov_8.888718" - }, - "NODE_11095_length_4330_cov_22.627602": { - "contig_id": "NODE_11095_length_4330_cov_22.627602", - "description": "", - "gc_content": 0.58383, - "length": 4330, - "md5": "2f274e592a6a029675012f6abf0ace8e", - "name": "NODE_11095_length_4330_cov_22.627602" - }, - "NODE_11139_length_4315_cov_17.737793": { - "Ncount": 100, - "contig_id": "NODE_11139_length_4315_cov_17.737793", - "description": "", - "gc_content": 0.40371, - "length": 4315, - "md5": "54179a3be8c7bf4483f217ed6249a5d9", - "name": "NODE_11139_length_4315_cov_17.737793" - }, - "NODE_11141_length_4314_cov_156.916412": { - "contig_id": "NODE_11141_length_4314_cov_156.916412", - "description": "", - "gc_content": 0.49536, - "length": 4314, - "md5": "7cc195cb30ec63098ba221d1111755c0", - "name": "NODE_11141_length_4314_cov_156.916412" - }, - "NODE_11153_length_4307_cov_58.286689": { - "contig_id": "NODE_11153_length_4307_cov_58.286689", - "description": "", - "gc_content": 0.58417, - "length": 4307, - "md5": "1a5c03518416f36d6efc7e52e462412e", - "name": "NODE_11153_length_4307_cov_58.286689" - }, - "NODE_11178_length_4301_cov_668.951719": { - "contig_id": "NODE_11178_length_4301_cov_668.951719", - "description": "", - "gc_content": 0.60823, - "length": 4301, - "md5": "0a9883ee273c6ff3d8ad1ece5f714c92", - "name": "NODE_11178_length_4301_cov_668.951719" - }, - "NODE_1122_length_37857_cov_30.796228": { - "contig_id": "NODE_1122_length_37857_cov_30.796228", - "description": "", - "gc_content": 0.64197, - "length": 37857, - "md5": "64c9c73291caae256e4314e7e94be6d4", - "name": "NODE_1122_length_37857_cov_30.796228" - }, - "NODE_1126_length_37809_cov_129.350744": { - "Ncount": 100, - "contig_id": "NODE_1126_length_37809_cov_129.350744", - "description": "", - "gc_content": 0.63726, - "length": 37809, - "md5": "f1a6edae88c97fbbe7164411f55bb060", - "name": "NODE_1126_length_37809_cov_129.350744" - }, - "NODE_1128_length_37768_cov_9.120250": { - "contig_id": "NODE_1128_length_37768_cov_9.120250", - "description": "", - "gc_content": 0.68677, - "length": 37768, - "md5": "2b48302a94a43b7ed22e9c8d419eca97", - "name": "NODE_1128_length_37768_cov_9.120250" - }, - "NODE_112_length_170680_cov_15.618678": { - "Ncount": 100, - "contig_id": "NODE_112_length_170680_cov_15.618678", - "description": "", - "gc_content": 0.49289, - "length": 170680, - "md5": "10411bfc46de2bb4e97b53064f06a9ad", - "name": "NODE_112_length_170680_cov_15.618678" - }, - "NODE_11369_length_4242_cov_11.336279": { - "contig_id": "NODE_11369_length_4242_cov_11.336279", - "description": "", - "gc_content": 0.38873, - "length": 4242, - "md5": "79b0c3e17170c861f3fb30285a7ac5cc", - "name": "NODE_11369_length_4242_cov_11.336279" - }, - "NODE_11389_length_4237_cov_9.885222": { - "contig_id": "NODE_11389_length_4237_cov_9.885222", - "description": "", - "gc_content": 0.62945, - "length": 4237, - "md5": "ba3eebbeb887d7013b5137dbe30d7778", - "name": "NODE_11389_length_4237_cov_9.885222" - }, - "NODE_11396_length_4234_cov_25.534099": { - "contig_id": "NODE_11396_length_4234_cov_25.534099", - "description": "", - "gc_content": 0.64761, - "length": 4234, - "md5": "02022bb2bf7ec5a1f43de9b04570a0d8", - "name": "NODE_11396_length_4234_cov_25.534099" - }, - "NODE_1139_length_37316_cov_18.741955": { - "contig_id": "NODE_1139_length_37316_cov_18.741955", - "description": "", - "gc_content": 0.39198, - "length": 37316, - "md5": "a6cb6d4d85c4184fcab36a04208a3753", - "name": "NODE_1139_length_37316_cov_18.741955" - }, - "NODE_113_length_170363_cov_131.693044": { - "Ncount": 100, - "contig_id": "NODE_113_length_170363_cov_131.693044", - "description": "", - "gc_content": 0.64721, - "length": 170363, - "md5": "cbceec79f85c08d9c97d1e62a261af14", - "name": "NODE_113_length_170363_cov_131.693044" - }, - "NODE_11420_length_4227_cov_120.473394": { - "contig_id": "NODE_11420_length_4227_cov_120.473394", - "description": "", - "gc_content": 0.64845, - "length": 4227, - "md5": "2e969f88216f7c4fc1fee350dd3c402b", - "name": "NODE_11420_length_4227_cov_120.473394" - }, - "NODE_1145_length_37075_cov_126.388088": { - "contig_id": "NODE_1145_length_37075_cov_126.388088", - "description": "", - "gc_content": 0.6355, - "length": 37075, - "md5": "df7a9987255328ac070dbd9f0ce0646a", - "name": "NODE_1145_length_37075_cov_126.388088" - }, - "NODE_11464_length_4215_cov_41.485337": { - "contig_id": "NODE_11464_length_4215_cov_41.485337", - "description": "", - "gc_content": 0.63203, - "length": 4215, - "md5": "259cb9a0f0fd5ce1c030ef0be080529f", - "name": "NODE_11464_length_4215_cov_41.485337" - }, - "NODE_11492_length_4207_cov_92.317437": { - "contig_id": "NODE_11492_length_4207_cov_92.317437", - "description": "", - "gc_content": 0.66461, - "length": 4207, - "md5": "12453c82282b1cc1e8ca414ef21cbce1", - "name": "NODE_11492_length_4207_cov_92.317437" - }, - "NODE_1155_length_36715_cov_27.545881": { - "contig_id": "NODE_1155_length_36715_cov_27.545881", - "description": "", - "gc_content": 0.66591, - "length": 36715, - "md5": "4ab5c1501a366974220cf0d3fb55a930", - "name": "NODE_1155_length_36715_cov_27.545881" - }, - "NODE_11621_length_4168_cov_158.778021": { - "contig_id": "NODE_11621_length_4168_cov_158.778021", - "description": "", - "gc_content": 0.47769, - "length": 4168, - "md5": "ddd8558452b25922c548b16ef3c4b6e1", - "name": "NODE_11621_length_4168_cov_158.778021" - }, - "NODE_1162_length_36499_cov_119.348233": { - "contig_id": "NODE_1162_length_36499_cov_119.348233", - "description": "", - "gc_content": 0.62404, - "length": 36499, - "md5": "6300f349da7520e0027640bf1a3361e4", - "name": "NODE_1162_length_36499_cov_119.348233" - }, - "NODE_11634_length_4165_cov_10.957908": { - "contig_id": "NODE_11634_length_4165_cov_10.957908", - "description": "", - "gc_content": 0.38103, - "length": 4165, - "md5": "f79dc3e5042ef8c1761f739b17a17580", - "name": "NODE_11634_length_4165_cov_10.957908" - }, - "NODE_11637_length_4164_cov_24.961061": { - "contig_id": "NODE_11637_length_4164_cov_24.961061", - "description": "", - "gc_content": 0.35327, - "length": 4164, - "md5": "84a53010cc40edcd72f3bdb53e099770", - "name": "NODE_11637_length_4164_cov_24.961061" - }, - "NODE_11666_length_4157_cov_132.040956": { - "contig_id": "NODE_11666_length_4157_cov_132.040956", - "description": "", - "gc_content": 0.344, - "length": 4157, - "md5": "43014e8356e7147eca9bb8f4cdf8890e", - "name": "NODE_11666_length_4157_cov_132.040956" - }, - "NODE_1166_length_36399_cov_557.481483": { - "contig_id": "NODE_1166_length_36399_cov_557.481483", - "description": "", - "gc_content": 0.63304, - "length": 36399, - "md5": "f2bcc5ee5c662a75ce1ab9a341ef210d", - "name": "NODE_1166_length_36399_cov_557.481483" - }, - "NODE_11755_length_4119_cov_158.610974": { - "contig_id": "NODE_11755_length_4119_cov_158.610974", - "description": "", - "gc_content": 0.45399, - "length": 4119, - "md5": "44ea44e1e3344c7d15afb0160550b985", - "name": "NODE_11755_length_4119_cov_158.610974" - }, - "NODE_1179_length_36092_cov_150.062908": { - "Ncount": 10, - "contig_id": "NODE_1179_length_36092_cov_150.062908", - "description": "", - "gc_content": 0.2935, - "length": 36092, - "md5": "412bbf54f5ce3b825c75411270c0ea1f", - "name": "NODE_1179_length_36092_cov_150.062908" - }, - "NODE_1182_length_35938_cov_16.677953": { - "contig_id": "NODE_1182_length_35938_cov_16.677953", - "description": "", - "gc_content": 0.3956, - "length": 35938, - "md5": "9f7a810f5146985a0b3c6014aaf702de", - "name": "NODE_1182_length_35938_cov_16.677953" - }, - "NODE_118_length_166625_cov_28.846251": { - "Ncount": 200, - "contig_id": "NODE_118_length_166625_cov_28.846251", - "description": "", - "gc_content": 0.64029, - "length": 166625, - "md5": "693ca1270b2daf7f064547c3fa019a15", - "name": "NODE_118_length_166625_cov_28.846251" - }, - "NODE_11973_length_4054_cov_79.629407": { - "contig_id": "NODE_11973_length_4054_cov_79.629407", - "description": "", - "gc_content": 0.68254, - "length": 4054, - "md5": "135fc756cb07e8841a103ee1d6f3ea4f", - "name": "NODE_11973_length_4054_cov_79.629407" - }, - "NODE_119_length_166541_cov_138.393805": { - "contig_id": "NODE_119_length_166541_cov_138.393805", - "description": "", - "gc_content": 0.3936, - "length": 166541, - "md5": "20fa9ffe46ffc16d5b0708eaa91a1a35", - "name": "NODE_119_length_166541_cov_138.393805" - }, - "NODE_12039_length_4040_cov_26.019824": { - "contig_id": "NODE_12039_length_4040_cov_26.019824", - "description": "", - "gc_content": 0.59084, - "length": 4040, - "md5": "c6e65983018d2d57cad2558871c02d15", - "name": "NODE_12039_length_4040_cov_26.019824" - }, - "NODE_1204_length_35428_cov_8.768157": { - "Ncount": 23, - "contig_id": "NODE_1204_length_35428_cov_8.768157", - "description": "", - "gc_content": 0.68011, - "length": 35428, - "md5": "e24aa82857a3d9e397688c13cbdda62f", - "name": "NODE_1204_length_35428_cov_8.768157" - }, - "NODE_12090_length_4026_cov_148.421304": { - "contig_id": "NODE_12090_length_4026_cov_148.421304", - "description": "", - "gc_content": 0.42996, - "length": 4026, - "md5": "61b8765150b85046de8db23b2f72214d", - "name": "NODE_12090_length_4026_cov_148.421304" - }, - "NODE_1209_length_35302_cov_113.690357": { - "Ncount": 200, - "contig_id": "NODE_1209_length_35302_cov_113.690357", - "description": "", - "gc_content": 0.64872, - "length": 35302, - "md5": "4c3cda4b8d57539065e75f711abd82af", - "name": "NODE_1209_length_35302_cov_113.690357" - }, - "NODE_12131_length_4013_cov_136.417888": { - "contig_id": "NODE_12131_length_4013_cov_136.417888", - "description": "", - "gc_content": 0.615, - "length": 4013, - "md5": "171bc7969a08b823dcb6266278cb5ca8", - "name": "NODE_12131_length_4013_cov_136.417888" - }, - "NODE_1223_length_35080_cov_5.716602": { - "Ncount": 10, - "contig_id": "NODE_1223_length_35080_cov_5.716602", - "description": "", - "gc_content": 0.66594, - "length": 35080, - "md5": "15b0a92b58a77c5d85de2f2ac06f46f4", - "name": "NODE_1223_length_35080_cov_5.716602" - }, - "NODE_1224_length_35025_cov_32.184272": { - "contig_id": "NODE_1224_length_35025_cov_32.184272", - "description": "", - "gc_content": 0.6382, - "length": 35025, - "md5": "e3e9d2542698bbd6f576266f0fb8c6f1", - "name": "NODE_1224_length_35025_cov_32.184272" - }, - "NODE_1229_length_34755_cov_8.414524": { - "contig_id": "NODE_1229_length_34755_cov_8.414524", - "description": "", - "gc_content": 0.673, - "length": 34755, - "md5": "46ad03974f30acf7ea67ca17745f716b", - "name": "NODE_1229_length_34755_cov_8.414524" - }, - "NODE_12322_length_3960_cov_15.397695": { - "contig_id": "NODE_12322_length_3960_cov_15.397695", - "description": "", - "gc_content": 0.45051, - "length": 3960, - "md5": "1778f62236f5fab89ea89d1f750ee22a", - "name": "NODE_12322_length_3960_cov_15.397695" - }, - "NODE_12414_length_3934_cov_69.821088": { - "contig_id": "NODE_12414_length_3934_cov_69.821088", - "description": "", - "gc_content": 0.48246, - "length": 3934, - "md5": "c6f6bfe65d8d90dffcfe71e38095021b", - "name": "NODE_12414_length_3934_cov_69.821088" - }, - "NODE_12532_length_3902_cov_9.641539": { - "contig_id": "NODE_12532_length_3902_cov_9.641539", - "description": "", - "gc_content": 0.68965, - "length": 3902, - "md5": "2f049ed7fa16f5a46c27705c5c6b9096", - "name": "NODE_12532_length_3902_cov_9.641539" - }, - "NODE_12575_length_3891_cov_99.934307": { - "contig_id": "NODE_12575_length_3891_cov_99.934307", - "description": "", - "gc_content": 0.40427, - "length": 3891, - "md5": "59d276a00e552a9520c6bd8ec334970d", - "name": "NODE_12575_length_3891_cov_99.934307" - }, - "NODE_12579_length_3890_cov_300.798175": { - "contig_id": "NODE_12579_length_3890_cov_300.798175", - "description": "", - "gc_content": 0.52725, - "length": 3890, - "md5": "8d38eba0024c346abd443b9f8d6cf5b6", - "name": "NODE_12579_length_3890_cov_300.798175" - }, - "NODE_12599_length_3882_cov_71.918474": { - "contig_id": "NODE_12599_length_3882_cov_71.918474", - "description": "", - "gc_content": 0.36476, - "length": 3882, - "md5": "e55e593b6849044a2dbcdfe41de80f31", - "name": "NODE_12599_length_3882_cov_71.918474" - }, - "NODE_12602_length_3880_cov_13.072157": { - "contig_id": "NODE_12602_length_3880_cov_13.072157", - "description": "", - "gc_content": 0.67062, - "length": 3880, - "md5": "5788edb5944efe149ac8ddc764ffb240", - "name": "NODE_12602_length_3880_cov_13.072157" - }, - "NODE_1261_length_34121_cov_22.040099": { - "contig_id": "NODE_1261_length_34121_cov_22.040099", - "description": "", - "gc_content": 0.39527, - "length": 34121, - "md5": "7dc64465980e40e282416bb8bd7686fc", - "name": "NODE_1261_length_34121_cov_22.040099" - }, - "NODE_12639_length_3871_cov_85.626834": { - "contig_id": "NODE_12639_length_3871_cov_85.626834", - "description": "", - "gc_content": 0.63084, - "length": 3871, - "md5": "1fd891191e94757d7147959341c9a5ef", - "name": "NODE_12639_length_3871_cov_85.626834" - }, - "NODE_1263_length_34106_cov_32.715574": { - "Ncount": 100, - "contig_id": "NODE_1263_length_34106_cov_32.715574", - "description": "", - "gc_content": 0.64748, - "length": 34106, - "md5": "2bd107aa69cfcda467ad7ed120ffcd66", - "name": "NODE_1263_length_34106_cov_32.715574" - }, - "NODE_1264_length_34064_cov_146.452998": { - "contig_id": "NODE_1264_length_34064_cov_146.452998", - "description": "", - "gc_content": 0.39015, - "length": 34064, - "md5": "a3146d08ec5f0766752370d91d0d739b", - "name": "NODE_1264_length_34064_cov_146.452998" - }, - "NODE_12741_length_3844_cov_23.475851": { - "contig_id": "NODE_12741_length_3844_cov_23.475851", - "description": "", - "gc_content": 0.65765, - "length": 3844, - "md5": "61b7bf1700a6689fd1bbaee0cf0bf6b7", - "name": "NODE_12741_length_3844_cov_23.475851" - }, - "NODE_12754_length_3840_cov_29.600528": { - "contig_id": "NODE_12754_length_3840_cov_29.600528", - "description": "", - "gc_content": 0.35339, - "length": 3840, - "md5": "68d75eace67673d6f5086734b40c78be", - "name": "NODE_12754_length_3840_cov_29.600528" - }, - "NODE_1278_length_33808_cov_172.368975": { - "contig_id": "NODE_1278_length_33808_cov_172.368975", - "description": "", - "gc_content": 0.49432, - "length": 33808, - "md5": "edb8f6b8ca9e640e6a3aa65cfac22e42", - "name": "NODE_1278_length_33808_cov_172.368975" - }, - "NODE_1279_length_33801_cov_8.643039": { - "contig_id": "NODE_1279_length_33801_cov_8.643039", - "description": "", - "gc_content": 0.68959, - "length": 33801, - "md5": "ab4e2b59ef13536b42a3dfd63e789a1b", - "name": "NODE_1279_length_33801_cov_8.643039" - }, - "NODE_12808_length_3825_cov_3.663130": { - "contig_id": "NODE_12808_length_3825_cov_3.663130", - "description": "", - "gc_content": 0.68392, - "length": 3825, - "md5": "6b52d6e13e83e8454115053e77db65cd", - "name": "NODE_12808_length_3825_cov_3.663130" - }, - "NODE_1286_length_33717_cov_132.909364": { - "contig_id": "NODE_1286_length_33717_cov_132.909364", - "description": "", - "gc_content": 0.62452, - "length": 33717, - "md5": "5b751d2a73f324ad8cd591f56766b5e1", - "name": "NODE_1286_length_33717_cov_132.909364" - }, - "NODE_12876_length_3810_cov_67.741411": { - "contig_id": "NODE_12876_length_3810_cov_67.741411", - "description": "", - "gc_content": 0.65801, - "length": 3810, - "md5": "de0e94d7236142856b96459f4a2fdea5", - "name": "NODE_12876_length_3810_cov_67.741411" - }, - "NODE_12922_length_3797_cov_8.080973": { - "contig_id": "NODE_12922_length_3797_cov_8.080973", - "description": "", - "gc_content": 0.67606, - "length": 3797, - "md5": "00fa8b80d59d6f1ed42c1086135d7725", - "name": "NODE_12922_length_3797_cov_8.080973" - }, - "NODE_1292_length_33567_cov_9.282138": { - "contig_id": "NODE_1292_length_33567_cov_9.282138", - "description": "", - "gc_content": 0.66676, - "length": 33567, - "md5": "349ecb7add0d1bdefc95aefa03fc3285", - "name": "NODE_1292_length_33567_cov_9.282138" - }, - "NODE_1293_length_33560_cov_123.840740": { - "Ncount": 200, - "contig_id": "NODE_1293_length_33560_cov_123.840740", - "description": "", - "gc_content": 0.63701, - "length": 33560, - "md5": "6dfd378b4f1902e62cd9e7b422b0bf64", - "name": "NODE_1293_length_33560_cov_123.840740" - }, - "NODE_1299_length_33454_cov_103.690440": { - "contig_id": "NODE_1299_length_33454_cov_103.690440", - "description": "", - "gc_content": 0.65051, - "length": 33454, - "md5": "4863f2173f8eb7f8ec144b66b1f3a772", - "name": "NODE_1299_length_33454_cov_103.690440" - }, - "NODE_1309_length_33260_cov_18.201144": { - "contig_id": "NODE_1309_length_33260_cov_18.201144", - "description": "", - "gc_content": 0.40622, - "length": 33260, - "md5": "e84ad0455c5ce0103c1fdb94d71a8701", - "name": "NODE_1309_length_33260_cov_18.201144" - }, - "NODE_1310_length_33211_cov_27.665219": { - "contig_id": "NODE_1310_length_33211_cov_27.665219", - "description": "", - "gc_content": 0.6359, - "length": 33211, - "md5": "38aa182ea746e917225e8f63bef74351", - "name": "NODE_1310_length_33211_cov_27.665219" - }, - "NODE_13186_length_3731_cov_17.399075": { - "contig_id": "NODE_13186_length_3731_cov_17.399075", - "description": "", - "gc_content": 0.40499, - "length": 3731, - "md5": "44a67032636160e48e0cf41a7e132c09", - "name": "NODE_13186_length_3731_cov_17.399075" - }, - "NODE_1325_length_32823_cov_118.561707": { - "Ncount": 100, - "contig_id": "NODE_1325_length_32823_cov_118.561707", - "description": "", - "gc_content": 0.64763, - "length": 32823, - "md5": "a8e10ba25c17b852efa1f244cce6e6af", - "name": "NODE_1325_length_32823_cov_118.561707" - }, - "NODE_1327_length_32806_cov_112.976153": { - "contig_id": "NODE_1327_length_32806_cov_112.976153", - "description": "", - "gc_content": 0.64775, - "length": 32806, - "md5": "c2509d70c129f0f5a01f975110860c1b", - "name": "NODE_1327_length_32806_cov_112.976153" - }, - "NODE_1328_length_32773_cov_51.295220": { - "contig_id": "NODE_1328_length_32773_cov_51.295220", - "description": "", - "gc_content": 0.64227, - "length": 32773, - "md5": "386a2e282aed3b3baa916a35b9075fe5", - "name": "NODE_1328_length_32773_cov_51.295220" - }, - "NODE_13303_length_3699_cov_30.213502": { - "contig_id": "NODE_13303_length_3699_cov_30.213502", - "description": "", - "gc_content": 0.62801, - "length": 3699, - "md5": "c02a9ea43aca1e6bed6417d3bec57ab9", - "name": "NODE_13303_length_3699_cov_30.213502" - }, - "NODE_133_length_154186_cov_30.952093": { - "Ncount": 100, - "contig_id": "NODE_133_length_154186_cov_30.952093", - "description": "", - "gc_content": 0.64174, - "length": 154186, - "md5": "ca33421c8e9e992b0f1b62700e7bbaeb", - "name": "NODE_133_length_154186_cov_30.952093" - }, - "NODE_1342_length_32571_cov_32.245510": { - "Ncount": 100, - "contig_id": "NODE_1342_length_32571_cov_32.245510", - "description": "", - "gc_content": 0.64309, - "length": 32571, - "md5": "457aba30d0e223e1a55cd8a44d3e57c1", - "name": "NODE_1342_length_32571_cov_32.245510" - }, - "NODE_13484_length_3653_cov_96.151473": { - "contig_id": "NODE_13484_length_3653_cov_96.151473", - "description": "", - "gc_content": 0.64112, - "length": 3653, - "md5": "295b8ffdf722f022e15bf51e671db87f", - "name": "NODE_13484_length_3653_cov_96.151473" - }, - "NODE_13494_length_3651_cov_7.834260": { - "contig_id": "NODE_13494_length_3651_cov_7.834260", - "description": "", - "gc_content": 0.66639, - "length": 3651, - "md5": "bae57f21977608cf8166f451bac815b7", - "name": "NODE_13494_length_3651_cov_7.834260" - }, - "NODE_1350_length_32490_cov_562.040543": { - "Ncount": 100, - "contig_id": "NODE_1350_length_32490_cov_562.040543", - "description": "", - "gc_content": 0.635, - "length": 32490, - "md5": "c20dc7c62d536e59a612142ad37dbcb6", - "name": "NODE_1350_length_32490_cov_562.040543" - }, - "NODE_13555_length_3638_cov_12.013397": { - "contig_id": "NODE_13555_length_3638_cov_12.013397", - "description": "", - "gc_content": 0.34689, - "length": 3638, - "md5": "da889dda0fcdeb54c108edb170390d3c", - "name": "NODE_13555_length_3638_cov_12.013397" - }, - "NODE_1356_length_32339_cov_113.595558": { - "Ncount": 100, - "contig_id": "NODE_1356_length_32339_cov_113.595558", - "description": "", - "gc_content": 0.64847, - "length": 32339, - "md5": "397096e3b19515f59179e4bc1b5dfd4c", - "name": "NODE_1356_length_32339_cov_113.595558" - }, - "NODE_13601_length_3631_cov_19.111577": { - "contig_id": "NODE_13601_length_3631_cov_19.111577", - "description": "", - "gc_content": 0.38915, - "length": 3631, - "md5": "52d9d1ff124447165be6d323fc8d67ee", - "name": "NODE_13601_length_3631_cov_19.111577" - }, - "NODE_1364_length_32171_cov_22.017437": { - "contig_id": "NODE_1364_length_32171_cov_22.017437", - "description": "", - "gc_content": 0.40692, - "length": 32171, - "md5": "e0dcf3279058bbea48c455a5968111e5", - "name": "NODE_1364_length_32171_cov_22.017437" - }, - "NODE_1367_length_32119_cov_15.847836": { - "contig_id": "NODE_1367_length_32119_cov_15.847836", - "description": "", - "gc_content": 0.48535, - "length": 32119, - "md5": "b6584731481098b2c1db7dfd6113acf2", - "name": "NODE_1367_length_32119_cov_15.847836" - }, - "NODE_13682_length_3613_cov_17.007307": { - "contig_id": "NODE_13682_length_3613_cov_17.007307", - "description": "", - "gc_content": 0.59673, - "length": 3613, - "md5": "973f2c75560f720e2948e0b792289f40", - "name": "NODE_13682_length_3613_cov_17.007307" - }, - "NODE_136_length_152140_cov_145.014426": { - "Ncount": 200, - "contig_id": "NODE_136_length_152140_cov_145.014426", - "description": "", - "gc_content": 0.63986, - "length": 152140, - "md5": "b0fef651db01af97af69f6d35af44eb7", - "name": "NODE_136_length_152140_cov_145.014426" - }, - "NODE_1370_length_32077_cov_9.088221": { - "contig_id": "NODE_1370_length_32077_cov_9.088221", - "description": "", - "gc_content": 0.64364, - "length": 32077, - "md5": "d5c7520af00d0349401ce1818141c608", - "name": "NODE_1370_length_32077_cov_9.088221" - }, - "NODE_13710_length_3608_cov_79.719674": { - "contig_id": "NODE_13710_length_3608_cov_79.719674", - "description": "", - "gc_content": 0.36558, - "length": 3608, - "md5": "aff6e6b544648e6d934da8572129005b", - "name": "NODE_13710_length_3608_cov_79.719674" - }, - "NODE_1372_length_32036_cov_8.824052": { - "contig_id": "NODE_1372_length_32036_cov_8.824052", - "description": "", - "gc_content": 0.67059, - "length": 32036, - "md5": "dc716fbe95730c3bcf77a8875c9bd817", - "name": "NODE_1372_length_32036_cov_8.824052" - }, - "NODE_13752_length_3598_cov_114.250353": { - "contig_id": "NODE_13752_length_3598_cov_114.250353", - "description": "", - "gc_content": 0.37215, - "length": 3598, - "md5": "240079b5fd627eca1c4543c4fb88eb2c", - "name": "NODE_13752_length_3598_cov_114.250353" - }, - "NODE_1382_length_31734_cov_8.648884": { - "contig_id": "NODE_1382_length_31734_cov_8.648884", - "description": "", - "gc_content": 0.67896, - "length": 31734, - "md5": "9b2a8158d6bdaaadd0ed1cca2b411a15", - "name": "NODE_1382_length_31734_cov_8.648884" - }, - "NODE_13875_length_3573_cov_27.033542": { - "contig_id": "NODE_13875_length_3573_cov_27.033542", - "description": "", - "gc_content": 0.60621, - "length": 3573, - "md5": "50cf207c3adffa86358f60f55a067ff7", - "name": "NODE_13875_length_3573_cov_27.033542" - }, - "NODE_1389_length_31599_cov_139.299201": { - "Ncount": 110, - "contig_id": "NODE_1389_length_31599_cov_139.299201", - "description": "", - "gc_content": 0.38843, - "length": 31599, - "md5": "c72073d35e89a4d9fcda8d842a5ae8bc", - "name": "NODE_1389_length_31599_cov_139.299201" - }, - "NODE_13927_length_3562_cov_72.468492": { - "contig_id": "NODE_13927_length_3562_cov_72.468492", - "description": "", - "gc_content": 0.32622, - "length": 3562, - "md5": "d6d76272d72798d60c232f8f8f05cd12", - "name": "NODE_13927_length_3562_cov_72.468492" - }, - "NODE_1392_length_31545_cov_136.657193": { - "contig_id": "NODE_1392_length_31545_cov_136.657193", - "description": "", - "gc_content": 0.38523, - "length": 31545, - "md5": "366def7c81265b3b331c0f9a2f8ccf1e", - "name": "NODE_1392_length_31545_cov_136.657193" - }, - "NODE_139_length_147361_cov_118.533760": { - "Ncount": 300, - "contig_id": "NODE_139_length_147361_cov_118.533760", - "description": "", - "gc_content": 0.64036, - "length": 147361, - "md5": "5270ee25ec21def387cc5f96c944c1aa", - "name": "NODE_139_length_147361_cov_118.533760" - }, - "NODE_14001_length_3547_cov_10.766323": { - "contig_id": "NODE_14001_length_3547_cov_10.766323", - "description": "", - "gc_content": 0.49958, - "length": 3547, - "md5": "9bb5966d06d23cdb74fab4c8b28ed420", - "name": "NODE_14001_length_3547_cov_10.766323" - }, - "NODE_1400_length_31287_cov_28.762647": { - "contig_id": "NODE_1400_length_31287_cov_28.762647", - "description": "", - "gc_content": 0.64327, - "length": 31287, - "md5": "58e9a9c93e882f61bf88ac032296efb7", - "name": "NODE_1400_length_31287_cov_28.762647" - }, - "NODE_14019_length_3544_cov_37.337919": { - "contig_id": "NODE_14019_length_3544_cov_37.337919", - "description": "", - "gc_content": 0.60948, - "length": 3544, - "md5": "ecadef2be0f12001df788bb6c47c6811", - "name": "NODE_14019_length_3544_cov_37.337919" - }, - "NODE_1401_length_31274_cov_163.348249": { - "contig_id": "NODE_1401_length_31274_cov_163.348249", - "description": "", - "gc_content": 0.49367, - "length": 31274, - "md5": "482d04a04b02a47cdc71864fb1f7c7a9", - "name": "NODE_1401_length_31274_cov_163.348249" - }, - "NODE_14101_length_3526_cov_9.505330": { - "contig_id": "NODE_14101_length_3526_cov_9.505330", - "description": "", - "gc_content": 0.64294, - "length": 3526, - "md5": "6b9fe1c631bdc804895472f23227ed09", - "name": "NODE_14101_length_3526_cov_9.505330" - }, - "NODE_14176_length_3510_cov_27.822287": { - "contig_id": "NODE_14176_length_3510_cov_27.822287", - "description": "", - "gc_content": 0.58262, - "length": 3510, - "md5": "aaeee86a015aa63a8ce170d6fbacc524", - "name": "NODE_14176_length_3510_cov_27.822287" - }, - "NODE_1417_length_30921_cov_17.653891": { - "contig_id": "NODE_1417_length_30921_cov_17.653891", - "description": "", - "gc_content": 0.39886, - "length": 30921, - "md5": "4bcc097609c6a3d6d8921b23956f39c3", - "name": "NODE_1417_length_30921_cov_17.653891" - }, - "NODE_14212_length_3501_cov_4.354614": { - "contig_id": "NODE_14212_length_3501_cov_4.354614", - "description": "", - "gc_content": 0.66467, - "length": 3501, - "md5": "0827cad019b8d0f52d7673a31a927108", - "name": "NODE_14212_length_3501_cov_4.354614" - }, - "NODE_14279_length_3482_cov_26.060111": { - "contig_id": "NODE_14279_length_3482_cov_26.060111", - "description": "", - "gc_content": 0.43308, - "length": 3482, - "md5": "0ced53e4e670c373ffff80b3cdbba151", - "name": "NODE_14279_length_3482_cov_26.060111" - }, - "NODE_14289_length_3480_cov_194.713869": { - "contig_id": "NODE_14289_length_3480_cov_194.713869", - "description": "", - "gc_content": 0.6704, - "length": 3480, - "md5": "3e4b46eb88746c0aea1556f2e33e73b4", - "name": "NODE_14289_length_3480_cov_194.713869" - }, - "NODE_142_length_146445_cov_17.789555": { - "Ncount": 100, - "contig_id": "NODE_142_length_146445_cov_17.789555", - "description": "", - "gc_content": 0.39396, - "length": 146445, - "md5": "f7d49a9ecb7c3145fbadb4e9a9a5291a", - "name": "NODE_142_length_146445_cov_17.789555" - }, - "NODE_14364_length_3465_cov_6.076833": { - "contig_id": "NODE_14364_length_3465_cov_6.076833", - "description": "", - "gc_content": 0.68745, - "length": 3465, - "md5": "b30e134987a50217d704a1c203703e2f", - "name": "NODE_14364_length_3465_cov_6.076833" - }, - "NODE_14451_length_3449_cov_42.208898": { - "contig_id": "NODE_14451_length_3449_cov_42.208898", - "description": "", - "gc_content": 0.41983, - "length": 3449, - "md5": "c8de02274ce8624b87d9d0cbc3ff0c9e", - "name": "NODE_14451_length_3449_cov_42.208898" - }, - "NODE_1447_length_30236_cov_9.676088": { - "contig_id": "NODE_1447_length_30236_cov_9.676088", - "description": "", - "gc_content": 0.65869, - "length": 30236, - "md5": "fec2a52e23463054ea68b60dec15dfc1", - "name": "NODE_1447_length_30236_cov_9.676088" - }, - "NODE_14495_length_3441_cov_14.802717": { - "contig_id": "NODE_14495_length_3441_cov_14.802717", - "description": "", - "gc_content": 0.34641, - "length": 3441, - "md5": "fa1cb730119196e4ff45cb1b121bfd8a", - "name": "NODE_14495_length_3441_cov_14.802717" - }, - "NODE_1449_length_30142_cov_22.601090": { - "contig_id": "NODE_1449_length_30142_cov_22.601090", - "description": "", - "gc_content": 0.37303, - "length": 30142, - "md5": "e2a61bc8e656a201a430181602d11c65", - "name": "NODE_1449_length_30142_cov_22.601090" - }, - "NODE_1455_length_29972_cov_30.358024": { - "contig_id": "NODE_1455_length_29972_cov_30.358024", - "description": "", - "gc_content": 0.64113, - "length": 29972, - "md5": "28cfca7de7e3cf165c4afbfad75f6e31", - "name": "NODE_1455_length_29972_cov_30.358024" - }, - "NODE_1456_length_29906_cov_108.807779": { - "Ncount": 200, - "contig_id": "NODE_1456_length_29906_cov_108.807779", - "description": "", - "gc_content": 0.63663, - "length": 29906, - "md5": "86c19f1c9fdda1c8cbe3f2baa3dc1fd8", - "name": "NODE_1456_length_29906_cov_108.807779" - }, - "NODE_145_length_145676_cov_623.757301": { - "contig_id": "NODE_145_length_145676_cov_623.757301", - "description": "", - "gc_content": 0.63679, - "length": 145676, - "md5": "4429350a9379ee2b79dad4f442757271", - "name": "NODE_145_length_145676_cov_623.757301" - }, - "NODE_1476_length_29572_cov_131.514686": { - "contig_id": "NODE_1476_length_29572_cov_131.514686", - "description": "", - "gc_content": 0.63709, - "length": 29572, - "md5": "8b57e9b2856cc39232cd85096bef774b", - "name": "NODE_1476_length_29572_cov_131.514686" - }, - "NODE_14876_length_3363_cov_19.192563": { - "contig_id": "NODE_14876_length_3363_cov_19.192563", - "description": "", - "gc_content": 0.38924, - "length": 3363, - "md5": "b10d3a617231e0282fd9bc1a0df6d0fe", - "name": "NODE_14876_length_3363_cov_19.192563" - }, - "NODE_1487_length_29423_cov_117.210161": { - "contig_id": "NODE_1487_length_29423_cov_117.210161", - "description": "", - "gc_content": 0.64681, - "length": 29423, - "md5": "66fbd63cbe04aa927c9b91f85261f498", - "name": "NODE_1487_length_29423_cov_117.210161" - }, - "NODE_148_length_144947_cov_17.130228": { - "Ncount": 10, - "contig_id": "NODE_148_length_144947_cov_17.130228", - "description": "", - "gc_content": 0.40015, - "length": 144947, - "md5": "2b3efd1f7f73864638c4e6e42d33e07f", - "name": "NODE_148_length_144947_cov_17.130228" - }, - "NODE_14_length_428193_cov_602.559876": { - "Ncount": 110, - "contig_id": "NODE_14_length_428193_cov_602.559876", - "description": "", - "gc_content": 0.63326, - "length": 428193, - "md5": "fe02ab973c801cf43ae2e018bbd05651", - "name": "NODE_14_length_428193_cov_602.559876" - }, - "NODE_1501_length_29068_cov_15.998621": { - "contig_id": "NODE_1501_length_29068_cov_15.998621", - "description": "", - "gc_content": 0.49608, - "length": 29068, - "md5": "c68467c5adfdcc842308c23d4c372e3c", - "name": "NODE_1501_length_29068_cov_15.998621" - }, - "NODE_15053_length_3326_cov_31.182513": { - "Ncount": 10, - "contig_id": "NODE_15053_length_3326_cov_31.182513", - "description": "", - "gc_content": 0.58208, - "length": 3326, - "md5": "56c67308aceecf92b7a027b80b49273b", - "name": "NODE_15053_length_3326_cov_31.182513" - }, - "NODE_15072_length_3322_cov_20.016835": { - "contig_id": "NODE_15072_length_3322_cov_20.016835", - "description": "", - "gc_content": 0.34256, - "length": 3322, - "md5": "9f268ba7e74576836d85189d69be1a38", - "name": "NODE_15072_length_3322_cov_20.016835" - }, - "NODE_15085_length_3320_cov_85.869832": { - "contig_id": "NODE_15085_length_3320_cov_85.869832", - "description": "", - "gc_content": 0.33795, - "length": 3320, - "md5": "3a53950c9eb46aa3c36a6ccefa404111", - "name": "NODE_15085_length_3320_cov_85.869832" - }, - "NODE_150_length_144291_cov_19.611838": { - "Ncount": 10, - "contig_id": "NODE_150_length_144291_cov_19.611838", - "description": "", - "gc_content": 0.38923, - "length": 144291, - "md5": "5a0ab3f207f6b3bc2d0da0325ecb5465", - "name": "NODE_150_length_144291_cov_19.611838" - }, - "NODE_1515_length_28822_cov_139.827024": { - "contig_id": "NODE_1515_length_28822_cov_139.827024", - "description": "", - "gc_content": 0.38554, - "length": 28822, - "md5": "4d81b68380bd48ae2e991ff254be7a6e", - "name": "NODE_1515_length_28822_cov_139.827024" - }, - "NODE_15187_length_3299_cov_8.962700": { - "contig_id": "NODE_15187_length_3299_cov_8.962700", - "description": "", - "gc_content": 0.64717, - "length": 3299, - "md5": "cfaa1cbd5daa588d3c186f1383faca31", - "name": "NODE_15187_length_3299_cov_8.962700" - }, - "NODE_151_length_143838_cov_137.991355": { - "contig_id": "NODE_151_length_143838_cov_137.991355", - "description": "", - "gc_content": 0.38263, - "length": 143838, - "md5": "4d2dd80bfd9fba2a9aa380fdd050f9a8", - "name": "NODE_151_length_143838_cov_137.991355" - }, - "NODE_15234_length_3290_cov_11.550541": { - "contig_id": "NODE_15234_length_3290_cov_11.550541", - "description": "", - "gc_content": 0.40304, - "length": 3290, - "md5": "6aae70ebccbffeafa86773fff018ffda", - "name": "NODE_15234_length_3290_cov_11.550541" - }, - "NODE_15260_length_3285_cov_143.983282": { - "contig_id": "NODE_15260_length_3285_cov_143.983282", - "description": "", - "gc_content": 0.39209, - "length": 3285, - "md5": "1edb5bc482771cdc50487448a8e92a5f", - "name": "NODE_15260_length_3285_cov_143.983282" - }, - "NODE_153_length_143649_cov_144.194771": { - "Ncount": 10, - "contig_id": "NODE_153_length_143649_cov_144.194771", - "description": "", - "gc_content": 0.52984, - "length": 143649, - "md5": "ac13a12b129963cbb335169c40f6471e", - "name": "NODE_153_length_143649_cov_144.194771" - }, - "NODE_1540_length_28308_cov_17.568435": { - "contig_id": "NODE_1540_length_28308_cov_17.568435", - "description": "", - "gc_content": 0.38258, - "length": 28308, - "md5": "87041f60d9199b93a3b037b77c95f75f", - "name": "NODE_1540_length_28308_cov_17.568435" - }, - "NODE_1544_length_28256_cov_29.989468": { - "contig_id": "NODE_1544_length_28256_cov_29.989468", - "description": "", - "gc_content": 0.65993, - "length": 28256, - "md5": "b2e014b29fba3d205e3b0ff464274a4a", - "name": "NODE_1544_length_28256_cov_29.989468" - }, - "NODE_15453_length_3248_cov_16.550893": { - "contig_id": "NODE_15453_length_3248_cov_16.550893", - "description": "", - "gc_content": 0.64532, - "length": 3248, - "md5": "ff8424f23204b2ecd9ad73f87df55606", - "name": "NODE_15453_length_3248_cov_16.550893" - }, - "NODE_15454_length_3248_cov_7.074538": { - "contig_id": "NODE_15454_length_3248_cov_7.074538", - "description": "", - "gc_content": 0.68627, - "length": 3248, - "md5": "af50a087792efe49eca6544af59ec040", - "name": "NODE_15454_length_3248_cov_7.074538" - }, - "NODE_1548_length_28190_cov_29.570855": { - "contig_id": "NODE_1548_length_28190_cov_29.570855", - "description": "", - "gc_content": 0.64218, - "length": 28190, - "md5": "c91a2963ef49181eff1841fc497ae701", - "name": "NODE_1548_length_28190_cov_29.570855" - }, - "NODE_1553_length_28051_cov_148.154951": { - "Ncount": 100, - "contig_id": "NODE_1553_length_28051_cov_148.154951", - "description": "", - "gc_content": 0.36815, - "length": 28051, - "md5": "686bf64c81642b655bb7aac8447e03e3", - "name": "NODE_1553_length_28051_cov_148.154951" - }, - "NODE_15634_length_3215_cov_8.567722": { - "contig_id": "NODE_15634_length_3215_cov_8.567722", - "description": "", - "gc_content": 0.36765, - "length": 3215, - "md5": "8f129ed9faacdd93cff1a29ef7b14617", - "name": "NODE_15634_length_3215_cov_8.567722" - }, - "NODE_15837_length_3180_cov_25.395840": { - "contig_id": "NODE_15837_length_3180_cov_25.395840", - "description": "", - "gc_content": 0.60755, - "length": 3180, - "md5": "07bdf6ee3dee87bd66d4eb72781659e7", - "name": "NODE_15837_length_3180_cov_25.395840" - }, - "NODE_158_length_140790_cov_141.445831": { - "Ncount": 100, - "contig_id": "NODE_158_length_140790_cov_141.445831", - "description": "", - "gc_content": 0.38685, - "length": 140790, - "md5": "29e432f5c48c38ffa8c4bbcc9bd6f061", - "name": "NODE_158_length_140790_cov_141.445831" - }, - "NODE_1590_length_27644_cov_114.231433": { - "contig_id": "NODE_1590_length_27644_cov_114.231433", - "description": "", - "gc_content": 0.64141, - "length": 27644, - "md5": "c40dd2ec36d19c7b7176191fc4105985", - "name": "NODE_1590_length_27644_cov_114.231433" - }, - "NODE_16055_length_3138_cov_135.388258": { - "contig_id": "NODE_16055_length_3138_cov_135.388258", - "description": "", - "gc_content": 0.61185, - "length": 3138, - "md5": "3c25aa72c9af838f7c8d5c8ce97d377d", - "name": "NODE_16055_length_3138_cov_135.388258" - }, - "NODE_1612_length_27325_cov_135.700367": { - "contig_id": "NODE_1612_length_27325_cov_135.700367", - "description": "", - "gc_content": 0.39854, - "length": 27325, - "md5": "aabafb767921c5e96e8b00f6e2b4345b", - "name": "NODE_1612_length_27325_cov_135.700367" - }, - "NODE_1616_length_27244_cov_121.934312": { - "Ncount": 200, - "contig_id": "NODE_1616_length_27244_cov_121.934312", - "description": "", - "gc_content": 0.64752, - "length": 27244, - "md5": "911461d4144d0ab9ae767d56a94de59e", - "name": "NODE_1616_length_27244_cov_121.934312" - }, - "NODE_16221_length_3113_cov_28.085677": { - "contig_id": "NODE_16221_length_3113_cov_28.085677", - "description": "", - "gc_content": 0.62576, - "length": 3113, - "md5": "c4b2013c62e9fc6534460c9718bca619", - "name": "NODE_16221_length_3113_cov_28.085677" - }, - "NODE_162_length_138986_cov_562.017282": { - "contig_id": "NODE_162_length_138986_cov_562.017282", - "description": "", - "gc_content": 0.63634, - "length": 138986, - "md5": "015f6ee11a315bf999f4a84ddbde7fa8", - "name": "NODE_162_length_138986_cov_562.017282" - }, - "NODE_16331_length_3095_cov_11.212829": { - "contig_id": "NODE_16331_length_3095_cov_11.212829", - "description": "", - "gc_content": 0.41583, - "length": 3095, - "md5": "78eb56a040c11ae8caf9a9548576db5e", - "name": "NODE_16331_length_3095_cov_11.212829" - }, - "NODE_16335_length_3094_cov_72.553801": { - "contig_id": "NODE_16335_length_3094_cov_72.553801", - "description": "", - "gc_content": 0.33226, - "length": 3094, - "md5": "143c98511b76d6d6419fa0fb2f2832e4", - "name": "NODE_16335_length_3094_cov_72.553801" - }, - "NODE_16448_length_3075_cov_37.654636": { - "contig_id": "NODE_16448_length_3075_cov_37.654636", - "description": "", - "gc_content": 0.37138, - "length": 3075, - "md5": "6894148a315d24af188cb6643e9df606", - "name": "NODE_16448_length_3075_cov_37.654636" - }, - "NODE_1666_length_26483_cov_14.595089": { - "contig_id": "NODE_1666_length_26483_cov_14.595089", - "description": "", - "gc_content": 0.50115, - "length": 26483, - "md5": "76eebe3fd04428092579814a9168a8dc", - "name": "NODE_1666_length_26483_cov_14.595089" - }, - "NODE_1672_length_26401_cov_15.600812": { - "contig_id": "NODE_1672_length_26401_cov_15.600812", - "description": "", - "gc_content": 0.47044, - "length": 26401, - "md5": "8df6636a52f5fde15caab3a6e616bb79", - "name": "NODE_1672_length_26401_cov_15.600812" - }, - "NODE_16734_length_3031_cov_75.056452": { - "contig_id": "NODE_16734_length_3031_cov_75.056452", - "description": "", - "gc_content": 0.59188, - "length": 3031, - "md5": "6018a2867acbf0ddbc50a699f78e4886", - "name": "NODE_16734_length_3031_cov_75.056452" - }, - "NODE_16797_length_3021_cov_17.255226": { - "contig_id": "NODE_16797_length_3021_cov_17.255226", - "description": "", - "gc_content": 0.37471, - "length": 3021, - "md5": "b54e54238457f43ead6c172226ec7cfc", - "name": "NODE_16797_length_3021_cov_17.255226" - }, - "NODE_167_length_135226_cov_152.989332": { - "contig_id": "NODE_167_length_135226_cov_152.989332", - "description": "", - "gc_content": 0.50246, - "length": 135226, - "md5": "45cffd0eea654dd42766cbd2a8a6a981", - "name": "NODE_167_length_135226_cov_152.989332" - }, - "NODE_16828_length_3016_cov_26.027693": { - "contig_id": "NODE_16828_length_3016_cov_26.027693", - "description": "", - "gc_content": 0.70391, - "length": 3016, - "md5": "49ac1c64fce160a4527e92cff5b42c3b", - "name": "NODE_16828_length_3016_cov_26.027693" - }, - "NODE_168_length_135047_cov_592.623837": { - "contig_id": "NODE_168_length_135047_cov_592.623837", - "description": "", - "gc_content": 0.64262, - "length": 135047, - "md5": "ee8a9616c4fef949c7292fc549c94ee7", - "name": "NODE_168_length_135047_cov_592.623837" - }, - "NODE_16933_length_2997_cov_13.590755": { - "contig_id": "NODE_16933_length_2997_cov_13.590755", - "description": "", - "gc_content": 0.39606, - "length": 2997, - "md5": "a8da86f24402a1ed61ec417c189ebe2f", - "name": "NODE_16933_length_2997_cov_13.590755" - }, - "NODE_16966_length_2992_cov_35.441948": { - "contig_id": "NODE_16966_length_2992_cov_35.441948", - "description": "", - "gc_content": 0.3496, - "length": 2992, - "md5": "79d55aac9b2f1829ec4555960bb28ab5", - "name": "NODE_16966_length_2992_cov_35.441948" - }, - "NODE_169_length_134933_cov_29.104183": { - "Ncount": 400, - "contig_id": "NODE_169_length_134933_cov_29.104183", - "description": "", - "gc_content": 0.64061, - "length": 134933, - "md5": "22b0e921499d2c0448addf60693f8dd7", - "name": "NODE_169_length_134933_cov_29.104183" - }, - "NODE_16_length_403177_cov_139.594602": { - "Ncount": 100, - "contig_id": "NODE_16_length_403177_cov_139.594602", - "description": "", - "gc_content": 0.38806, - "length": 403177, - "md5": "ceb3bf60e86b3c90719cbd7308ea0298", - "name": "NODE_16_length_403177_cov_139.594602" - }, - "NODE_17021_length_2984_cov_95.954592": { - "contig_id": "NODE_17021_length_2984_cov_95.954592", - "description": "", - "gc_content": 0.63405, - "length": 2984, - "md5": "fc11bb5ee1568996f21fb4d0e45e66ef", - "name": "NODE_17021_length_2984_cov_95.954592" - }, - "NODE_1703_length_25886_cov_28.523092": { - "contig_id": "NODE_1703_length_25886_cov_28.523092", - "description": "", - "gc_content": 0.64348, - "length": 25886, - "md5": "cfc3733b79e21c9d6d9ffc52962a9015", - "name": "NODE_1703_length_25886_cov_28.523092" - }, - "NODE_17146_length_2964_cov_29.693022": { - "contig_id": "NODE_17146_length_2964_cov_29.693022", - "description": "", - "gc_content": 0.62787, - "length": 2964, - "md5": "e2cb0e73e74a04d33263869442971653", - "name": "NODE_17146_length_2964_cov_29.693022" - }, - "NODE_171_length_134096_cov_124.790064": { - "Ncount": 100, - "contig_id": "NODE_171_length_134096_cov_124.790064", - "description": "", - "gc_content": 0.65024, - "length": 134096, - "md5": "c571e5d6f0b9d2d4316a60c5464ee098", - "name": "NODE_171_length_134096_cov_124.790064" - }, - "NODE_17224_length_2953_cov_83.425811": { - "contig_id": "NODE_17224_length_2953_cov_83.425811", - "description": "", - "gc_content": 0.62479, - "length": 2953, - "md5": "5109d172224f155d2110c540e31d6816", - "name": "NODE_17224_length_2953_cov_83.425811" - }, - "NODE_172_length_133920_cov_545.394599": { - "Ncount": 10, - "contig_id": "NODE_172_length_133920_cov_545.394599", - "description": "", - "gc_content": 0.65467, - "length": 133920, - "md5": "b69665126fbe6913f699de774f46f5cd", - "name": "NODE_172_length_133920_cov_545.394599" - }, - "NODE_17409_length_2925_cov_31.701742": { - "contig_id": "NODE_17409_length_2925_cov_31.701742", - "description": "", - "gc_content": 0.54769, - "length": 2925, - "md5": "8d8ae4462f9fce031eb65c51b09cc96e", - "name": "NODE_17409_length_2925_cov_31.701742" - }, - "NODE_17551_length_2904_cov_18.234117": { - "contig_id": "NODE_17551_length_2904_cov_18.234117", - "description": "", - "gc_content": 0.6553, - "length": 2904, - "md5": "1fa51d1cca9ce0ab667f4827f26279f5", - "name": "NODE_17551_length_2904_cov_18.234117" - }, - "NODE_17576_length_2901_cov_13.493675": { - "contig_id": "NODE_17576_length_2901_cov_13.493675", - "description": "", - "gc_content": 0.63289, - "length": 2901, - "md5": "6f605ed8ba4538a7ff2aee1fecbffdbd", - "name": "NODE_17576_length_2901_cov_13.493675" - }, - "NODE_175_length_133245_cov_21.314190": { - "contig_id": "NODE_175_length_133245_cov_21.314190", - "description": "", - "gc_content": 0.40149, - "length": 133245, - "md5": "d5755a6e754e1b874df256d8d054a7c5", - "name": "NODE_175_length_133245_cov_21.314190" - }, - "NODE_1769_length_25081_cov_8.896028": { - "contig_id": "NODE_1769_length_25081_cov_8.896028", - "description": "", - "gc_content": 0.66987, - "length": 25081, - "md5": "5d1b21620912f0a87097f07c6ff81815", - "name": "NODE_1769_length_25081_cov_8.896028" - }, - "NODE_1782_length_24909_cov_9.287519": { - "contig_id": "NODE_1782_length_24909_cov_9.287519", - "description": "", - "gc_content": 0.66598, - "length": 24909, - "md5": "5305448eeeed7d65b6c587d3cf4a254b", - "name": "NODE_1782_length_24909_cov_9.287519" - }, - "NODE_179_length_132124_cov_17.804617": { - "Ncount": 100, - "contig_id": "NODE_179_length_132124_cov_17.804617", - "description": "", - "gc_content": 0.39578, - "length": 132124, - "md5": "cff1c20e94411403e9f0291abe283046", - "name": "NODE_179_length_132124_cov_17.804617" - }, - "NODE_180_length_132064_cov_15.023271": { - "contig_id": "NODE_180_length_132064_cov_15.023271", - "description": "", - "gc_content": 0.49057, - "length": 132064, - "md5": "8696ae2f8a5864a3cb4ca4c3725eb5d5", - "name": "NODE_180_length_132064_cov_15.023271" - }, - "NODE_1826_length_24411_cov_31.072015": { - "contig_id": "NODE_1826_length_24411_cov_31.072015", - "description": "", - "gc_content": 0.63643, - "length": 24411, - "md5": "7fe2656aecce7df3d726ac5a431b1aa6", - "name": "NODE_1826_length_24411_cov_31.072015" - }, - "NODE_18289_length_2805_cov_26.254182": { - "contig_id": "NODE_18289_length_2805_cov_26.254182", - "description": "", - "gc_content": 0.36435, - "length": 2805, - "md5": "60f11c78eae7eeb1f188a32af99b2346", - "name": "NODE_18289_length_2805_cov_26.254182" - }, - "NODE_1829_length_24326_cov_629.623996": { - "contig_id": "NODE_1829_length_24326_cov_629.623996", - "description": "", - "gc_content": 0.62785, - "length": 24326, - "md5": "c698febb9972e150cc733fe2487cd218", - "name": "NODE_1829_length_24326_cov_629.623996" - }, - "NODE_18309_length_2802_cov_30.676010": { - "contig_id": "NODE_18309_length_2802_cov_30.676010", - "description": "", - "gc_content": 0.63669, - "length": 2802, - "md5": "b76e4b31421b602acc5fe12d7c8c2452", - "name": "NODE_18309_length_2802_cov_30.676010" - }, - "NODE_18318_length_2800_cov_665.208379": { - "contig_id": "NODE_18318_length_2800_cov_665.208379", - "description": "", - "gc_content": 0.62036, - "length": 2800, - "md5": "58ffc5f80e8662c2d3810831ac642ac7", - "name": "NODE_18318_length_2800_cov_665.208379" - }, - "NODE_183_length_131550_cov_19.374767": { - "contig_id": "NODE_183_length_131550_cov_19.374767", - "description": "", - "gc_content": 0.40335, - "length": 131550, - "md5": "dcef32a05141fa4f2d2a4ee6a6cc4a88", - "name": "NODE_183_length_131550_cov_19.374767" - }, - "NODE_18433_length_2787_cov_5.058199": { - "contig_id": "NODE_18433_length_2787_cov_5.058199", - "description": "", - "gc_content": 0.63294, - "length": 2787, - "md5": "aba41fdbf19d72ff43686b16a4d25ccb", - "name": "NODE_18433_length_2787_cov_5.058199" - }, - "NODE_18438_length_2786_cov_16.510070": { - "contig_id": "NODE_18438_length_2786_cov_16.510070", - "description": "", - "gc_content": 0.61486, - "length": 2786, - "md5": "83f200bc36237e1d0b0a8532c6004512", - "name": "NODE_18438_length_2786_cov_16.510070" - }, - "NODE_1843_length_24171_cov_20.557514": { - "contig_id": "NODE_1843_length_24171_cov_20.557514", - "description": "", - "gc_content": 0.38356, - "length": 24171, - "md5": "f6f80a5c2ac30c82fd1405dbce732a92", - "name": "NODE_1843_length_24171_cov_20.557514" - }, - "NODE_184_length_130038_cov_125.959364": { - "Ncount": 400, - "contig_id": "NODE_184_length_130038_cov_125.959364", - "description": "", - "gc_content": 0.64347, - "length": 130038, - "md5": "00e79bce0de7b2b796ce6cf5dc01b3ff", - "name": "NODE_184_length_130038_cov_125.959364" - }, - "NODE_18510_length_2777_cov_21.845334": { - "contig_id": "NODE_18510_length_2777_cov_21.845334", - "description": "", - "gc_content": 0.35182, - "length": 2777, - "md5": "1cc72a7f8b83541e9815c3840fec5232", - "name": "NODE_18510_length_2777_cov_21.845334" - }, - "NODE_1857_length_24001_cov_84.576840": { - "contig_id": "NODE_1857_length_24001_cov_84.576840", - "description": "", - "gc_content": 0.62164, - "length": 24001, - "md5": "2d91c62a614c2d0cd44831508de69bfe", - "name": "NODE_1857_length_24001_cov_84.576840" - }, - "NODE_18587_length_2768_cov_96.088094": { - "contig_id": "NODE_18587_length_2768_cov_96.088094", - "description": "", - "gc_content": 0.36561, - "length": 2768, - "md5": "5be58c52a02b44c0c71abb05f45475e4", - "name": "NODE_18587_length_2768_cov_96.088094" - }, - "NODE_1858_length_23989_cov_26.531085": { - "contig_id": "NODE_1858_length_23989_cov_26.531085", - "description": "", - "gc_content": 0.39972, - "length": 23989, - "md5": "5b8a604f50de80ed284d878ce5b4e181", - "name": "NODE_1858_length_23989_cov_26.531085" - }, - "NODE_18609_length_2765_cov_32.278229": { - "contig_id": "NODE_18609_length_2765_cov_32.278229", - "description": "", - "gc_content": 0.62785, - "length": 2765, - "md5": "ab49549ff6e1329c4171357052c74c43", - "name": "NODE_18609_length_2765_cov_32.278229" - }, - "NODE_18629_length_2763_cov_507.609675": { - "contig_id": "NODE_18629_length_2763_cov_507.609675", - "description": "", - "gc_content": 0.5114, - "length": 2763, - "md5": "d2a2a2d935c8dac249d82201f72fb759", - "name": "NODE_18629_length_2763_cov_507.609675" - }, - "NODE_1865_length_23902_cov_30.896759": { - "contig_id": "NODE_1865_length_23902_cov_30.896759", - "description": "", - "gc_content": 0.64848, - "length": 23902, - "md5": "1e00be4c88836b250de41f593137dd5e", - "name": "NODE_1865_length_23902_cov_30.896759" - }, - "NODE_18693_length_2758_cov_69.943766": { - "contig_id": "NODE_18693_length_2758_cov_69.943766", - "description": "", - "gc_content": 0.63778, - "length": 2758, - "md5": "b6680ff851ef8e85c9eeb404278640f2", - "name": "NODE_18693_length_2758_cov_69.943766" - }, - "NODE_18694_length_2758_cov_23.451350": { - "contig_id": "NODE_18694_length_2758_cov_23.451350", - "description": "", - "gc_content": 0.40065, - "length": 2758, - "md5": "719e9fa1a61e8ddc3893fd04af42a080", - "name": "NODE_18694_length_2758_cov_23.451350" - }, - "NODE_186_length_129359_cov_636.942438": { - "Ncount": 10, - "contig_id": "NODE_186_length_129359_cov_636.942438", - "description": "", - "gc_content": 0.63884, - "length": 129359, - "md5": "1d8ac33e7d566aff4c85a24b88b4c828", - "name": "NODE_186_length_129359_cov_636.942438" - }, - "NODE_18703_length_2757_cov_16.057365": { - "contig_id": "NODE_18703_length_2757_cov_16.057365", - "description": "", - "gc_content": 0.54044, - "length": 2757, - "md5": "2583db852bb7303089371fc8683d12c1", - "name": "NODE_18703_length_2757_cov_16.057365" - }, - "NODE_1871_length_23793_cov_23.765608": { - "contig_id": "NODE_1871_length_23793_cov_23.765608", - "description": "", - "gc_content": 0.65187, - "length": 23793, - "md5": "68c2a9845ea8278cbdf4bdac8b401dd6", - "name": "NODE_1871_length_23793_cov_23.765608" - }, - "NODE_18736_length_2754_cov_38.499815": { - "contig_id": "NODE_18736_length_2754_cov_38.499815", - "description": "", - "gc_content": 0.45788, - "length": 2754, - "md5": "4562c308f0b42c21a4c0a6113649a5cb", - "name": "NODE_18736_length_2754_cov_38.499815" - }, - "NODE_18776_length_2748_cov_154.342369": { - "contig_id": "NODE_18776_length_2748_cov_154.342369", - "description": "", - "gc_content": 0.46507, - "length": 2748, - "md5": "62575b17742349cbcc5e71e44fb753f4", - "name": "NODE_18776_length_2748_cov_154.342369" - }, - "NODE_18819_length_2744_cov_202.729267": { - "contig_id": "NODE_18819_length_2744_cov_202.729267", - "description": "", - "gc_content": 0.48907, - "length": 2744, - "md5": "515262e1a98f05306aad6926752d9837", - "name": "NODE_18819_length_2744_cov_202.729267" - }, - "NODE_18872_length_2738_cov_31.739098": { - "contig_id": "NODE_18872_length_2738_cov_31.739098", - "description": "", - "gc_content": 0.41417, - "length": 2738, - "md5": "192f8d7e56781f93e19dae83969e474c", - "name": "NODE_18872_length_2738_cov_31.739098" - }, - "NODE_18880_length_2737_cov_77.130872": { - "contig_id": "NODE_18880_length_2737_cov_77.130872", - "description": "", - "gc_content": 0.63683, - "length": 2737, - "md5": "206c05e398aaab57aed8240045a508e6", - "name": "NODE_18880_length_2737_cov_77.130872" - }, - "NODE_18891_length_2736_cov_166.775457": { - "contig_id": "NODE_18891_length_2736_cov_166.775457", - "description": "", - "gc_content": 0.44627, - "length": 2736, - "md5": "244002f6f511a4650f25da1a993f9c97", - "name": "NODE_18891_length_2736_cov_166.775457" - }, - "NODE_188_length_128661_cov_32.004051": { - "contig_id": "NODE_188_length_128661_cov_32.004051", - "description": "", - "gc_content": 0.64933, - "length": 128661, - "md5": "5bc6173efe0494ee1db24df279297d06", - "name": "NODE_188_length_128661_cov_32.004051" - }, - "NODE_189_length_128656_cov_15.853695": { - "contig_id": "NODE_189_length_128656_cov_15.853695", - "description": "", - "gc_content": 0.40342, - "length": 128656, - "md5": "0e834476b9592f25735ae546bdb671f3", - "name": "NODE_189_length_128656_cov_15.853695" - }, - "NODE_1900_length_23477_cov_28.834899": { - "contig_id": "NODE_1900_length_23477_cov_28.834899", - "description": "", - "gc_content": 0.64591, - "length": 23477, - "md5": "be5e8125a55d835f272cc7940db7e3b7", - "name": "NODE_1900_length_23477_cov_28.834899" - }, - "NODE_19091_length_2712_cov_26.974784": { - "contig_id": "NODE_19091_length_2712_cov_26.974784", - "description": "", - "gc_content": 0.62942, - "length": 2712, - "md5": "61ac9b71305dd08cdbabc82faa8befe2", - "name": "NODE_19091_length_2712_cov_26.974784" - }, - "NODE_190_length_127978_cov_577.337062": { - "contig_id": "NODE_190_length_127978_cov_577.337062", - "description": "", - "gc_content": 0.64481, - "length": 127978, - "md5": "53ac6baba2ce190a3383154ae56ac35a", - "name": "NODE_190_length_127978_cov_577.337062" - }, - "NODE_19200_length_2698_cov_1616.952327": { - "contig_id": "NODE_19200_length_2698_cov_1616.952327", - "description": "", - "gc_content": 0.60489, - "length": 2698, - "md5": "4cfe440dc23002ac351a6903bd6a7dc6", - "name": "NODE_19200_length_2698_cov_1616.952327" - }, - "NODE_19201_length_2698_cov_37.102535": { - "contig_id": "NODE_19201_length_2698_cov_37.102535", - "description": "", - "gc_content": 0.52483, - "length": 2698, - "md5": "68c1c2d7848425a26230e3ddd3e52012", - "name": "NODE_19201_length_2698_cov_37.102535" - }, - "NODE_19324_length_2685_cov_33.368821": { - "contig_id": "NODE_19324_length_2685_cov_33.368821", - "description": "", - "gc_content": 0.67076, - "length": 2685, - "md5": "d266d7b863b9aba328c3f6e409466af8", - "name": "NODE_19324_length_2685_cov_33.368821" - }, - "NODE_19348_length_2681_cov_11.974486": { - "contig_id": "NODE_19348_length_2681_cov_11.974486", - "description": "", - "gc_content": 0.44536, - "length": 2681, - "md5": "3a7770cad001744a38f6996cab8d42c6", - "name": "NODE_19348_length_2681_cov_11.974486" - }, - "NODE_19373_length_2678_cov_77.566146": { - "contig_id": "NODE_19373_length_2678_cov_77.566146", - "description": "", - "gc_content": 0.36669, - "length": 2678, - "md5": "a59d842888c6b674997015294198dd40", - "name": "NODE_19373_length_2678_cov_77.566146" - }, - "NODE_19382_length_2677_cov_10.319603": { - "contig_id": "NODE_19382_length_2677_cov_10.319603", - "description": "", - "gc_content": 0.66418, - "length": 2677, - "md5": "9928293b9abecea7a2b4e802e42718d6", - "name": "NODE_19382_length_2677_cov_10.319603" - }, - "NODE_193_length_127741_cov_146.712341": { - "contig_id": "NODE_193_length_127741_cov_146.712341", - "description": "", - "gc_content": 0.50927, - "length": 127741, - "md5": "ed199b76924b270dffdcc44d56092121", - "name": "NODE_193_length_127741_cov_146.712341" - }, - "NODE_1940_length_22981_cov_32.568394": { - "contig_id": "NODE_1940_length_22981_cov_32.568394", - "description": "", - "gc_content": 0.65097, - "length": 22981, - "md5": "0b2594cfdd1bcfa7137f5837f53389bb", - "name": "NODE_1940_length_22981_cov_32.568394" - }, - "NODE_1951_length_22891_cov_14.763838": { - "contig_id": "NODE_1951_length_22891_cov_14.763838", - "description": "", - "gc_content": 0.49509, - "length": 22891, - "md5": "d473c15fe94c71705b8d26e03da96cc8", - "name": "NODE_1951_length_22891_cov_14.763838" - }, - "NODE_19526_length_2662_cov_120.446490": { - "contig_id": "NODE_19526_length_2662_cov_120.446490", - "description": "", - "gc_content": 0.35913, - "length": 2662, - "md5": "c1594e9b469a1ab43e16c1f182c7d561", - "name": "NODE_19526_length_2662_cov_120.446490" - }, - "NODE_196_length_126864_cov_144.754946": { - "contig_id": "NODE_196_length_126864_cov_144.754946", - "description": "", - "gc_content": 0.51792, - "length": 126864, - "md5": "46551e53b0747a42deb433fe03dd5934", - "name": "NODE_196_length_126864_cov_144.754946" - }, - "NODE_19805_length_2629_cov_9.435897": { - "contig_id": "NODE_19805_length_2629_cov_9.435897", - "description": "", - "gc_content": 0.68011, - "length": 2629, - "md5": "ad82d69cf37c82c895b769d1f490abab", - "name": "NODE_19805_length_2629_cov_9.435897" - }, - "NODE_1981_length_22658_cov_16.537053": { - "contig_id": "NODE_1981_length_22658_cov_16.537053", - "description": "", - "gc_content": 0.39505, - "length": 22658, - "md5": "b89620312938e8589c74baf45465f6c4", - "name": "NODE_1981_length_22658_cov_16.537053" - }, - "NODE_19866_length_2622_cov_1687.858979": { - "contig_id": "NODE_19866_length_2622_cov_1687.858979", - "description": "", - "gc_content": 0.61327, - "length": 2622, - "md5": "605a3e6072d9a0bacfc6c929542a2fcf", - "name": "NODE_19866_length_2622_cov_1687.858979" - }, - "NODE_1987_length_22624_cov_31.664008": { - "Ncount": 100, - "contig_id": "NODE_1987_length_22624_cov_31.664008", - "description": "", - "gc_content": 0.63287, - "length": 22624, - "md5": "501860bcda0d4fe79dbbd2588c2abbc8", - "name": "NODE_1987_length_22624_cov_31.664008" - }, - "NODE_19_length_369542_cov_149.371956": { - "Ncount": 100, - "contig_id": "NODE_19_length_369542_cov_149.371956", - "description": "", - "gc_content": 0.51124, - "length": 369542, - "md5": "bd22a6a7e58ffd0fc3efe246acae0ed4", - "name": "NODE_19_length_369542_cov_149.371956" - }, - "NODE_20166_length_2591_cov_106.585174": { - "contig_id": "NODE_20166_length_2591_cov_106.585174", - "description": "", - "gc_content": 0.3655, - "length": 2591, - "md5": "2129a2833e2e81153f76390a2f88839e", - "name": "NODE_20166_length_2591_cov_106.585174" - }, - "NODE_201_length_125344_cov_15.090998": { - "contig_id": "NODE_201_length_125344_cov_15.090998", - "description": "", - "gc_content": 0.49697, - "length": 125344, - "md5": "3406ee041afc61471eebad74ee51cb3e", - "name": "NODE_201_length_125344_cov_15.090998" - }, - "NODE_2021_length_22303_cov_19.278407": { - "contig_id": "NODE_2021_length_22303_cov_19.278407", - "description": "", - "gc_content": 0.39596, - "length": 22303, - "md5": "c8ae4a1d9a97d3d0f442046ec2f89585", - "name": "NODE_2021_length_22303_cov_19.278407" - }, - "NODE_2024_length_22288_cov_140.035488": { - "contig_id": "NODE_2024_length_22288_cov_140.035488", - "description": "", - "gc_content": 0.50538, - "length": 22288, - "md5": "68c558444f1ce83376f2f322bf9c6699", - "name": "NODE_2024_length_22288_cov_140.035488" - }, - "NODE_202_length_125251_cov_15.912897": { - "Ncount": 10, - "contig_id": "NODE_202_length_125251_cov_15.912897", - "description": "", - "gc_content": 0.40702, - "length": 125251, - "md5": "adebbb797c61a9b389e371de7e28732b", - "name": "NODE_202_length_125251_cov_15.912897" - }, - "NODE_20345_length_2571_cov_1645.415342": { - "contig_id": "NODE_20345_length_2571_cov_1645.415342", - "description": "", - "gc_content": 0.60249, - "length": 2571, - "md5": "5e46c63be8d486d2309dbf17ecaddd91", - "name": "NODE_20345_length_2571_cov_1645.415342" - }, - "NODE_203_length_125150_cov_14.346760": { - "contig_id": "NODE_203_length_125150_cov_14.346760", - "description": "", - "gc_content": 0.49377, - "length": 125150, - "md5": "59c792a90eca1a059567165ebd00c55d", - "name": "NODE_203_length_125150_cov_14.346760" - }, - "NODE_20414_length_2565_cov_5.152191": { - "contig_id": "NODE_20414_length_2565_cov_5.152191", - "description": "", - "gc_content": 0.68421, - "length": 2565, - "md5": "df6ad80bf9cc81487f80cc30fa68269e", - "name": "NODE_20414_length_2565_cov_5.152191" - }, - "NODE_2041_length_22180_cov_121.835028": { - "Ncount": 200, - "contig_id": "NODE_2041_length_22180_cov_121.835028", - "description": "", - "gc_content": 0.62516, - "length": 22180, - "md5": "4c25c30b52ef83d36eadd611d90669bf", - "name": "NODE_2041_length_22180_cov_121.835028" - }, - "NODE_20438_length_2562_cov_105.445552": { - "contig_id": "NODE_20438_length_2562_cov_105.445552", - "description": "", - "gc_content": 0.66198, - "length": 2562, - "md5": "6d470704b9d6750657873f9c3a660837", - "name": "NODE_20438_length_2562_cov_105.445552" - }, - "NODE_20454_length_2560_cov_53.267864": { - "contig_id": "NODE_20454_length_2560_cov_53.267864", - "description": "", - "gc_content": 0.61445, - "length": 2560, - "md5": "a2ab7058f11a2ea51121a1ff262a5999", - "name": "NODE_20454_length_2560_cov_53.267864" - }, - "NODE_20500_length_2554_cov_11.466186": { - "contig_id": "NODE_20500_length_2554_cov_11.466186", - "description": "", - "gc_content": 0.67933, - "length": 2554, - "md5": "52cc427e88f766af71b2d3f287186c5f", - "name": "NODE_20500_length_2554_cov_11.466186" - }, - "NODE_20572_length_2545_cov_18.901205": { - "contig_id": "NODE_20572_length_2545_cov_18.901205", - "description": "", - "gc_content": 0.57525, - "length": 2545, - "md5": "c207f9437c4ab42cbc5165b56649b998", - "name": "NODE_20572_length_2545_cov_18.901205" - }, - "NODE_205_length_123479_cov_17.235262": { - "Ncount": 10, - "contig_id": "NODE_205_length_123479_cov_17.235262", - "description": "", - "gc_content": 0.38904, - "length": 123479, - "md5": "f97400776c6c4755ba4ccb85ce2e4544", - "name": "NODE_205_length_123479_cov_17.235262" - }, - "NODE_20681_length_2532_cov_76.142915": { - "contig_id": "NODE_20681_length_2532_cov_76.142915", - "description": "", - "gc_content": 0.63784, - "length": 2532, - "md5": "95c716db1affcb2e3a2aa610a5cfefb4", - "name": "NODE_20681_length_2532_cov_76.142915" - }, - "NODE_20699_length_2530_cov_73.686061": { - "contig_id": "NODE_20699_length_2530_cov_73.686061", - "description": "", - "gc_content": 0.64664, - "length": 2530, - "md5": "8c38eff7220b08cba864095bd40f446a", - "name": "NODE_20699_length_2530_cov_73.686061" - }, - "NODE_206_length_122828_cov_148.107426": { - "contig_id": "NODE_206_length_122828_cov_148.107426", - "description": "", - "gc_content": 0.52381, - "length": 122828, - "md5": "e0a27675214b3494873ffc9eee603137", - "name": "NODE_206_length_122828_cov_148.107426" - }, - "NODE_20705_length_2529_cov_14.567906": { - "contig_id": "NODE_20705_length_2529_cov_14.567906", - "description": "", - "gc_content": 0.66667, - "length": 2529, - "md5": "5b9bff34e98a1e6eb09501ddf80ee54c", - "name": "NODE_20705_length_2529_cov_14.567906" - }, - "NODE_20862_length_2514_cov_123.695811": { - "Ncount": 100, - "contig_id": "NODE_20862_length_2514_cov_123.695811", - "description": "", - "gc_content": 0.58512, - "length": 2514, - "md5": "2ca721c8f711da887aa89fcf82cf6d7b", - "name": "NODE_20862_length_2514_cov_123.695811" - }, - "NODE_2094_length_21613_cov_129.374014": { - "contig_id": "NODE_2094_length_21613_cov_129.374014", - "description": "", - "gc_content": 0.64854, - "length": 21613, - "md5": "89109bd9d10379b63f1fb30f6cef7f03", - "name": "NODE_2094_length_21613_cov_129.374014" - }, - "NODE_209_length_121248_cov_15.258893": { - "contig_id": "NODE_209_length_121248_cov_15.258893", - "description": "", - "gc_content": 0.48802, - "length": 121248, - "md5": "afcac66a25a871b1b7c78b6185843ae0", - "name": "NODE_209_length_121248_cov_15.258893" - }, - "NODE_21060_length_2494_cov_20.006150": { - "contig_id": "NODE_21060_length_2494_cov_20.006150", - "description": "", - "gc_content": 0.38292, - "length": 2494, - "md5": "83a7540de3fbfa8abd5cf0b36c1f750a", - "name": "NODE_21060_length_2494_cov_20.006150" - }, - "NODE_210_length_121139_cov_143.656643": { - "contig_id": "NODE_210_length_121139_cov_143.656643", - "description": "", - "gc_content": 0.39, - "length": 121139, - "md5": "9015f02fa87821d35907fcb73959d83b", - "name": "NODE_210_length_121139_cov_143.656643" - }, - "NODE_21139_length_2486_cov_32.889346": { - "contig_id": "NODE_21139_length_2486_cov_32.889346", - "description": "", - "gc_content": 0.64079, - "length": 2486, - "md5": "59f8cdf233b4ac588f02926cb4147c78", - "name": "NODE_21139_length_2486_cov_32.889346" - }, - "NODE_2114_length_21380_cov_33.128581": { - "contig_id": "NODE_2114_length_21380_cov_33.128581", - "description": "", - "gc_content": 0.64471, - "length": 21380, - "md5": "f9a9233dbb4cfbc5b2dd6e5b282c0bd3", - "name": "NODE_2114_length_21380_cov_33.128581" - }, - "NODE_211_length_120816_cov_152.852071": { - "contig_id": "NODE_211_length_120816_cov_152.852071", - "description": "", - "gc_content": 0.51144, - "length": 120816, - "md5": "b7845b10b5b6a593894c48824af69ba0", - "name": "NODE_211_length_120816_cov_152.852071" - }, - "NODE_2123_length_21252_cov_123.174789": { - "contig_id": "NODE_2123_length_21252_cov_123.174789", - "description": "", - "gc_content": 0.64775, - "length": 21252, - "md5": "2f1fa4170ffc2ecefb1957b62050f437", - "name": "NODE_2123_length_21252_cov_123.174789" - }, - "NODE_212_length_120224_cov_9.172449": { - "Ncount": 100, - "contig_id": "NODE_212_length_120224_cov_9.172449", - "description": "", - "gc_content": 0.67688, - "length": 120224, - "md5": "659fcfb677fe8cb4718e51db2628a579", - "name": "NODE_212_length_120224_cov_9.172449" - }, - "NODE_21312_length_2470_cov_30.257557": { - "contig_id": "NODE_21312_length_2470_cov_30.257557", - "description": "", - "gc_content": 0.63482, - "length": 2470, - "md5": "22b84a8d0d216339640d885f18d2a849", - "name": "NODE_21312_length_2470_cov_30.257557" - }, - "NODE_2131_length_21181_cov_127.316908": { - "contig_id": "NODE_2131_length_21181_cov_127.316908", - "description": "", - "gc_content": 0.35064, - "length": 21181, - "md5": "14705763fbcd8729dc2d9824815f0a0b", - "name": "NODE_2131_length_21181_cov_127.316908" - }, - "NODE_21449_length_2458_cov_32.880150": { - "contig_id": "NODE_21449_length_2458_cov_32.880150", - "description": "", - "gc_content": 0.64605, - "length": 2458, - "md5": "6be20dbbac680377aa9121e70b1d2ac0", - "name": "NODE_21449_length_2458_cov_32.880150" - }, - "NODE_21472_length_2455_cov_21.988333": { - "contig_id": "NODE_21472_length_2455_cov_21.988333", - "description": "", - "gc_content": 0.41222, - "length": 2455, - "md5": "3465614b571ac2c5be8067c01f67e82b", - "name": "NODE_21472_length_2455_cov_21.988333" - }, - "NODE_214_length_120175_cov_136.545521": { - "contig_id": "NODE_214_length_120175_cov_136.545521", - "description": "", - "gc_content": 0.38629, - "length": 120175, - "md5": "411ea797a18191e19e3c94c958e78e55", - "name": "NODE_214_length_120175_cov_136.545521" - }, - "NODE_2154_length_21011_cov_29.233823": { - "contig_id": "NODE_2154_length_21011_cov_29.233823", - "description": "", - "gc_content": 0.64062, - "length": 21011, - "md5": "18f2660439051eebdc3ac9655de76ee5", - "name": "NODE_2154_length_21011_cov_29.233823" - }, - "NODE_21600_length_2445_cov_104.370711": { - "contig_id": "NODE_21600_length_2445_cov_104.370711", - "description": "", - "gc_content": 0.65153, - "length": 2445, - "md5": "73bc99563d2be72a7a5aff116ef2d920", - "name": "NODE_21600_length_2445_cov_104.370711" - }, - "NODE_21634_length_2441_cov_82.142498": { - "contig_id": "NODE_21634_length_2441_cov_82.142498", - "description": "", - "gc_content": 0.38058, - "length": 2441, - "md5": "87d25b1373d7fb26f93a50cd60676e3e", - "name": "NODE_21634_length_2441_cov_82.142498" - }, - "NODE_21643_length_2440_cov_30.818868": { - "contig_id": "NODE_21643_length_2440_cov_30.818868", - "description": "", - "gc_content": 0.66066, - "length": 2440, - "md5": "bcce3bcd01580314243e66cd42f17256", - "name": "NODE_21643_length_2440_cov_30.818868" - }, - "NODE_21644_length_2440_cov_13.709015": { - "contig_id": "NODE_21644_length_2440_cov_13.709015", - "description": "", - "gc_content": 0.63115, - "length": 2440, - "md5": "c457e1ea439ad6bacf7d3cbdf49b2d6d", - "name": "NODE_21644_length_2440_cov_13.709015" - }, - "NODE_2169_length_20871_cov_28.733907": { - "contig_id": "NODE_2169_length_20871_cov_28.733907", - "description": "", - "gc_content": 0.63888, - "length": 20871, - "md5": "1744ac49e576aab1295b71dce0e6f800", - "name": "NODE_2169_length_20871_cov_28.733907" - }, - "NODE_216_length_119933_cov_165.404553": { - "contig_id": "NODE_216_length_119933_cov_165.404553", - "description": "", - "gc_content": 0.48752, - "length": 119933, - "md5": "5ac2672a8816ff8447c0b9c524171bfd", - "name": "NODE_216_length_119933_cov_165.404553" - }, - "NODE_21726_length_2432_cov_41.725284": { - "contig_id": "NODE_21726_length_2432_cov_41.725284", - "description": "", - "gc_content": 0.65419, - "length": 2432, - "md5": "f453270a274667562d85ad62a4955f2c", - "name": "NODE_21726_length_2432_cov_41.725284" - }, - "NODE_218_length_119186_cov_14.999673": { - "contig_id": "NODE_218_length_119186_cov_14.999673", - "description": "", - "gc_content": 0.4915, - "length": 119186, - "md5": "56a1dd15ee50ae84dcd7042c301a8116", - "name": "NODE_218_length_119186_cov_14.999673" - }, - "NODE_21910_length_2415_cov_73.944915": { - "contig_id": "NODE_21910_length_2415_cov_73.944915", - "description": "", - "gc_content": 0.35942, - "length": 2415, - "md5": "98bce8ee509a2c60a7393fe53c4ca140", - "name": "NODE_21910_length_2415_cov_73.944915" - }, - "NODE_21957_length_2411_cov_14.854839": { - "contig_id": "NODE_21957_length_2411_cov_14.854839", - "description": "", - "gc_content": 0.34343, - "length": 2411, - "md5": "56bd42c9d44828566065c90183ec47fe", - "name": "NODE_21957_length_2411_cov_14.854839" - }, - "NODE_2197_length_20546_cov_26.578742": { - "contig_id": "NODE_2197_length_20546_cov_26.578742", - "description": "", - "gc_content": 0.39857, - "length": 20546, - "md5": "ba3c4cdf1dd42b8e256dad7518f333f9", - "name": "NODE_2197_length_20546_cov_26.578742" - }, - "NODE_21993_length_2408_cov_30.219720": { - "contig_id": "NODE_21993_length_2408_cov_30.219720", - "description": "", - "gc_content": 0.65864, - "length": 2408, - "md5": "3f71a80f3bef24eeccc004da3df712b2", - "name": "NODE_21993_length_2408_cov_30.219720" - }, - "NODE_21_length_350571_cov_150.902159": { - "contig_id": "NODE_21_length_350571_cov_150.902159", - "description": "", - "gc_content": 0.51789, - "length": 350571, - "md5": "a82c25ebdfb659918d2c6f4d86e59dc8", - "name": "NODE_21_length_350571_cov_150.902159" - }, - "NODE_22074_length_2401_cov_66.304774": { - "contig_id": "NODE_22074_length_2401_cov_66.304774", - "description": "", - "gc_content": 0.34694, - "length": 2401, - "md5": "85a2a5dd4046280f01b14460ff325876", - "name": "NODE_22074_length_2401_cov_66.304774" - }, - "NODE_22075_length_2401_cov_50.753623": { - "contig_id": "NODE_22075_length_2401_cov_50.753623", - "description": "", - "gc_content": 0.64307, - "length": 2401, - "md5": "6742d5284e6bf1fbddc1008e1b60be79", - "name": "NODE_22075_length_2401_cov_50.753623" - }, - "NODE_22087_length_2400_cov_1776.462260": { - "contig_id": "NODE_22087_length_2400_cov_1776.462260", - "description": "", - "gc_content": 0.62, - "length": 2400, - "md5": "937c474d331edc9334c610bfe3d57017", - "name": "NODE_22087_length_2400_cov_1776.462260" - }, - "NODE_22303_length_2382_cov_106.602922": { - "contig_id": "NODE_22303_length_2382_cov_106.602922", - "description": "", - "gc_content": 0.67086, - "length": 2382, - "md5": "0da2462ef325456f0ee6782a01149250", - "name": "NODE_22303_length_2382_cov_106.602922" - }, - "NODE_2234_length_20258_cov_16.150027": { - "contig_id": "NODE_2234_length_20258_cov_16.150027", - "description": "", - "gc_content": 0.40384, - "length": 20258, - "md5": "9ff8a5a4092db9fb47cfb7dc144020c5", - "name": "NODE_2234_length_20258_cov_16.150027" - }, - "NODE_22376_length_2376_cov_12.784576": { - "contig_id": "NODE_22376_length_2376_cov_12.784576", - "description": "", - "gc_content": 0.38552, - "length": 2376, - "md5": "f786c0ac3dc8d809b8697217699d685b", - "name": "NODE_22376_length_2376_cov_12.784576" - }, - "NODE_224_length_117235_cov_16.299206": { - "contig_id": "NODE_224_length_117235_cov_16.299206", - "description": "", - "gc_content": 0.47304, - "length": 117235, - "md5": "39d6c659f6c5c60a2045985334a230df", - "name": "NODE_224_length_117235_cov_16.299206" - }, - "NODE_22520_length_2364_cov_7.979645": { - "contig_id": "NODE_22520_length_2364_cov_7.979645", - "description": "", - "gc_content": 0.68316, - "length": 2364, - "md5": "b9746150c81b1e379000e8e621dad094", - "name": "NODE_22520_length_2364_cov_7.979645" - }, - "NODE_22528_length_2363_cov_65.252600": { - "contig_id": "NODE_22528_length_2363_cov_65.252600", - "description": "", - "gc_content": 0.34236, - "length": 2363, - "md5": "5e00324d39c89adb68d58a40898fd151", - "name": "NODE_22528_length_2363_cov_65.252600" - }, - "NODE_22547_length_2361_cov_13.968777": { - "contig_id": "NODE_22547_length_2361_cov_13.968777", - "description": "", - "gc_content": 0.42948, - "length": 2361, - "md5": "f6e8e4d5f708decaa96adc75bc6c99bf", - "name": "NODE_22547_length_2361_cov_13.968777" - }, - "NODE_225_length_117118_cov_133.096674": { - "contig_id": "NODE_225_length_117118_cov_133.096674", - "description": "", - "gc_content": 0.39295, - "length": 117118, - "md5": "67d76a3cba24f4f449dce1157b351905", - "name": "NODE_225_length_117118_cov_133.096674" - }, - "NODE_2264_length_20025_cov_28.201552": { - "contig_id": "NODE_2264_length_20025_cov_28.201552", - "description": "", - "gc_content": 0.6404, - "length": 20025, - "md5": "6fef3b910a0da045be5b20603a4d53d9", - "name": "NODE_2264_length_20025_cov_28.201552" - }, - "NODE_22724_length_2346_cov_71.536010": { - "contig_id": "NODE_22724_length_2346_cov_71.536010", - "description": "", - "gc_content": 0.315, - "length": 2346, - "md5": "61b8f8031fefd331e0e7ebca84326b3d", - "name": "NODE_22724_length_2346_cov_71.536010" - }, - "NODE_22820_length_2338_cov_35.425756": { - "contig_id": "NODE_22820_length_2338_cov_35.425756", - "description": "", - "gc_content": 0.62789, - "length": 2338, - "md5": "a08eeed2a4d43bee7017c213b92c3972", - "name": "NODE_22820_length_2338_cov_35.425756" - }, - "NODE_22834_length_2337_cov_9.636722": { - "contig_id": "NODE_22834_length_2337_cov_9.636722", - "description": "", - "gc_content": 0.33718, - "length": 2337, - "md5": "8958de94b2a7e2d2713c79cff2eeb885", - "name": "NODE_22834_length_2337_cov_9.636722" - }, - "NODE_2287_length_19856_cov_166.299328": { - "contig_id": "NODE_2287_length_19856_cov_166.299328", - "description": "", - "gc_content": 0.50453, - "length": 19856, - "md5": "48ffba25f1a615468ab132ee2470462c", - "name": "NODE_2287_length_19856_cov_166.299328" - }, - "NODE_2292_length_19808_cov_29.671949": { - "Ncount": 100, - "contig_id": "NODE_2292_length_19808_cov_29.671949", - "description": "", - "gc_content": 0.65554, - "length": 19808, - "md5": "957353668df85c10e3a65d77b8d56e75", - "name": "NODE_2292_length_19808_cov_29.671949" - }, - "NODE_2295_length_19773_cov_112.840298": { - "contig_id": "NODE_2295_length_19773_cov_112.840298", - "description": "", - "gc_content": 0.63061, - "length": 19773, - "md5": "b65b4d2eb44929666f1fb4643cb97640", - "name": "NODE_2295_length_19773_cov_112.840298" - }, - "NODE_22992_length_2325_cov_160.096035": { - "contig_id": "NODE_22992_length_2325_cov_160.096035", - "description": "", - "gc_content": 0.3372, - "length": 2325, - "md5": "7f6dca3ec38155b5bc0c3f2e80d12c09", - "name": "NODE_22992_length_2325_cov_160.096035" - }, - "NODE_22_length_339019_cov_146.931987": { - "contig_id": "NODE_22_length_339019_cov_146.931987", - "description": "", - "gc_content": 0.51248, - "length": 339019, - "md5": "a5f90d563884abaf53bc44da0662e13e", - "name": "NODE_22_length_339019_cov_146.931987" - }, - "NODE_2301_length_19716_cov_13.865826": { - "Ncount": 100, - "contig_id": "NODE_2301_length_19716_cov_13.865826", - "description": "", - "gc_content": 0.49046, - "length": 19716, - "md5": "d89b2e55295d84dd3a1f31f6b9b1eb55", - "name": "NODE_2301_length_19716_cov_13.865826" - }, - "NODE_23090_length_2317_cov_289.395225": { - "contig_id": "NODE_23090_length_2317_cov_289.395225", - "description": "", - "gc_content": 0.48425, - "length": 2317, - "md5": "cbe5404b7508e5e074e72e590b6a1938", - "name": "NODE_23090_length_2317_cov_289.395225" - }, - "NODE_2315_length_19592_cov_9.143471": { - "contig_id": "NODE_2315_length_19592_cov_9.143471", - "description": "", - "gc_content": 0.65557, - "length": 19592, - "md5": "1c3c871e7176e0ee211ad0d35f9919cd", - "name": "NODE_2315_length_19592_cov_9.143471" - }, - "NODE_23175_length_2310_cov_1695.530820": { - "contig_id": "NODE_23175_length_2310_cov_1695.530820", - "description": "", - "gc_content": 0.63896, - "length": 2310, - "md5": "a3b68a12468be3a27a3f42587b7efbc1", - "name": "NODE_23175_length_2310_cov_1695.530820" - }, - "NODE_2318_length_19558_cov_130.422499": { - "contig_id": "NODE_2318_length_19558_cov_130.422499", - "description": "", - "gc_content": 0.63202, - "length": 19558, - "md5": "42a58a77224bda18b7ca2ccc2db52797", - "name": "NODE_2318_length_19558_cov_130.422499" - }, - "NODE_231_length_114862_cov_18.500910": { - "contig_id": "NODE_231_length_114862_cov_18.500910", - "description": "", - "gc_content": 0.40602, - "length": 114862, - "md5": "fe49f5adba9f790ff834f0086ad98e95", - "name": "NODE_231_length_114862_cov_18.500910" - }, - "NODE_23221_length_2307_cov_14.066163": { - "contig_id": "NODE_23221_length_2307_cov_14.066163", - "description": "", - "gc_content": 0.53273, - "length": 2307, - "md5": "9e1150dd6f712a01ba94a58a3b228964", - "name": "NODE_23221_length_2307_cov_14.066163" - }, - "NODE_23248_length_2305_cov_91.095111": { - "contig_id": "NODE_23248_length_2305_cov_91.095111", - "description": "", - "gc_content": 0.59913, - "length": 2305, - "md5": "3bfff33175900e01734557f46a05d1b9", - "name": "NODE_23248_length_2305_cov_91.095111" - }, - "NODE_232_length_114784_cov_136.072231": { - "contig_id": "NODE_232_length_114784_cov_136.072231", - "description": "", - "gc_content": 0.3914, - "length": 114784, - "md5": "beaa271e402b426cb3f5e1ffada114b4", - "name": "NODE_232_length_114784_cov_136.072231" - }, - "NODE_23324_length_2299_cov_10.996435": { - "contig_id": "NODE_23324_length_2299_cov_10.996435", - "description": "", - "gc_content": 0.31448, - "length": 2299, - "md5": "0138db32c0a9ad6651b1c0bfb724891e", - "name": "NODE_23324_length_2299_cov_10.996435" - }, - "NODE_2334_length_19474_cov_9.178228": { - "contig_id": "NODE_2334_length_19474_cov_9.178228", - "description": "", - "gc_content": 0.6294, - "length": 19474, - "md5": "52b62a931384588e4fcd17660233f9b6", - "name": "NODE_2334_length_19474_cov_9.178228" - }, - "NODE_23356_length_2296_cov_143.576528": { - "contig_id": "NODE_23356_length_2296_cov_143.576528", - "description": "", - "gc_content": 0.46951, - "length": 2296, - "md5": "f34bf44aa94b05975dfc8b5c17687fca", - "name": "NODE_23356_length_2296_cov_143.576528" - }, - "NODE_234_length_113993_cov_16.541207": { - "contig_id": "NODE_234_length_113993_cov_16.541207", - "description": "", - "gc_content": 0.49412, - "length": 113993, - "md5": "220c5aecee23f3136734226adc84eb08", - "name": "NODE_234_length_113993_cov_16.541207" - }, - "NODE_23514_length_2284_cov_75.495738": { - "contig_id": "NODE_23514_length_2284_cov_75.495738", - "description": "", - "gc_content": 0.39842, - "length": 2284, - "md5": "7d5abc00d79764ccfd47f4f0f26a19a1", - "name": "NODE_23514_length_2284_cov_75.495738" - }, - "NODE_23515_length_2284_cov_62.226110": { - "contig_id": "NODE_23515_length_2284_cov_62.226110", - "description": "", - "gc_content": 0.63704, - "length": 2284, - "md5": "cc56baf1a6397fbc49d33f1de6ee5712", - "name": "NODE_23515_length_2284_cov_62.226110" - }, - "NODE_235_length_113953_cov_29.965513": { - "contig_id": "NODE_235_length_113953_cov_29.965513", - "description": "", - "gc_content": 0.64437, - "length": 113953, - "md5": "243d21bd84f0b0854ff2f7e0e0516804", - "name": "NODE_235_length_113953_cov_29.965513" - }, - "NODE_2362_length_19236_cov_138.785048": { - "contig_id": "NODE_2362_length_19236_cov_138.785048", - "description": "", - "gc_content": 0.38303, - "length": 19236, - "md5": "4779f3998170cabb9a672b85427b0afb", - "name": "NODE_2362_length_19236_cov_138.785048" - }, - "NODE_2381_length_19117_cov_15.609118": { - "contig_id": "NODE_2381_length_19117_cov_15.609118", - "description": "", - "gc_content": 0.32772, - "length": 19117, - "md5": "17f31271e3cb12a3da0bdcc5034493be", - "name": "NODE_2381_length_19117_cov_15.609118" - }, - "NODE_23978_length_2249_cov_78.826345": { - "contig_id": "NODE_23978_length_2249_cov_78.826345", - "description": "", - "gc_content": 0.65273, - "length": 2249, - "md5": "82f0cd7b06abad54b5ba00b8804f9ce8", - "name": "NODE_23978_length_2249_cov_78.826345" - }, - "NODE_2398_length_19024_cov_30.808213": { - "Ncount": 200, - "contig_id": "NODE_2398_length_19024_cov_30.808213", - "description": "", - "gc_content": 0.63877, - "length": 19024, - "md5": "86dc98f081bf79fe6b17dd01d9b988fb", - "name": "NODE_2398_length_19024_cov_30.808213" - }, - "NODE_239_length_113581_cov_8.696986": { - "Ncount": 100, - "contig_id": "NODE_239_length_113581_cov_8.696986", - "description": "", - "gc_content": 0.65862, - "length": 113581, - "md5": "5386cdba4c4f9b403437712a85424c3f", - "name": "NODE_239_length_113581_cov_8.696986" - }, - "NODE_2401_length_18970_cov_31.233518": { - "contig_id": "NODE_2401_length_18970_cov_31.233518", - "description": "", - "gc_content": 0.64475, - "length": 18970, - "md5": "68cf29ee2b1e2ebb95733a88c10ef5da", - "name": "NODE_2401_length_18970_cov_31.233518" - }, - "NODE_24072_length_2243_cov_112.176417": { - "contig_id": "NODE_24072_length_2243_cov_112.176417", - "description": "", - "gc_content": 0.63085, - "length": 2243, - "md5": "2cc04e8d8b141a1dea3b0394e74e2d23", - "name": "NODE_24072_length_2243_cov_112.176417" - }, - "NODE_24139_length_2237_cov_94.315307": { - "contig_id": "NODE_24139_length_2237_cov_94.315307", - "description": "", - "gc_content": 0.36209, - "length": 2237, - "md5": "c7c8738f5719a9951b208a1de8da1c81", - "name": "NODE_24139_length_2237_cov_94.315307" - }, - "NODE_24199_length_2233_cov_76.191460": { - "contig_id": "NODE_24199_length_2233_cov_76.191460", - "description": "", - "gc_content": 0.34707, - "length": 2233, - "md5": "ef476a362496d2049b339cfbbf5d2253", - "name": "NODE_24199_length_2233_cov_76.191460" - }, - "NODE_24200_length_2233_cov_33.382002": { - "contig_id": "NODE_24200_length_2233_cov_33.382002", - "description": "", - "gc_content": 0.33766, - "length": 2233, - "md5": "a16045af8ea03a1e13e818814a6670b6", - "name": "NODE_24200_length_2233_cov_33.382002" - }, - "NODE_24211_length_2232_cov_11.887919": { - "contig_id": "NODE_24211_length_2232_cov_11.887919", - "description": "", - "gc_content": 0.66846, - "length": 2232, - "md5": "1b2aa681149bf79d1076d78b9aea402f", - "name": "NODE_24211_length_2232_cov_11.887919" - }, - "NODE_24270_length_2227_cov_41.495856": { - "contig_id": "NODE_24270_length_2227_cov_41.495856", - "description": "", - "gc_content": 0.61608, - "length": 2227, - "md5": "66956f568246eacc3cfe5ffe55aca56c", - "name": "NODE_24270_length_2227_cov_41.495856" - }, - "NODE_24411_length_2215_cov_15.628704": { - "contig_id": "NODE_24411_length_2215_cov_15.628704", - "description": "", - "gc_content": 0.38781, - "length": 2215, - "md5": "a73672703ce14e8f83c594fcfaf227e0", - "name": "NODE_24411_length_2215_cov_15.628704" - }, - "NODE_24505_length_2207_cov_58.144517": { - "contig_id": "NODE_24505_length_2207_cov_58.144517", - "description": "", - "gc_content": 0.66153, - "length": 2207, - "md5": "3998676374c20e64a32b954339fbf50b", - "name": "NODE_24505_length_2207_cov_58.144517" - }, - "NODE_245_length_112932_cov_135.593540": { - "contig_id": "NODE_245_length_112932_cov_135.593540", - "description": "", - "gc_content": 0.38977, - "length": 112932, - "md5": "58096bee56970104e3398a7516ccfd0f", - "name": "NODE_245_length_112932_cov_135.593540" - }, - "NODE_246_length_112673_cov_113.474240": { - "Ncount": 200, - "contig_id": "NODE_246_length_112673_cov_113.474240", - "description": "", - "gc_content": 0.6584, - "length": 112673, - "md5": "84318c56bda192f6d772e1db54441254", - "name": "NODE_246_length_112673_cov_113.474240" - }, - "NODE_24739_length_2190_cov_167.254801": { - "contig_id": "NODE_24739_length_2190_cov_167.254801", - "description": "", - "gc_content": 0.42374, - "length": 2190, - "md5": "81ae4ce7ac4c10dab4661595a7c613af", - "name": "NODE_24739_length_2190_cov_167.254801" - }, - "NODE_24766_length_2188_cov_34.692452": { - "contig_id": "NODE_24766_length_2188_cov_34.692452", - "description": "", - "gc_content": 0.67962, - "length": 2188, - "md5": "ba910974081ca4e210ecf71e4e295331", - "name": "NODE_24766_length_2188_cov_34.692452" - }, - "NODE_247_length_112285_cov_124.510683": { - "Ncount": 400, - "contig_id": "NODE_247_length_112285_cov_124.510683", - "description": "", - "gc_content": 0.64819, - "length": 112285, - "md5": "fa192fbbc749e6b669fcc98b9f386546", - "name": "NODE_247_length_112285_cov_124.510683" - }, - "NODE_24834_length_2183_cov_47.104323": { - "contig_id": "NODE_24834_length_2183_cov_47.104323", - "description": "", - "gc_content": 0.60834, - "length": 2183, - "md5": "48946ff4d9e1a76c32876d0bb74ac5d2", - "name": "NODE_24834_length_2183_cov_47.104323" - }, - "NODE_24835_length_2183_cov_20.057331": { - "contig_id": "NODE_24835_length_2183_cov_20.057331", - "description": "", - "gc_content": 0.33761, - "length": 2183, - "md5": "a593e4f325bf687c45ad50e1deb2b227", - "name": "NODE_24835_length_2183_cov_20.057331" - }, - "NODE_24869_length_2180_cov_150.608471": { - "contig_id": "NODE_24869_length_2180_cov_150.608471", - "description": "", - "gc_content": 0.36468, - "length": 2180, - "md5": "e48a8f2c07515e00fba4479ed6707202", - "name": "NODE_24869_length_2180_cov_150.608471" - }, - "NODE_248_length_112192_cov_149.328990": { - "contig_id": "NODE_248_length_112192_cov_149.328990", - "description": "", - "gc_content": 0.52424, - "length": 112192, - "md5": "f906ebe4a1ba078cabeb9996aad94388", - "name": "NODE_248_length_112192_cov_149.328990" - }, - "NODE_24915_length_2176_cov_24.019802": { - "contig_id": "NODE_24915_length_2176_cov_24.019802", - "description": "", - "gc_content": 0.63649, - "length": 2176, - "md5": "7ccf17a2c0cfb52b881a56e134c6bf5a", - "name": "NODE_24915_length_2176_cov_24.019802" - }, - "NODE_24944_length_2174_cov_26.401605": { - "contig_id": "NODE_24944_length_2174_cov_26.401605", - "description": "", - "gc_content": 0.55014, - "length": 2174, - "md5": "ad2fe03c3724a9ccb50f887ef4aed53d", - "name": "NODE_24944_length_2174_cov_26.401605" - }, - "NODE_24963_length_2173_cov_9.739849": { - "contig_id": "NODE_24963_length_2173_cov_9.739849", - "description": "", - "gc_content": 0.34929, - "length": 2173, - "md5": "bec9282c706a9a5f8d30d8db08f3dba6", - "name": "NODE_24963_length_2173_cov_9.739849" - }, - "NODE_25003_length_2170_cov_29.317258": { - "contig_id": "NODE_25003_length_2170_cov_29.317258", - "description": "", - "gc_content": 0.67235, - "length": 2170, - "md5": "12e2bc97ca5dc40943c9daaa4f1c99e5", - "name": "NODE_25003_length_2170_cov_29.317258" - }, - "NODE_25066_length_2165_cov_35.720853": { - "contig_id": "NODE_25066_length_2165_cov_35.720853", - "description": "", - "gc_content": 0.37783, - "length": 2165, - "md5": "aa3dde4ae07b0c7e3cb0682eb6ef602e", - "name": "NODE_25066_length_2165_cov_35.720853" - }, - "NODE_25122_length_2161_cov_26.171890": { - "contig_id": "NODE_25122_length_2161_cov_26.171890", - "description": "", - "gc_content": 0.61407, - "length": 2161, - "md5": "db5027cb2fe1b4c70c07215f91e54afe", - "name": "NODE_25122_length_2161_cov_26.171890" - }, - "NODE_25123_length_2161_cov_25.907407": { - "contig_id": "NODE_25123_length_2161_cov_25.907407", - "description": "", - "gc_content": 0.57566, - "length": 2161, - "md5": "29fa12a850c6f5db4fbfee2adbb7a1ea", - "name": "NODE_25123_length_2161_cov_25.907407" - }, - "NODE_25179_length_2156_cov_1710.533555": { - "contig_id": "NODE_25179_length_2156_cov_1710.533555", - "description": "", - "gc_content": 0.61224, - "length": 2156, - "md5": "0bf28f05a0da05ef6a28dc2d7bec0bbc", - "name": "NODE_25179_length_2156_cov_1710.533555" - }, - "NODE_25270_length_2150_cov_47.964200": { - "contig_id": "NODE_25270_length_2150_cov_47.964200", - "description": "", - "gc_content": 0.6707, - "length": 2150, - "md5": "b7661ae5ac96eccf82fadb312062b7cc", - "name": "NODE_25270_length_2150_cov_47.964200" - }, - "NODE_25271_length_2150_cov_8.526014": { - "contig_id": "NODE_25271_length_2150_cov_8.526014", - "description": "", - "gc_content": 0.69535, - "length": 2150, - "md5": "9995590ff62f8c4dba51c05b12d40d66", - "name": "NODE_25271_length_2150_cov_8.526014" - }, - "NODE_25353_length_2144_cov_13.205840": { - "contig_id": "NODE_25353_length_2144_cov_13.205840", - "description": "", - "gc_content": 0.39879, - "length": 2144, - "md5": "e3f56741a8afb204925cfbc3841b39f1", - "name": "NODE_25353_length_2144_cov_13.205840" - }, - "NODE_25381_length_2142_cov_9.712027": { - "contig_id": "NODE_25381_length_2142_cov_9.712027", - "description": "", - "gc_content": 0.36648, - "length": 2142, - "md5": "657d8e72c847e7a4d0aa6816e3027df3", - "name": "NODE_25381_length_2142_cov_9.712027" - }, - "NODE_253_length_110929_cov_15.534210": { - "contig_id": "NODE_253_length_110929_cov_15.534210", - "description": "", - "gc_content": 0.49392, - "length": 110929, - "md5": "bfe1171b672ff3dae59641041ff03ea0", - "name": "NODE_253_length_110929_cov_15.534210" - }, - "NODE_25409_length_2140_cov_32.541007": { - "contig_id": "NODE_25409_length_2140_cov_32.541007", - "description": "", - "gc_content": 0.3486, - "length": 2140, - "md5": "054e81e165834dd625c62d3c032bd5dc", - "name": "NODE_25409_length_2140_cov_32.541007" - }, - "NODE_25480_length_2135_cov_136.434135": { - "contig_id": "NODE_25480_length_2135_cov_136.434135", - "description": "", - "gc_content": 0.363, - "length": 2135, - "md5": "b73be3d91984907b77b58aece0860960", - "name": "NODE_25480_length_2135_cov_136.434135" - }, - "NODE_25508_length_2133_cov_10.584697": { - "contig_id": "NODE_25508_length_2133_cov_10.584697", - "description": "", - "gc_content": 0.35677, - "length": 2133, - "md5": "ade30762cb38dc503e856fb0b257020a", - "name": "NODE_25508_length_2133_cov_10.584697" - }, - "NODE_2554_length_17929_cov_9.254392": { - "contig_id": "NODE_2554_length_17929_cov_9.254392", - "description": "", - "gc_content": 0.67533, - "length": 17929, - "md5": "4cb4b72c74615a784c74ab1fcdba80f2", - "name": "NODE_2554_length_17929_cov_9.254392" - }, - "NODE_2563_length_17875_cov_28.742031": { - "contig_id": "NODE_2563_length_17875_cov_28.742031", - "description": "", - "gc_content": 0.61622, - "length": 17875, - "md5": "d75643d677dbbc821db8cf4f0f27555d", - "name": "NODE_2563_length_17875_cov_28.742031" - }, - "NODE_25653_length_2123_cov_30.176983": { - "contig_id": "NODE_25653_length_2123_cov_30.176983", - "description": "", - "gc_content": 0.41686, - "length": 2123, - "md5": "0739adf28f508bf55e2277663ee5c945", - "name": "NODE_25653_length_2123_cov_30.176983" - }, - "NODE_2570_length_17838_cov_29.131586": { - "Ncount": 100, - "contig_id": "NODE_2570_length_17838_cov_29.131586", - "description": "", - "gc_content": 0.62731, - "length": 17838, - "md5": "b0457a2f91592b950558ec6e5b51cadb", - "name": "NODE_2570_length_17838_cov_29.131586" - }, - "NODE_257_length_110767_cov_108.798847": { - "Ncount": 200, - "contig_id": "NODE_257_length_110767_cov_108.798847", - "description": "", - "gc_content": 0.6538, - "length": 110767, - "md5": "28dc43ae1a691928a729312ba874981e", - "name": "NODE_257_length_110767_cov_108.798847" - }, - "NODE_258_length_110174_cov_21.555608": { - "contig_id": "NODE_258_length_110174_cov_21.555608", - "description": "", - "gc_content": 0.39666, - "length": 110174, - "md5": "53d69f38a72fd960d6cb2a9ad1e8b78d", - "name": "NODE_258_length_110174_cov_21.555608" - }, - "NODE_25919_length_2103_cov_195.544922": { - "contig_id": "NODE_25919_length_2103_cov_195.544922", - "description": "", - "gc_content": 0.43747, - "length": 2103, - "md5": "f2b3e678660c2e41081e440387c68a7e", - "name": "NODE_25919_length_2103_cov_195.544922" - }, - "NODE_25_length_329311_cov_157.847954": { - "contig_id": "NODE_25_length_329311_cov_157.847954", - "description": "", - "gc_content": 0.50993, - "length": 329311, - "md5": "8ab621fb1b64b8c5afd3fc0b62bcf9b9", - "name": "NODE_25_length_329311_cov_157.847954" - }, - "NODE_26074_length_2092_cov_10.183603": { - "contig_id": "NODE_26074_length_2092_cov_10.183603", - "description": "", - "gc_content": 0.63671, - "length": 2092, - "md5": "dd97788eb9aaa0e54c147c1cbfee6263", - "name": "NODE_26074_length_2092_cov_10.183603" - }, - "NODE_2610_length_17619_cov_33.192895": { - "contig_id": "NODE_2610_length_17619_cov_33.192895", - "description": "", - "gc_content": 0.64765, - "length": 17619, - "md5": "f7078ab66ae61c70b65fc4f44fb0e315", - "name": "NODE_2610_length_17619_cov_33.192895" - }, - "NODE_26121_length_2089_cov_28.469027": { - "contig_id": "NODE_26121_length_2089_cov_28.469027", - "description": "", - "gc_content": 0.64241, - "length": 2089, - "md5": "b27acced2eaa70133a20c4100e22efa7", - "name": "NODE_26121_length_2089_cov_28.469027" - }, - "NODE_2616_length_17587_cov_35.150240": { - "contig_id": "NODE_2616_length_17587_cov_35.150240", - "description": "", - "gc_content": 0.65241, - "length": 17587, - "md5": "5a6d6a5782b1b47dca7b5a27dce0f4fc", - "name": "NODE_2616_length_17587_cov_35.150240" - }, - "NODE_26193_length_2084_cov_6.963529": { - "contig_id": "NODE_26193_length_2084_cov_6.963529", - "description": "", - "gc_content": 0.67131, - "length": 2084, - "md5": "fff7dedd3e4903864236fda81cf4a501", - "name": "NODE_26193_length_2084_cov_6.963529" - }, - "NODE_26234_length_2081_cov_75.734452": { - "contig_id": "NODE_26234_length_2081_cov_75.734452", - "description": "", - "gc_content": 0.66074, - "length": 2081, - "md5": "4bcfdd89c442b1ca204e58bf3cbd1b2d", - "name": "NODE_26234_length_2081_cov_75.734452" - }, - "NODE_26235_length_2081_cov_9.362784": { - "contig_id": "NODE_26235_length_2081_cov_9.362784", - "description": "", - "gc_content": 0.68861, - "length": 2081, - "md5": "1df4129150903f511fe77253ff2252f8", - "name": "NODE_26235_length_2081_cov_9.362784" - }, - "NODE_26262_length_2079_cov_30.441700": { - "contig_id": "NODE_26262_length_2079_cov_30.441700", - "description": "", - "gc_content": 0.37085, - "length": 2079, - "md5": "0466b6ebb37ed6365f07f642a538c3a0", - "name": "NODE_26262_length_2079_cov_30.441700" - }, - "NODE_262_length_108194_cov_16.156253": { - "contig_id": "NODE_262_length_108194_cov_16.156253", - "description": "", - "gc_content": 0.48584, - "length": 108194, - "md5": "b04e905c45206e7018449280e97f00d0", - "name": "NODE_262_length_108194_cov_16.156253" - }, - "NODE_2645_length_17412_cov_15.837760": { - "contig_id": "NODE_2645_length_17412_cov_15.837760", - "description": "", - "gc_content": 0.38927, - "length": 17412, - "md5": "a9346e253b4d36f8f2ded4e177e841e9", - "name": "NODE_2645_length_17412_cov_15.837760" - }, - "NODE_26517_length_2063_cov_37.494522": { - "contig_id": "NODE_26517_length_2063_cov_37.494522", - "description": "", - "gc_content": 0.51188, - "length": 2063, - "md5": "894ce58ca1942f59745f6596439f8303", - "name": "NODE_26517_length_2063_cov_37.494522" - }, - "NODE_26650_length_2052_cov_46.327491": { - "contig_id": "NODE_26650_length_2052_cov_46.327491", - "description": "", - "gc_content": 0.59113, - "length": 2052, - "md5": "7a2689f5404b735cf9afe6450afa28fb", - "name": "NODE_26650_length_2052_cov_46.327491" - }, - "NODE_2667_length_17280_cov_134.065022": { - "contig_id": "NODE_2667_length_17280_cov_134.065022", - "description": "", - "gc_content": 0.40723, - "length": 17280, - "md5": "c9c4ab0df382a4ab1b27c5d95e6da996", - "name": "NODE_2667_length_17280_cov_134.065022" - }, - "NODE_26714_length_2048_cov_153.347717": { - "contig_id": "NODE_26714_length_2048_cov_153.347717", - "description": "", - "gc_content": 0.62939, - "length": 2048, - "md5": "f12883fca60112359c8881773e4b0d56", - "name": "NODE_26714_length_2048_cov_153.347717" - }, - "NODE_26735_length_2047_cov_239.696285": { - "contig_id": "NODE_26735_length_2047_cov_239.696285", - "description": "", - "gc_content": 0.36541, - "length": 2047, - "md5": "7b26dde7a79cacd5196f42a8a9fdf90a", - "name": "NODE_26735_length_2047_cov_239.696285" - }, - "NODE_26838_length_2041_cov_8.271400": { - "contig_id": "NODE_26838_length_2041_cov_8.271400", - "description": "", - "gc_content": 0.6732, - "length": 2041, - "md5": "e22dd77744241142937b058596c55a65", - "name": "NODE_26838_length_2041_cov_8.271400" - }, - "NODE_2684_length_17094_cov_120.311873": { - "contig_id": "NODE_2684_length_17094_cov_120.311873", - "description": "", - "gc_content": 0.62946, - "length": 17094, - "md5": "db9798a84da0b64b07f1a4f7573a7b41", - "name": "NODE_2684_length_17094_cov_120.311873" - }, - "NODE_26852_length_2040_cov_127.266499": { - "contig_id": "NODE_26852_length_2040_cov_127.266499", - "description": "", - "gc_content": 0.60588, - "length": 2040, - "md5": "984e9c8fa7b845c36a54294e37901440", - "name": "NODE_26852_length_2040_cov_127.266499" - }, - "NODE_268_length_106948_cov_135.103870": { - "contig_id": "NODE_268_length_106948_cov_135.103870", - "description": "", - "gc_content": 0.38598, - "length": 106948, - "md5": "81597a8cd02c2ef526d96cba6e5fa350", - "name": "NODE_268_length_106948_cov_135.103870" - }, - "NODE_2695_length_17036_cov_31.833343": { - "contig_id": "NODE_2695_length_17036_cov_31.833343", - "description": "", - "gc_content": 0.65068, - "length": 17036, - "md5": "3a400801559180c74fd38827f7c6a31d", - "name": "NODE_2695_length_17036_cov_31.833343" - }, - "NODE_26997_length_2031_cov_34.196862": { - "contig_id": "NODE_26997_length_2031_cov_34.196862", - "description": "", - "gc_content": 0.59183, - "length": 2031, - "md5": "e4a053f96ad0a2cb5d16a2e960061a76", - "name": "NODE_26997_length_2031_cov_34.196862" - }, - "NODE_27019_length_2030_cov_52.502785": { - "contig_id": "NODE_27019_length_2030_cov_52.502785", - "description": "", - "gc_content": 0.59606, - "length": 2030, - "md5": "63f685427d60bbbd6d91f023a51dd1ca", - "name": "NODE_27019_length_2030_cov_52.502785" - }, - "NODE_270_length_106246_cov_8.286343": { - "Ncount": 10, - "contig_id": "NODE_270_length_106246_cov_8.286343", - "description": "", - "gc_content": 0.66306, - "length": 106246, - "md5": "64712ef503a0570b95307ac1b6646827", - "name": "NODE_270_length_106246_cov_8.286343" - }, - "NODE_2720_length_16865_cov_9.602201": { - "contig_id": "NODE_2720_length_16865_cov_9.602201", - "description": "", - "gc_content": 0.68337, - "length": 16865, - "md5": "11d281763bdeeee34757b762bd67a912", - "name": "NODE_2720_length_16865_cov_9.602201" - }, - "NODE_2730_length_16798_cov_16.804635": { - "contig_id": "NODE_2730_length_16798_cov_16.804635", - "description": "", - "gc_content": 0.40654, - "length": 16798, - "md5": "6aa4e89f03d367dd7e1dda894dc7ac63", - "name": "NODE_2730_length_16798_cov_16.804635" - }, - "NODE_27328_length_2011_cov_34.305726": { - "contig_id": "NODE_27328_length_2011_cov_34.305726", - "description": "", - "gc_content": 0.5629, - "length": 2011, - "md5": "1fb6788d1c7cb59bd698af9560238bb6", - "name": "NODE_27328_length_2011_cov_34.305726" - }, - "NODE_2732_length_16784_cov_17.384602": { - "contig_id": "NODE_2732_length_16784_cov_17.384602", - "description": "", - "gc_content": 0.38978, - "length": 16784, - "md5": "a8ed880f98c537783c01263ea8b99717", - "name": "NODE_2732_length_16784_cov_17.384602" - }, - "NODE_2763_length_16582_cov_561.773220": { - "contig_id": "NODE_2763_length_16582_cov_561.773220", - "description": "", - "gc_content": 0.62079, - "length": 16582, - "md5": "715c6c90c63d7a65087fceaea6d69bf0", - "name": "NODE_2763_length_16582_cov_561.773220" - }, - "NODE_2795_length_16359_cov_205.114082": { - "contig_id": "NODE_2795_length_16359_cov_205.114082", - "description": "", - "gc_content": 0.47289, - "length": 16359, - "md5": "5f3eb2ef917e389be7e4b0784f216807", - "name": "NODE_2795_length_16359_cov_205.114082" - }, - "NODE_2796_length_16358_cov_9.219898": { - "contig_id": "NODE_2796_length_16358_cov_9.219898", - "description": "", - "gc_content": 0.67062, - "length": 16358, - "md5": "88531655c1d1e9de97609d08f1a034d4", - "name": "NODE_2796_length_16358_cov_9.219898" - }, - "NODE_2813_length_16255_cov_8.959444": { - "contig_id": "NODE_2813_length_16255_cov_8.959444", - "description": "", - "gc_content": 0.66859, - "length": 16255, - "md5": "fdf0879ee3c08ed5c8d139302326973b", - "name": "NODE_2813_length_16255_cov_8.959444" - }, - "NODE_281_length_103420_cov_16.192754": { - "Ncount": 100, - "contig_id": "NODE_281_length_103420_cov_16.192754", - "description": "", - "gc_content": 0.39591, - "length": 103420, - "md5": "deb89ba792e69f4d7c0de7f3670530a9", - "name": "NODE_281_length_103420_cov_16.192754" - }, - "NODE_2829_length_16162_cov_28.843050": { - "contig_id": "NODE_2829_length_16162_cov_28.843050", - "description": "", - "gc_content": 0.61125, - "length": 16162, - "md5": "45d47d08c12d7ad557726814c86fab9a", - "name": "NODE_2829_length_16162_cov_28.843050" - }, - "NODE_283_length_102485_cov_9.102782": { - "contig_id": "NODE_283_length_102485_cov_9.102782", - "description": "", - "gc_content": 0.67888, - "length": 102485, - "md5": "6c540d4af3cb558f345cc8d7ef79edb8", - "name": "NODE_283_length_102485_cov_9.102782" - }, - "NODE_2851_length_16039_cov_113.872685": { - "contig_id": "NODE_2851_length_16039_cov_113.872685", - "description": "", - "gc_content": 0.37764, - "length": 16039, - "md5": "9ea77b32485ebdc7dda975c5a5508a7a", - "name": "NODE_2851_length_16039_cov_113.872685" - }, - "NODE_28_length_320674_cov_16.293258": { - "Ncount": 210, - "contig_id": "NODE_28_length_320674_cov_16.293258", - "description": "", - "gc_content": 0.40316, - "length": 320674, - "md5": "1708cc57f7b7da2b7fafb937b81e64f8", - "name": "NODE_28_length_320674_cov_16.293258" - }, - "NODE_2928_length_15603_cov_142.263700": { - "contig_id": "NODE_2928_length_15603_cov_142.263700", - "description": "", - "gc_content": 0.39883, - "length": 15603, - "md5": "7d98d07c8fad528d31ea24379b9cef75", - "name": "NODE_2928_length_15603_cov_142.263700" - }, - "NODE_2974_length_15381_cov_139.426661": { - "contig_id": "NODE_2974_length_15381_cov_139.426661", - "description": "", - "gc_content": 0.66413, - "length": 15381, - "md5": "edc1bb6d894a28938689510c3ce9f3ce", - "name": "NODE_2974_length_15381_cov_139.426661" - }, - "NODE_3014_length_15127_cov_138.238389": { - "contig_id": "NODE_3014_length_15127_cov_138.238389", - "description": "", - "gc_content": 0.39063, - "length": 15127, - "md5": "e61a093016fcd4708970ce88328334fa", - "name": "NODE_3014_length_15127_cov_138.238389" - }, - "NODE_3017_length_15112_cov_110.401740": { - "contig_id": "NODE_3017_length_15112_cov_110.401740", - "description": "", - "gc_content": 0.65637, - "length": 15112, - "md5": "f66b27c7d0ec3f6544d4fe196606d3e7", - "name": "NODE_3017_length_15112_cov_110.401740" - }, - "NODE_302_length_97886_cov_617.165173": { - "Ncount": 10, - "contig_id": "NODE_302_length_97886_cov_617.165173", - "description": "", - "gc_content": 0.64284, - "length": 97886, - "md5": "d503efea033ec2c570ea4dacedd0447a", - "name": "NODE_302_length_97886_cov_617.165173" - }, - "NODE_3035_length_15015_cov_32.700668": { - "contig_id": "NODE_3035_length_15015_cov_32.700668", - "description": "", - "gc_content": 0.63397, - "length": 15015, - "md5": "0f72ed76b63fd7d1ccd7ed5cf8d70c19", - "name": "NODE_3035_length_15015_cov_32.700668" - }, - "NODE_303_length_97862_cov_641.361518": { - "contig_id": "NODE_303_length_97862_cov_641.361518", - "description": "", - "gc_content": 0.64779, - "length": 97862, - "md5": "a4abc29e19143abf0fbef47a752f354f", - "name": "NODE_303_length_97862_cov_641.361518" - }, - "NODE_308_length_97127_cov_9.276321": { - "contig_id": "NODE_308_length_97127_cov_9.276321", - "description": "", - "gc_content": 0.68097, - "length": 97127, - "md5": "ec4435d82b777cd275a62ef79e8bf333", - "name": "NODE_308_length_97127_cov_9.276321" - }, - "NODE_3090_length_14757_cov_19.739695": { - "contig_id": "NODE_3090_length_14757_cov_19.739695", - "description": "", - "gc_content": 0.38829, - "length": 14757, - "md5": "bb4f8101290d71a3ad371a5b1c7eba19", - "name": "NODE_3090_length_14757_cov_19.739695" - }, - "NODE_3220_length_14050_cov_7.257663": { - "contig_id": "NODE_3220_length_14050_cov_7.257663", - "description": "", - "gc_content": 0.65694, - "length": 14050, - "md5": "3f1f5dd4b033bb6448bcc439eecf9dfa", - "name": "NODE_3220_length_14050_cov_7.257663" - }, - "NODE_3242_length_13962_cov_30.816927": { - "contig_id": "NODE_3242_length_13962_cov_30.816927", - "description": "", - "gc_content": 0.64052, - "length": 13962, - "md5": "4502b7382376c781fd4c04ff9e8eafdd", - "name": "NODE_3242_length_13962_cov_30.816927" - }, - "NODE_3246_length_13938_cov_74.777138": { - "contig_id": "NODE_3246_length_13938_cov_74.777138", - "description": "", - "gc_content": 0.56421, - "length": 13938, - "md5": "44b2117c935e9fdf675c64bff1cd43b9", - "name": "NODE_3246_length_13938_cov_74.777138" - }, - "NODE_324_length_94836_cov_132.601851": { - "Ncount": 100, - "contig_id": "NODE_324_length_94836_cov_132.601851", - "description": "", - "gc_content": 0.63207, - "length": 94836, - "md5": "1236eb70b47f0e4213ef540cc84f2051", - "name": "NODE_324_length_94836_cov_132.601851" - }, - "NODE_3276_length_13799_cov_16.636205": { - "Ncount": 100, - "contig_id": "NODE_3276_length_13799_cov_16.636205", - "description": "", - "gc_content": 0.38822, - "length": 13799, - "md5": "c20190f79c9411b9e8c9bceb339d8cfe", - "name": "NODE_3276_length_13799_cov_16.636205" - }, - "NODE_3278_length_13792_cov_28.236733": { - "contig_id": "NODE_3278_length_13792_cov_28.236733", - "description": "", - "gc_content": 0.63276, - "length": 13792, - "md5": "ecb818f55f76ec7894f81f3b897d2318", - "name": "NODE_3278_length_13792_cov_28.236733" - }, - "NODE_3283_length_13774_cov_144.931701": { - "contig_id": "NODE_3283_length_13774_cov_144.931701", - "description": "", - "gc_content": 0.38986, - "length": 13774, - "md5": "2c638ffca4a8cd1a620cbc37bcecc55e", - "name": "NODE_3283_length_13774_cov_144.931701" - }, - "NODE_3331_length_13585_cov_21.915299": { - "contig_id": "NODE_3331_length_13585_cov_21.915299", - "description": "", - "gc_content": 0.63224, - "length": 13585, - "md5": "3889b67f42c4ccece7734fc4ea24ca6e", - "name": "NODE_3331_length_13585_cov_21.915299" - }, - "NODE_333_length_93363_cov_128.182396": { - "contig_id": "NODE_333_length_93363_cov_128.182396", - "description": "", - "gc_content": 0.63796, - "length": 93363, - "md5": "34baf7fc9ae66f8a6b9d11d87b17e2bd", - "name": "NODE_333_length_93363_cov_128.182396" - }, - "NODE_3364_length_13464_cov_127.677530": { - "Ncount": 100, - "contig_id": "NODE_3364_length_13464_cov_127.677530", - "description": "", - "gc_content": 0.38748, - "length": 13464, - "md5": "250fa261f392f4288fa4fc2cbcf6f0b9", - "name": "NODE_3364_length_13464_cov_127.677530" - }, - "NODE_337_length_92784_cov_118.914169": { - "Ncount": 300, - "contig_id": "NODE_337_length_92784_cov_118.914169", - "description": "", - "gc_content": 0.63946, - "length": 92784, - "md5": "7d3cc4463621e27e31ebc171e380eef0", - "name": "NODE_337_length_92784_cov_118.914169" - }, - "NODE_3385_length_13409_cov_10.228621": { - "contig_id": "NODE_3385_length_13409_cov_10.228621", - "description": "", - "gc_content": 0.69155, - "length": 13409, - "md5": "bdc61a69cd7a9014c7b0cd0d6c1f6781", - "name": "NODE_3385_length_13409_cov_10.228621" - }, - "NODE_33_length_297482_cov_15.455836": { - "contig_id": "NODE_33_length_297482_cov_15.455836", - "description": "", - "gc_content": 0.4952, - "length": 297482, - "md5": "a2f7bc360ea2b19c9a5f3aed25112999", - "name": "NODE_33_length_297482_cov_15.455836" - }, - "NODE_3416_length_13266_cov_128.115585": { - "contig_id": "NODE_3416_length_13266_cov_128.115585", - "description": "", - "gc_content": 0.63252, - "length": 13266, - "md5": "ed45fb810b8d220d28fd386160f3db06", - "name": "NODE_3416_length_13266_cov_128.115585" - }, - "NODE_3447_length_13082_cov_30.126814": { - "contig_id": "NODE_3447_length_13082_cov_30.126814", - "description": "", - "gc_content": 0.6275, - "length": 13082, - "md5": "caeda78af236af377de613fca98f83f9", - "name": "NODE_3447_length_13082_cov_30.126814" - }, - "NODE_345_length_91782_cov_14.737024": { - "contig_id": "NODE_345_length_91782_cov_14.737024", - "description": "", - "gc_content": 0.48633, - "length": 91782, - "md5": "4f0ba26638c6500fc6cb92f79a668c6a", - "name": "NODE_345_length_91782_cov_14.737024" - }, - "NODE_346_length_91519_cov_129.264377": { - "contig_id": "NODE_346_length_91519_cov_129.264377", - "description": "", - "gc_content": 0.64345, - "length": 91519, - "md5": "550adb4519c67215086da15df506a614", - "name": "NODE_346_length_91519_cov_129.264377" - }, - "NODE_347_length_91195_cov_29.489719": { - "Ncount": 300, - "contig_id": "NODE_347_length_91195_cov_29.489719", - "description": "", - "gc_content": 0.63558, - "length": 91195, - "md5": "7898b710a1ff89ab2bb6cde330804d89", - "name": "NODE_347_length_91195_cov_29.489719" - }, - "NODE_3481_length_12969_cov_110.665247": { - "contig_id": "NODE_3481_length_12969_cov_110.665247", - "description": "", - "gc_content": 0.64461, - "length": 12969, - "md5": "1d9e9424aaa0dd780a8c57779f09f53c", - "name": "NODE_3481_length_12969_cov_110.665247" - }, - "NODE_3494_length_12917_cov_78.411522": { - "Ncount": 200, - "contig_id": "NODE_3494_length_12917_cov_78.411522", - "description": "", - "gc_content": 0.64504, - "length": 12917, - "md5": "965d9d31fb2ee1174c72e3b9f8f81b4b", - "name": "NODE_3494_length_12917_cov_78.411522" - }, - "NODE_3495_length_12914_cov_30.630687": { - "contig_id": "NODE_3495_length_12914_cov_30.630687", - "description": "", - "gc_content": 0.64984, - "length": 12914, - "md5": "d753e7505d0ef50d9069ad99bab2d001", - "name": "NODE_3495_length_12914_cov_30.630687" - }, - "NODE_34_length_294824_cov_16.687850": { - "Ncount": 200, - "contig_id": "NODE_34_length_294824_cov_16.687850", - "description": "", - "gc_content": 0.40032, - "length": 294824, - "md5": "45ed4c1d7c9353f23f3a7bbfa4826e3e", - "name": "NODE_34_length_294824_cov_16.687850" - }, - "NODE_354_length_88670_cov_16.311415": { - "contig_id": "NODE_354_length_88670_cov_16.311415", - "description": "", - "gc_content": 0.47585, - "length": 88670, - "md5": "c1449e5133c096b708dcca0550d54650", - "name": "NODE_354_length_88670_cov_16.311415" - }, - "NODE_3567_length_12655_cov_69.978889": { - "contig_id": "NODE_3567_length_12655_cov_69.978889", - "description": "", - "gc_content": 0.31094, - "length": 12655, - "md5": "313683cc4cbdf738a5feef1378e5335f", - "name": "NODE_3567_length_12655_cov_69.978889" - }, - "NODE_3601_length_12557_cov_118.124860": { - "contig_id": "NODE_3601_length_12557_cov_118.124860", - "description": "", - "gc_content": 0.62913, - "length": 12557, - "md5": "10099f8ea8a8d5838aab38abd94b59e6", - "name": "NODE_3601_length_12557_cov_118.124860" - }, - "NODE_3625_length_12492_cov_114.968803": { - "contig_id": "NODE_3625_length_12492_cov_114.968803", - "description": "", - "gc_content": 0.64681, - "length": 12492, - "md5": "eb7def82a178cbc39df3916e31314e29", - "name": "NODE_3625_length_12492_cov_114.968803" - }, - "NODE_3634_length_12459_cov_155.011932": { - "contig_id": "NODE_3634_length_12459_cov_155.011932", - "description": "", - "gc_content": 0.46055, - "length": 12459, - "md5": "f8e5e7803d498731a2fc2d66b50d5c0a", - "name": "NODE_3634_length_12459_cov_155.011932" - }, - "NODE_3659_length_12376_cov_134.496307": { - "contig_id": "NODE_3659_length_12376_cov_134.496307", - "description": "", - "gc_content": 0.64189, - "length": 12376, - "md5": "5c26a2d3ed1d0e3df432615e9d1bb50e", - "name": "NODE_3659_length_12376_cov_134.496307" - }, - "NODE_3689_length_12257_cov_31.139158": { - "contig_id": "NODE_3689_length_12257_cov_31.139158", - "description": "", - "gc_content": 0.5968, - "length": 12257, - "md5": "63576c75e3da2a578137c323ce355581", - "name": "NODE_3689_length_12257_cov_31.139158" - }, - "NODE_369_length_86974_cov_17.617713": { - "contig_id": "NODE_369_length_86974_cov_17.617713", - "description": "", - "gc_content": 0.39816, - "length": 86974, - "md5": "cf9a9423b307225fe167dc2cdfb7d396", - "name": "NODE_369_length_86974_cov_17.617713" - }, - "NODE_371_length_86833_cov_19.898891": { - "contig_id": "NODE_371_length_86833_cov_19.898891", - "description": "", - "gc_content": 0.39988, - "length": 86833, - "md5": "a16a4c6c050278f21f60fd391d397502", - "name": "NODE_371_length_86833_cov_19.898891" - }, - "NODE_3740_length_12125_cov_28.826926": { - "Ncount": 100, - "contig_id": "NODE_3740_length_12125_cov_28.826926", - "description": "", - "gc_content": 0.64074, - "length": 12125, - "md5": "41a9b14cf9fc63b77847624e3d840343", - "name": "NODE_3740_length_12125_cov_28.826926" - }, - "NODE_3753_length_12083_cov_141.645328": { - "contig_id": "NODE_3753_length_12083_cov_141.645328", - "description": "", - "gc_content": 0.38517, - "length": 12083, - "md5": "e43232f27e65cb2675e7bc3475394714", - "name": "NODE_3753_length_12083_cov_141.645328" - }, - "NODE_376_length_86128_cov_18.699255": { - "contig_id": "NODE_376_length_86128_cov_18.699255", - "description": "", - "gc_content": 0.40216, - "length": 86128, - "md5": "44fc5af689baa59ca4da75d239c85939", - "name": "NODE_376_length_86128_cov_18.699255" - }, - "NODE_387_length_84567_cov_18.465697": { - "contig_id": "NODE_387_length_84567_cov_18.465697", - "description": "", - "gc_content": 0.39323, - "length": 84567, - "md5": "e2d352eebb3ad4cc574b6c9fc61dc6ae", - "name": "NODE_387_length_84567_cov_18.465697" - }, - "NODE_389_length_84482_cov_122.837244": { - "Ncount": 100, - "contig_id": "NODE_389_length_84482_cov_122.837244", - "description": "", - "gc_content": 0.64618, - "length": 84482, - "md5": "f248268848f3becad064b712d170a547", - "name": "NODE_389_length_84482_cov_122.837244" - }, - "NODE_3956_length_11557_cov_32.232916": { - "contig_id": "NODE_3956_length_11557_cov_32.232916", - "description": "", - "gc_content": 0.64056, - "length": 11557, - "md5": "c1b04492738b0fc93c14cb5dabbba3e6", - "name": "NODE_3956_length_11557_cov_32.232916" - }, - "NODE_3980_length_11487_cov_119.937369": { - "contig_id": "NODE_3980_length_11487_cov_119.937369", - "description": "", - "gc_content": 0.63898, - "length": 11487, - "md5": "e91a9ca668ea882a90681d22547d45c1", - "name": "NODE_3980_length_11487_cov_119.937369" - }, - "NODE_39_length_280711_cov_158.055303": { - "contig_id": "NODE_39_length_280711_cov_158.055303", - "description": "", - "gc_content": 0.50834, - "length": 280711, - "md5": "e33547001f33fbd4032d8b19e7e25d48", - "name": "NODE_39_length_280711_cov_158.055303" - }, - "NODE_3_length_955858_cov_599.524973": { - "Ncount": 20, - "contig_id": "NODE_3_length_955858_cov_599.524973", - "description": "", - "gc_content": 0.63506, - "length": 955858, - "md5": "5a47df4e4ba50065460296c734363836", - "name": "NODE_3_length_955858_cov_599.524973" - }, - "NODE_400_length_82714_cov_123.620634": { - "Ncount": 100, - "contig_id": "NODE_400_length_82714_cov_123.620634", - "description": "", - "gc_content": 0.62531, - "length": 82714, - "md5": "27bc6c93b38331bb3f42ce6734765199", - "name": "NODE_400_length_82714_cov_123.620634" - }, - "NODE_4018_length_11372_cov_73.477777": { - "contig_id": "NODE_4018_length_11372_cov_73.477777", - "description": "", - "gc_content": 0.336, - "length": 11372, - "md5": "fdfbbfc290e2dd8238e1af7347e64473", - "name": "NODE_4018_length_11372_cov_73.477777" - }, - "NODE_4038_length_11316_cov_18.710860": { - "contig_id": "NODE_4038_length_11316_cov_18.710860", - "description": "", - "gc_content": 0.39236, - "length": 11316, - "md5": "4eded0ba220f6198c665522671e3f17b", - "name": "NODE_4038_length_11316_cov_18.710860" - }, - "NODE_403_length_82307_cov_119.957071": { - "Ncount": 100, - "contig_id": "NODE_403_length_82307_cov_119.957071", - "description": "", - "gc_content": 0.64377, - "length": 82307, - "md5": "1ddeb54b10f3d3e057d11a6c97235dfb", - "name": "NODE_403_length_82307_cov_119.957071" - }, - "NODE_406_length_82094_cov_15.268933": { - "Ncount": 100, - "contig_id": "NODE_406_length_82094_cov_15.268933", - "description": "", - "gc_content": 0.48591, - "length": 82094, - "md5": "a74e6ae06e3361a4a36d6669c355f2c6", - "name": "NODE_406_length_82094_cov_15.268933" - }, - "NODE_408_length_81653_cov_32.790056": { - "contig_id": "NODE_408_length_81653_cov_32.790056", - "description": "", - "gc_content": 0.63308, - "length": 81653, - "md5": "4c3902d01224baeb15785d57abb1080d", - "name": "NODE_408_length_81653_cov_32.790056" - }, - "NODE_410_length_81395_cov_133.638210": { - "contig_id": "NODE_410_length_81395_cov_133.638210", - "description": "", - "gc_content": 0.39326, - "length": 81395, - "md5": "77a55f6de06dc034f01408ca6aca5f2a", - "name": "NODE_410_length_81395_cov_133.638210" - }, - "NODE_412_length_81342_cov_29.429085": { - "Ncount": 100, - "contig_id": "NODE_412_length_81342_cov_29.429085", - "description": "", - "gc_content": 0.64925, - "length": 81342, - "md5": "3475876c6d42601334900f558fc3025b", - "name": "NODE_412_length_81342_cov_29.429085" - }, - "NODE_413_length_81124_cov_31.092699": { - "Ncount": 200, - "contig_id": "NODE_413_length_81124_cov_31.092699", - "description": "", - "gc_content": 0.6398, - "length": 81124, - "md5": "c184ea3e4eac4c9afb4ead53f94d8dff", - "name": "NODE_413_length_81124_cov_31.092699" - }, - "NODE_4154_length_11006_cov_18.597297": { - "Ncount": 200, - "contig_id": "NODE_4154_length_11006_cov_18.597297", - "description": "", - "gc_content": 0.36725, - "length": 11006, - "md5": "cb914140965f120efd85e9f546997b88", - "name": "NODE_4154_length_11006_cov_18.597297" - }, - "NODE_4159_length_10991_cov_138.870428": { - "contig_id": "NODE_4159_length_10991_cov_138.870428", - "description": "", - "gc_content": 0.39268, - "length": 10991, - "md5": "696b920fbb1eb1d73a4c3a585d5cbb39", - "name": "NODE_4159_length_10991_cov_138.870428" - }, - "NODE_4178_length_10932_cov_138.647145": { - "contig_id": "NODE_4178_length_10932_cov_138.647145", - "description": "", - "gc_content": 0.64023, - "length": 10932, - "md5": "ee1f123ad63196b325850a8543856ff8", - "name": "NODE_4178_length_10932_cov_138.647145" - }, - "NODE_4179_length_10932_cov_74.876069": { - "contig_id": "NODE_4179_length_10932_cov_74.876069", - "description": "", - "gc_content": 0.6266, - "length": 10932, - "md5": "78f4deba83305f2fcfc09c48985228fb", - "name": "NODE_4179_length_10932_cov_74.876069" - }, - "NODE_41_length_267261_cov_15.378195": { - "contig_id": "NODE_41_length_267261_cov_15.378195", - "description": "", - "gc_content": 0.48658, - "length": 267261, - "md5": "f2bd74259f6e346bb2df450afbddefee", - "name": "NODE_41_length_267261_cov_15.378195" - }, - "NODE_4249_length_10771_cov_8.632699": { - "contig_id": "NODE_4249_length_10771_cov_8.632699", - "description": "", - "gc_content": 0.66215, - "length": 10771, - "md5": "76b9e163bce20fb68c7e1b907a07af09", - "name": "NODE_4249_length_10771_cov_8.632699" - }, - "NODE_424_length_78693_cov_129.098527": { - "Ncount": 100, - "contig_id": "NODE_424_length_78693_cov_129.098527", - "description": "", - "gc_content": 0.64233, - "length": 78693, - "md5": "41f80db12fa47c9aaad2aa646729d412", - "name": "NODE_424_length_78693_cov_129.098527" - }, - "NODE_425_length_78681_cov_15.564673": { - "contig_id": "NODE_425_length_78681_cov_15.564673", - "description": "", - "gc_content": 0.48887, - "length": 78681, - "md5": "8838745e81d31131062ca5f0b389fa78", - "name": "NODE_425_length_78681_cov_15.564673" - }, - "NODE_429_length_78354_cov_32.058379": { - "Ncount": 200, - "contig_id": "NODE_429_length_78354_cov_32.058379", - "description": "", - "gc_content": 0.64549, - "length": 78354, - "md5": "4ef9e90b7a3c124c7326c02c97754596", - "name": "NODE_429_length_78354_cov_32.058379" - }, - "NODE_4321_length_10560_cov_133.106616": { - "Ncount": 100, - "contig_id": "NODE_4321_length_10560_cov_133.106616", - "description": "", - "gc_content": 0.64318, - "length": 10560, - "md5": "62a6f4546b424d402ce34c4f78a39796", - "name": "NODE_4321_length_10560_cov_133.106616" - }, - "NODE_432_length_77993_cov_18.271729": { - "contig_id": "NODE_432_length_77993_cov_18.271729", - "description": "", - "gc_content": 0.38782, - "length": 77993, - "md5": "d88dd986e4ca0151aefdcf19091b6847", - "name": "NODE_432_length_77993_cov_18.271729" - }, - "NODE_434_length_77378_cov_9.009945": { - "contig_id": "NODE_434_length_77378_cov_9.009945", - "description": "", - "gc_content": 0.68125, - "length": 77378, - "md5": "6ccccda207e5e5d35e587d5242ef2766", - "name": "NODE_434_length_77378_cov_9.009945" - }, - "NODE_435_length_77139_cov_17.261572": { - "contig_id": "NODE_435_length_77139_cov_17.261572", - "description": "", - "gc_content": 0.40296, - "length": 77139, - "md5": "22a0355f5c455d009037a55c72471378", - "name": "NODE_435_length_77139_cov_17.261572" - }, - "NODE_436_length_77054_cov_118.260977": { - "Ncount": 100, - "contig_id": "NODE_436_length_77054_cov_118.260977", - "description": "", - "gc_content": 0.64027, - "length": 77054, - "md5": "16ada5bd01bb3c73ced25dfdeb8f835c", - "name": "NODE_436_length_77054_cov_118.260977" - }, - "NODE_4409_length_10376_cov_123.460227": { - "contig_id": "NODE_4409_length_10376_cov_123.460227", - "description": "", - "gc_content": 0.62828, - "length": 10376, - "md5": "2d05b2f17bb83b23936a9df48eb6565a", - "name": "NODE_4409_length_10376_cov_123.460227" - }, - "NODE_440_length_76709_cov_31.326571": { - "Ncount": 100, - "contig_id": "NODE_440_length_76709_cov_31.326571", - "description": "", - "gc_content": 0.6451, - "length": 76709, - "md5": "0677c2d96199150f23ebf5398f92f9e8", - "name": "NODE_440_length_76709_cov_31.326571" - }, - "NODE_4427_length_10327_cov_22.755938": { - "contig_id": "NODE_4427_length_10327_cov_22.755938", - "description": "", - "gc_content": 0.40273, - "length": 10327, - "md5": "2946588cc135c1e51bc4e25c4f352d02", - "name": "NODE_4427_length_10327_cov_22.755938" - }, - "NODE_4434_length_10311_cov_31.311720": { - "Ncount": 100, - "contig_id": "NODE_4434_length_10311_cov_31.311720", - "description": "", - "gc_content": 0.64543, - "length": 10311, - "md5": "41b551c09e2f97a0e5f9588a309320ba", - "name": "NODE_4434_length_10311_cov_31.311720" - }, - "NODE_443_length_76553_cov_29.596538": { - "contig_id": "NODE_443_length_76553_cov_29.596538", - "description": "", - "gc_content": 0.63909, - "length": 76553, - "md5": "6ee2772c1b743ae819bfdcf9e9fe00f3", - "name": "NODE_443_length_76553_cov_29.596538" - }, - "NODE_4461_length_10260_cov_159.823028": { - "contig_id": "NODE_4461_length_10260_cov_159.823028", - "description": "", - "gc_content": 0.47495, - "length": 10260, - "md5": "f1be56163a2f1965d8fd5e118f701481", - "name": "NODE_4461_length_10260_cov_159.823028" - }, - "NODE_449_length_76067_cov_9.273944": { - "Ncount": 10, - "contig_id": "NODE_449_length_76067_cov_9.273944", - "description": "", - "gc_content": 0.67174, - "length": 76067, - "md5": "5095bcdf2f3596847d98b458212fc123", - "name": "NODE_449_length_76067_cov_9.273944" - }, - "NODE_44_length_259607_cov_149.222568": { - "contig_id": "NODE_44_length_259607_cov_149.222568", - "description": "", - "gc_content": 0.52498, - "length": 259607, - "md5": "140020d72681bfeb9af4137b830215ee", - "name": "NODE_44_length_259607_cov_149.222568" - }, - "NODE_4519_length_10111_cov_26.746321": { - "contig_id": "NODE_4519_length_10111_cov_26.746321", - "description": "", - "gc_content": 0.34665, - "length": 10111, - "md5": "0bd99e04ef51e14a1633435931a48d6d", - "name": "NODE_4519_length_10111_cov_26.746321" - }, - "NODE_4526_length_10099_cov_24.847073": { - "contig_id": "NODE_4526_length_10099_cov_24.847073", - "description": "", - "gc_content": 0.40281, - "length": 10099, - "md5": "6eefdb842c867d4e04d1782a25a8c28e", - "name": "NODE_4526_length_10099_cov_24.847073" - }, - "NODE_452_length_75896_cov_139.185797": { - "contig_id": "NODE_452_length_75896_cov_139.185797", - "description": "", - "gc_content": 0.38754, - "length": 75896, - "md5": "61faf52b8f6e9d91a65093cfb93c0d42", - "name": "NODE_452_length_75896_cov_139.185797" - }, - "NODE_4547_length_10044_cov_116.664131": { - "contig_id": "NODE_4547_length_10044_cov_116.664131", - "description": "", - "gc_content": 0.64556, - "length": 10044, - "md5": "6d97284831613967301ccf48ca7fa5c0", - "name": "NODE_4547_length_10044_cov_116.664131" - }, - "NODE_454_length_75663_cov_142.046503": { - "Ncount": 100, - "contig_id": "NODE_454_length_75663_cov_142.046503", - "description": "", - "gc_content": 0.38781, - "length": 75663, - "md5": "be6ec44a9bf449031eeeb3a5db3b6922", - "name": "NODE_454_length_75663_cov_142.046503" - }, - "NODE_4568_length_9994_cov_8.541201": { - "contig_id": "NODE_4568_length_9994_cov_8.541201", - "description": "", - "gc_content": 0.65189, - "length": 9994, - "md5": "b213c29d309addcd5b3c87a11857d9d8", - "name": "NODE_4568_length_9994_cov_8.541201" - }, - "NODE_456_length_75341_cov_8.965611": { - "contig_id": "NODE_456_length_75341_cov_8.965611", - "description": "", - "gc_content": 0.67824, - "length": 75341, - "md5": "73f20fcd4af65a0cb14d1fa10357b0a9", - "name": "NODE_456_length_75341_cov_8.965611" - }, - "NODE_457_length_75181_cov_32.246972": { - "Ncount": 110, - "contig_id": "NODE_457_length_75181_cov_32.246972", - "description": "", - "gc_content": 0.64244, - "length": 75181, - "md5": "a965726bec9ecfb4f51db056bfdd5654", - "name": "NODE_457_length_75181_cov_32.246972" - }, - "NODE_4595_length_9930_cov_13.524051": { - "Ncount": 10, - "contig_id": "NODE_4595_length_9930_cov_13.524051", - "description": "", - "gc_content": 0.50312, - "length": 9930, - "md5": "6af2d8ef71bfeea611cd11b63c9c1df6", - "name": "NODE_4595_length_9930_cov_13.524051" - }, - "NODE_460_length_75021_cov_138.414588": { - "Ncount": 200, - "contig_id": "NODE_460_length_75021_cov_138.414588", - "description": "", - "gc_content": 0.65368, - "length": 75021, - "md5": "7f43455f4320fff82ff93a5aeaa5d0d2", - "name": "NODE_460_length_75021_cov_138.414588" - }, - "NODE_4617_length_9878_cov_10.195358": { - "contig_id": "NODE_4617_length_9878_cov_10.195358", - "description": "", - "gc_content": 0.65347, - "length": 9878, - "md5": "84d7195926f35baa61cdf0ed632f23d5", - "name": "NODE_4617_length_9878_cov_10.195358" - }, - "NODE_464_length_74490_cov_30.307369": { - "Ncount": 100, - "contig_id": "NODE_464_length_74490_cov_30.307369", - "description": "", - "gc_content": 0.63835, - "length": 74490, - "md5": "6b9c5bc9a02e9cdfdf692cdb9290c962", - "name": "NODE_464_length_74490_cov_30.307369" - }, - "NODE_4661_length_9790_cov_63.520185": { - "contig_id": "NODE_4661_length_9790_cov_63.520185", - "description": "", - "gc_content": 0.61879, - "length": 9790, - "md5": "20cb51e89d41c32d9267f345b08212d3", - "name": "NODE_4661_length_9790_cov_63.520185" - }, - "NODE_466_length_74263_cov_30.335018": { - "contig_id": "NODE_466_length_74263_cov_30.335018", - "description": "", - "gc_content": 0.64087, - "length": 74263, - "md5": "3cdd06edd5aa74943c9fd52a4147c94a", - "name": "NODE_466_length_74263_cov_30.335018" - }, - "NODE_4675_length_9762_cov_18.263830": { - "contig_id": "NODE_4675_length_9762_cov_18.263830", - "description": "", - "gc_content": 0.48914, - "length": 9762, - "md5": "aafebb841f1a94fe198d3818e5b0c0d0", - "name": "NODE_4675_length_9762_cov_18.263830" - }, - "NODE_467_length_74231_cov_8.534135": { - "contig_id": "NODE_467_length_74231_cov_8.534135", - "description": "", - "gc_content": 0.66646, - "length": 74231, - "md5": "15e6e34076c2b11f75bcd8fdcafed49d", - "name": "NODE_467_length_74231_cov_8.534135" - }, - "NODE_468_length_73847_cov_15.917823": { - "contig_id": "NODE_468_length_73847_cov_15.917823", - "description": "", - "gc_content": 0.39456, - "length": 73847, - "md5": "68069cad71741b00951041e41a021225", - "name": "NODE_468_length_73847_cov_15.917823" - }, - "NODE_4695_length_9730_cov_17.744393": { - "Ncount": 215, - "contig_id": "NODE_4695_length_9730_cov_17.744393", - "description": "", - "gc_content": 0.37071, - "length": 9730, - "md5": "b7842e43750d157162f0712206a8fcb7", - "name": "NODE_4695_length_9730_cov_17.744393" - }, - "NODE_46_length_253743_cov_15.070792": { - "Ncount": 100, - "contig_id": "NODE_46_length_253743_cov_15.070792", - "description": "", - "gc_content": 0.48927, - "length": 253743, - "md5": "5caffe73cdb729e651f3666834c56695", - "name": "NODE_46_length_253743_cov_15.070792" - }, - "NODE_4751_length_9623_cov_30.188232": { - "contig_id": "NODE_4751_length_9623_cov_30.188232", - "description": "", - "gc_content": 0.64055, - "length": 9623, - "md5": "ff24826a25146c7b5edb4b1c37221ec1", - "name": "NODE_4751_length_9623_cov_30.188232" - }, - "NODE_4777_length_9569_cov_19.745428": { - "contig_id": "NODE_4777_length_9569_cov_19.745428", - "description": "", - "gc_content": 0.35949, - "length": 9569, - "md5": "452651d4d3a21fddbb6da136805c2370", - "name": "NODE_4777_length_9569_cov_19.745428" - }, - "NODE_477_length_71982_cov_121.741238": { - "Ncount": 100, - "contig_id": "NODE_477_length_71982_cov_121.741238", - "description": "", - "gc_content": 0.65314, - "length": 71982, - "md5": "013bff4eee8ec31464a82cadf2e87a7d", - "name": "NODE_477_length_71982_cov_121.741238" - }, - "NODE_479_length_71734_cov_9.087529": { - "Ncount": 200, - "contig_id": "NODE_479_length_71734_cov_9.087529", - "description": "", - "gc_content": 0.68401, - "length": 71734, - "md5": "b27f1a2eeba15890223ab6d4926006d0", - "name": "NODE_479_length_71734_cov_9.087529" - }, - "NODE_47_length_253246_cov_150.781169": { - "contig_id": "NODE_47_length_253246_cov_150.781169", - "description": "", - "gc_content": 0.50706, - "length": 253246, - "md5": "53476568954b53bbd63c645ddaa31ac5", - "name": "NODE_47_length_253246_cov_150.781169" - }, - "NODE_4815_length_9505_cov_158.931958": { - "contig_id": "NODE_4815_length_9505_cov_158.931958", - "description": "", - "gc_content": 0.49016, - "length": 9505, - "md5": "6b7386c151cd55e92f704faeeed0e460", - "name": "NODE_4815_length_9505_cov_158.931958" - }, - "NODE_485_length_71438_cov_584.619727": { - "Ncount": 10, - "contig_id": "NODE_485_length_71438_cov_584.619727", - "description": "", - "gc_content": 0.62706, - "length": 71438, - "md5": "a791aab57aa79c930c4c548270a80e26", - "name": "NODE_485_length_71438_cov_584.619727" - }, - "NODE_489_length_71202_cov_16.818278": { - "contig_id": "NODE_489_length_71202_cov_16.818278", - "description": "", - "gc_content": 0.48465, - "length": 71202, - "md5": "50e5e0b8032bde1d8f8b8fddbd958b53", - "name": "NODE_489_length_71202_cov_16.818278" - }, - "NODE_490_length_71002_cov_8.752012": { - "contig_id": "NODE_490_length_71002_cov_8.752012", - "description": "", - "gc_content": 0.67056, - "length": 71002, - "md5": "e9f46ea5fcc4ced241202222cd192f71", - "name": "NODE_490_length_71002_cov_8.752012" - }, - "NODE_4919_length_9279_cov_22.470078": { - "contig_id": "NODE_4919_length_9279_cov_22.470078", - "description": "", - "gc_content": 0.66192, - "length": 9279, - "md5": "57a9004b2585cec8ec077eb86cf83c7d", - "name": "NODE_4919_length_9279_cov_22.470078" - }, - "NODE_496_length_70430_cov_14.447716": { - "contig_id": "NODE_496_length_70430_cov_14.447716", - "description": "", - "gc_content": 0.49808, - "length": 70430, - "md5": "7cae8ec279843a7fb3c9be730487e56c", - "name": "NODE_496_length_70430_cov_14.447716" - }, - "NODE_4985_length_9154_cov_611.354874": { - "contig_id": "NODE_4985_length_9154_cov_611.354874", - "description": "", - "gc_content": 0.60891, - "length": 9154, - "md5": "04da9971d355b578baaa20d72425a6de", - "name": "NODE_4985_length_9154_cov_611.354874" - }, - "NODE_499_length_70270_cov_9.207477": { - "contig_id": "NODE_499_length_70270_cov_9.207477", - "description": "", - "gc_content": 0.68002, - "length": 70270, - "md5": "9d5d4d0a9fdc672d43dc8e511f3b3212", - "name": "NODE_499_length_70270_cov_9.207477" - }, - "NODE_4_length_940015_cov_569.509463": { - "Ncount": 20, - "contig_id": "NODE_4_length_940015_cov_569.509463", - "description": "", - "gc_content": 0.64006, - "length": 940015, - "md5": "c3749f847bcd55151eaca13094dcab89", - "name": "NODE_4_length_940015_cov_569.509463" - }, - "NODE_503_length_69804_cov_16.693831": { - "Ncount": 100, - "contig_id": "NODE_503_length_69804_cov_16.693831", - "description": "", - "gc_content": 0.40009, - "length": 69804, - "md5": "3fc2e758fa95a6c2ac0c0db7b7bf45c8", - "name": "NODE_503_length_69804_cov_16.693831" - }, - "NODE_506_length_69443_cov_154.922696": { - "contig_id": "NODE_506_length_69443_cov_154.922696", - "description": "", - "gc_content": 0.51871, - "length": 69443, - "md5": "acfa1028ea196dbb66aca2650fc1d852", - "name": "NODE_506_length_69443_cov_154.922696" - }, - "NODE_5072_length_8963_cov_120.434104": { - "contig_id": "NODE_5072_length_8963_cov_120.434104", - "description": "", - "gc_content": 0.3963, - "length": 8963, - "md5": "bc605e6e53529eb15ea232199dbf8da5", - "name": "NODE_5072_length_8963_cov_120.434104" - }, - "NODE_5097_length_8923_cov_119.937077": { - "contig_id": "NODE_5097_length_8923_cov_119.937077", - "description": "", - "gc_content": 0.63645, - "length": 8923, - "md5": "c65e1880c47202b2ac334a9b48243a10", - "name": "NODE_5097_length_8923_cov_119.937077" - }, - "NODE_509_length_69102_cov_122.857966": { - "Ncount": 100, - "contig_id": "NODE_509_length_69102_cov_122.857966", - "description": "", - "gc_content": 0.63979, - "length": 69102, - "md5": "0482a47ff2dcdf7e29cb42ff8cb34e7f", - "name": "NODE_509_length_69102_cov_122.857966" - }, - "NODE_50_length_249256_cov_9.511888": { - "Ncount": 10, - "contig_id": "NODE_50_length_249256_cov_9.511888", - "description": "", - "gc_content": 0.68106, - "length": 249256, - "md5": "6d0eabbf6246c52eaa9a0e26b963ba08", - "name": "NODE_50_length_249256_cov_9.511888" - }, - "NODE_510_length_69065_cov_30.382887": { - "contig_id": "NODE_510_length_69065_cov_30.382887", - "description": "", - "gc_content": 0.64447, - "length": 69065, - "md5": "dee2525a19bdc2b8d5cfbecf99780da2", - "name": "NODE_510_length_69065_cov_30.382887" - }, - "NODE_512_length_68940_cov_14.845119": { - "Ncount": 100, - "contig_id": "NODE_512_length_68940_cov_14.845119", - "description": "", - "gc_content": 0.50019, - "length": 68940, - "md5": "da7085881dd2026bc7fdb4e72bd37e48", - "name": "NODE_512_length_68940_cov_14.845119" - }, - "NODE_513_length_68869_cov_111.930872": { - "Ncount": 300, - "contig_id": "NODE_513_length_68869_cov_111.930872", - "description": "", - "gc_content": 0.64522, - "length": 68869, - "md5": "e53e3eb5d46d81758e340c5e104d486c", - "name": "NODE_513_length_68869_cov_111.930872" - }, - "NODE_517_length_68782_cov_8.542902": { - "contig_id": "NODE_517_length_68782_cov_8.542902", - "description": "", - "gc_content": 0.68541, - "length": 68782, - "md5": "3f95de09df97f470fafedf533820b5c4", - "name": "NODE_517_length_68782_cov_8.542902" - }, - "NODE_5192_length_8778_cov_38.629715": { - "Ncount": 100, - "contig_id": "NODE_5192_length_8778_cov_38.629715", - "description": "", - "gc_content": 0.62429, - "length": 8778, - "md5": "a66600cdaf9307b24f06ce6f306dc717", - "name": "NODE_5192_length_8778_cov_38.629715" - }, - "NODE_5207_length_8745_cov_117.359033": { - "contig_id": "NODE_5207_length_8745_cov_117.359033", - "description": "", - "gc_content": 0.39154, - "length": 8745, - "md5": "7551ec87e08c397aebc586c339baa565", - "name": "NODE_5207_length_8745_cov_117.359033" - }, - "NODE_531_length_67136_cov_124.685872": { - "Ncount": 300, - "contig_id": "NODE_531_length_67136_cov_124.685872", - "description": "", - "gc_content": 0.64548, - "length": 67136, - "md5": "e0e3f6ece44b7073e8827d5afecabc84", - "name": "NODE_531_length_67136_cov_124.685872" - }, - "NODE_532_length_67112_cov_18.033867": { - "contig_id": "NODE_532_length_67112_cov_18.033867", - "description": "", - "gc_content": 0.39485, - "length": 67112, - "md5": "7ecb37d28d50cdfdff7bfbedc12d89ae", - "name": "NODE_532_length_67112_cov_18.033867" - }, - "NODE_533_length_67071_cov_25.359750": { - "Ncount": 10, - "contig_id": "NODE_533_length_67071_cov_25.359750", - "description": "", - "gc_content": 0.3821, - "length": 67071, - "md5": "70ee6b02caf65f44373ac38220fc555a", - "name": "NODE_533_length_67071_cov_25.359750" - }, - "NODE_534_length_67031_cov_135.276920": { - "Ncount": 100, - "contig_id": "NODE_534_length_67031_cov_135.276920", - "description": "", - "gc_content": 0.39058, - "length": 67031, - "md5": "8d2f3ae6fea9525c9442baa2be2f80ee", - "name": "NODE_534_length_67031_cov_135.276920" - }, - "NODE_5368_length_8465_cov_5.765042": { - "contig_id": "NODE_5368_length_8465_cov_5.765042", - "description": "", - "gc_content": 0.6508, - "length": 8465, - "md5": "1e1644d237b6dd99cc8c53bbf029b8c1", - "name": "NODE_5368_length_8465_cov_5.765042" - }, - "NODE_540_length_66598_cov_30.696677": { - "Ncount": 200, - "contig_id": "NODE_540_length_66598_cov_30.696677", - "description": "", - "gc_content": 0.64682, - "length": 66598, - "md5": "19182713e9c4085d888ed5591b09ff6f", - "name": "NODE_540_length_66598_cov_30.696677" - }, - "NODE_5459_length_8335_cov_8.732367": { - "contig_id": "NODE_5459_length_8335_cov_8.732367", - "description": "", - "gc_content": 0.68686, - "length": 8335, - "md5": "5518f8c94a6c7eb97cffec0bde0aced9", - "name": "NODE_5459_length_8335_cov_8.732367" - }, - "NODE_5492_length_8275_cov_22.334915": { - "contig_id": "NODE_5492_length_8275_cov_22.334915", - "description": "", - "gc_content": 0.38973, - "length": 8275, - "md5": "644a5efc3cab55383f6de8d3dd246a00", - "name": "NODE_5492_length_8275_cov_22.334915" - }, - "NODE_551_length_65215_cov_123.636403": { - "Ncount": 100, - "contig_id": "NODE_551_length_65215_cov_123.636403", - "description": "", - "gc_content": 0.64192, - "length": 65215, - "md5": "fd877f6069e23922cf0cc323d634adac", - "name": "NODE_551_length_65215_cov_123.636403" - }, - "NODE_5547_length_8192_cov_113.185326": { - "Ncount": 100, - "contig_id": "NODE_5547_length_8192_cov_113.185326", - "description": "", - "gc_content": 0.3949, - "length": 8192, - "md5": "6cb3149a9426688753ea1f4add64a572", - "name": "NODE_5547_length_8192_cov_113.185326" - }, - "NODE_554_length_64826_cov_9.191181": { - "contig_id": "NODE_554_length_64826_cov_9.191181", - "description": "", - "gc_content": 0.67107, - "length": 64826, - "md5": "468f315cf036413f04f39b7737dde28d", - "name": "NODE_554_length_64826_cov_9.191181" - }, - "NODE_555_length_64654_cov_145.943389": { - "contig_id": "NODE_555_length_64654_cov_145.943389", - "description": "", - "gc_content": 0.38714, - "length": 64654, - "md5": "5a531519e4580cc9b34eb25457e62f8d", - "name": "NODE_555_length_64654_cov_145.943389" - }, - "NODE_556_length_64437_cov_9.328896": { - "contig_id": "NODE_556_length_64437_cov_9.328896", - "description": "", - "gc_content": 0.68127, - "length": 64437, - "md5": "5560e1784915549c5f26ae9fcaf922a7", - "name": "NODE_556_length_64437_cov_9.328896" - }, - "NODE_5582_length_8141_cov_75.632698": { - "contig_id": "NODE_5582_length_8141_cov_75.632698", - "description": "", - "gc_content": 0.3405, - "length": 8141, - "md5": "6eaa7e444383fee01b3fc36a13d5eb2f", - "name": "NODE_5582_length_8141_cov_75.632698" - }, - "NODE_561_length_63899_cov_28.003931": { - "Ncount": 100, - "contig_id": "NODE_561_length_63899_cov_28.003931", - "description": "", - "gc_content": 0.64197, - "length": 63899, - "md5": "6b3306aeaf97fb140b9b5631131e4a24", - "name": "NODE_561_length_63899_cov_28.003931" - }, - "NODE_564_length_63499_cov_126.133236": { - "Ncount": 100, - "contig_id": "NODE_564_length_63499_cov_126.133236", - "description": "", - "gc_content": 0.64615, - "length": 63499, - "md5": "66bc6f0fe172c952b1a5ac42c09acfa9", - "name": "NODE_564_length_63499_cov_126.133236" - }, - "NODE_567_length_63352_cov_30.361613": { - "Ncount": 400, - "contig_id": "NODE_567_length_63352_cov_30.361613", - "description": "", - "gc_content": 0.62811, - "length": 63352, - "md5": "7f657cc58e164978c37a0f1523998819", - "name": "NODE_567_length_63352_cov_30.361613" - }, - "NODE_569_length_63253_cov_29.829947": { - "contig_id": "NODE_569_length_63253_cov_29.829947", - "description": "", - "gc_content": 0.64454, - "length": 63253, - "md5": "7c0ec2e33b6ff6a386c90395e5865ae8", - "name": "NODE_569_length_63253_cov_29.829947" - }, - "NODE_5780_length_7884_cov_87.887470": { - "contig_id": "NODE_5780_length_7884_cov_87.887470", - "description": "", - "gc_content": 0.62976, - "length": 7884, - "md5": "02326e3179426c15ebac2d58667bbb46", - "name": "NODE_5780_length_7884_cov_87.887470" - }, - "NODE_579_length_62774_cov_18.179276": { - "Ncount": 200, - "contig_id": "NODE_579_length_62774_cov_18.179276", - "description": "", - "gc_content": 0.39741, - "length": 62774, - "md5": "ee572e3a738e4d502d8609b0d33d99eb", - "name": "NODE_579_length_62774_cov_18.179276" - }, - "NODE_57_length_231805_cov_124.103978": { - "Ncount": 500, - "contig_id": "NODE_57_length_231805_cov_124.103978", - "description": "", - "gc_content": 0.64216, - "length": 231805, - "md5": "85f199bbdb90a0e4466582e4cef3f78a", - "name": "NODE_57_length_231805_cov_124.103978" - }, - "NODE_5816_length_7835_cov_34.387018": { - "Ncount": 10, - "contig_id": "NODE_5816_length_7835_cov_34.387018", - "description": "", - "gc_content": 0.68462, - "length": 7835, - "md5": "65fa108ecce93b4a0804ab914317772e", - "name": "NODE_5816_length_7835_cov_34.387018" - }, - "NODE_582_length_62460_cov_126.496915": { - "Ncount": 200, - "contig_id": "NODE_582_length_62460_cov_126.496915", - "description": "", - "gc_content": 0.63602, - "length": 62460, - "md5": "b9307ae81474bf1441134df29b8b5535", - "name": "NODE_582_length_62460_cov_126.496915" - }, - "NODE_586_length_62359_cov_143.073751": { - "contig_id": "NODE_586_length_62359_cov_143.073751", - "description": "", - "gc_content": 0.63949, - "length": 62359, - "md5": "0a12b3d5e0743407dc178d00be882dac", - "name": "NODE_586_length_62359_cov_143.073751" - }, - "NODE_592_length_61638_cov_130.143903": { - "Ncount": 100, - "contig_id": "NODE_592_length_61638_cov_130.143903", - "description": "", - "gc_content": 0.64142, - "length": 61638, - "md5": "b4e3fb6dc818ff22cb46d7fa8d75c088", - "name": "NODE_592_length_61638_cov_130.143903" - }, - "NODE_5940_length_7684_cov_29.465199": { - "contig_id": "NODE_5940_length_7684_cov_29.465199", - "description": "", - "gc_content": 0.63782, - "length": 7684, - "md5": "951076e273f0516972fef73553d9cf6e", - "name": "NODE_5940_length_7684_cov_29.465199" - }, - "NODE_5954_length_7670_cov_81.032830": { - "contig_id": "NODE_5954_length_7670_cov_81.032830", - "description": "", - "gc_content": 0.60352, - "length": 7670, - "md5": "4da7dde0a0ddcdba14f63a795585854c", - "name": "NODE_5954_length_7670_cov_81.032830" - }, - "NODE_5973_length_7649_cov_125.028707": { - "contig_id": "NODE_5973_length_7649_cov_125.028707", - "description": "", - "gc_content": 0.66662, - "length": 7649, - "md5": "9be1cb2716ca7ebbdb0de9a76a434621", - "name": "NODE_5973_length_7649_cov_125.028707" - }, - "NODE_5989_length_7628_cov_31.501783": { - "contig_id": "NODE_5989_length_7628_cov_31.501783", - "description": "", - "gc_content": 0.64696, - "length": 7628, - "md5": "4b720044895d0efe072bac21ddccb37e", - "name": "NODE_5989_length_7628_cov_31.501783" - }, - "NODE_6019_length_7599_cov_16.769486": { - "contig_id": "NODE_6019_length_7599_cov_16.769486", - "description": "", - "gc_content": 0.49401, - "length": 7599, - "md5": "a68441f462d746b118e9460d5e057da5", - "name": "NODE_6019_length_7599_cov_16.769486" - }, - "NODE_6083_length_7535_cov_29.077674": { - "contig_id": "NODE_6083_length_7535_cov_29.077674", - "description": "", - "gc_content": 0.32223, - "length": 7535, - "md5": "c47b4d04f186bfa760c1409fbaa25d7a", - "name": "NODE_6083_length_7535_cov_29.077674" - }, - "NODE_6101_length_7514_cov_34.274165": { - "contig_id": "NODE_6101_length_7514_cov_34.274165", - "description": "", - "gc_content": 0.4819, - "length": 7514, - "md5": "c1b4a4bbf295884caf291d3c561f5895", - "name": "NODE_6101_length_7514_cov_34.274165" - }, - "NODE_6120_length_7490_cov_18.961802": { - "contig_id": "NODE_6120_length_7490_cov_18.961802", - "description": "", - "gc_content": 0.59987, - "length": 7490, - "md5": "6b2c92187ddeb9279a7584e0a2441bc0", - "name": "NODE_6120_length_7490_cov_18.961802" - }, - "NODE_6122_length_7486_cov_92.462522": { - "contig_id": "NODE_6122_length_7486_cov_92.462522", - "description": "", - "gc_content": 0.35373, - "length": 7486, - "md5": "cc2e7417cf41c1962a52fc27b5813781", - "name": "NODE_6122_length_7486_cov_92.462522" - }, - "NODE_614_length_60012_cov_125.554080": { - "Ncount": 100, - "contig_id": "NODE_614_length_60012_cov_125.554080", - "description": "", - "gc_content": 0.62219, - "length": 60012, - "md5": "f52ef4bb542a84cef213cd14b481956c", - "name": "NODE_614_length_60012_cov_125.554080" - }, - "NODE_617_length_59797_cov_619.548877": { - "contig_id": "NODE_617_length_59797_cov_619.548877", - "description": "", - "gc_content": 0.64386, - "length": 59797, - "md5": "c2615282a13796dc89ef2eded4a71fa7", - "name": "NODE_617_length_59797_cov_619.548877" - }, - "NODE_6194_length_7400_cov_637.468346": { - "contig_id": "NODE_6194_length_7400_cov_637.468346", - "description": "", - "gc_content": 0.5927, - "length": 7400, - "md5": "8e3e39cf815e3e0eb7ebd56ced1d237f", - "name": "NODE_6194_length_7400_cov_637.468346" - }, - "NODE_619_length_59608_cov_150.524172": { - "Ncount": 100, - "contig_id": "NODE_619_length_59608_cov_150.524172", - "description": "", - "gc_content": 0.38679, - "length": 59608, - "md5": "e8d5d5d77accf9d5849bc3b9104456c4", - "name": "NODE_619_length_59608_cov_150.524172" - }, - "NODE_61_length_215940_cov_14.853014": { - "Ncount": 100, - "contig_id": "NODE_61_length_215940_cov_14.853014", - "description": "", - "gc_content": 0.4918, - "length": 215940, - "md5": "87c0c5e1545bac1d9461c7de0c54caf8", - "name": "NODE_61_length_215940_cov_14.853014" - }, - "NODE_620_length_59372_cov_29.672843": { - "contig_id": "NODE_620_length_59372_cov_29.672843", - "description": "", - "gc_content": 0.64588, - "length": 59372, - "md5": "f897a31a47d6049f2c7301f9e01ab437", - "name": "NODE_620_length_59372_cov_29.672843" - }, - "NODE_6279_length_7331_cov_107.395410": { - "contig_id": "NODE_6279_length_7331_cov_107.395410", - "description": "", - "gc_content": 0.60483, - "length": 7331, - "md5": "ce2655c5c2776996ef2e8053cfba2fde", - "name": "NODE_6279_length_7331_cov_107.395410" - }, - "NODE_628_length_58947_cov_30.965275": { - "contig_id": "NODE_628_length_58947_cov_30.965275", - "description": "", - "gc_content": 0.63533, - "length": 58947, - "md5": "0fed33f8b6d3dd0453142303a45b5e6b", - "name": "NODE_628_length_58947_cov_30.965275" - }, - "NODE_6291_length_7310_cov_111.403997": { - "contig_id": "NODE_6291_length_7310_cov_111.403997", - "description": "", - "gc_content": 0.38509, - "length": 7310, - "md5": "f77afb8e9cc4bd84f408c50373ee9ca7", - "name": "NODE_6291_length_7310_cov_111.403997" - }, - "NODE_629_length_58942_cov_160.143410": { - "contig_id": "NODE_629_length_58942_cov_160.143410", - "description": "", - "gc_content": 0.50349, - "length": 58942, - "md5": "75ef7d2c424f65593e6b5cb895082941", - "name": "NODE_629_length_58942_cov_160.143410" - }, - "NODE_6325_length_7276_cov_68.142086": { - "contig_id": "NODE_6325_length_7276_cov_68.142086", - "description": "", - "gc_content": 0.61943, - "length": 7276, - "md5": "88ac2931f6e1ad2d085edfbac3178824", - "name": "NODE_6325_length_7276_cov_68.142086" - }, - "NODE_6355_length_7245_cov_6.010709": { - "contig_id": "NODE_6355_length_7245_cov_6.010709", - "description": "", - "gc_content": 0.67633, - "length": 7245, - "md5": "b41a915b5659f3f95edbf5e7eb213f8a", - "name": "NODE_6355_length_7245_cov_6.010709" - }, - "NODE_6359_length_7238_cov_166.053181": { - "contig_id": "NODE_6359_length_7238_cov_166.053181", - "description": "", - "gc_content": 0.40094, - "length": 7238, - "md5": "2b762f59b881d3f5195c8ad321c72978", - "name": "NODE_6359_length_7238_cov_166.053181" - }, - "NODE_636_length_58624_cov_15.779542": { - "contig_id": "NODE_636_length_58624_cov_15.779542", - "description": "", - "gc_content": 0.40576, - "length": 58624, - "md5": "751218e17d1567b7f63e38bf94943dde", - "name": "NODE_636_length_58624_cov_15.779542" - }, - "NODE_6398_length_7202_cov_17.312859": { - "contig_id": "NODE_6398_length_7202_cov_17.312859", - "description": "", - "gc_content": 0.33546, - "length": 7202, - "md5": "dd0ab1acd52f669b84370a685386c698", - "name": "NODE_6398_length_7202_cov_17.312859" - }, - "NODE_63_length_214850_cov_20.328620": { - "contig_id": "NODE_63_length_214850_cov_20.328620", - "description": "", - "gc_content": 0.40235, - "length": 214850, - "md5": "638a479696d53a648738ab61139b95df", - "name": "NODE_63_length_214850_cov_20.328620" - }, - "NODE_6401_length_7198_cov_141.483690": { - "contig_id": "NODE_6401_length_7198_cov_141.483690", - "description": "", - "gc_content": 0.36218, - "length": 7198, - "md5": "590d888d9a6339ab260824be29e1baea", - "name": "NODE_6401_length_7198_cov_141.483690" - }, - "NODE_6405_length_7196_cov_180.984316": { - "contig_id": "NODE_6405_length_7196_cov_180.984316", - "description": "", - "gc_content": 0.3923, - "length": 7196, - "md5": "aa4dbe76fa3d25550f4cd617d2dca01d", - "name": "NODE_6405_length_7196_cov_180.984316" - }, - "NODE_648_length_57727_cov_128.855684": { - "Ncount": 300, - "contig_id": "NODE_648_length_57727_cov_128.855684", - "description": "", - "gc_content": 0.63631, - "length": 57727, - "md5": "54154dbd0064a475cecad5a920f979b7", - "name": "NODE_648_length_57727_cov_128.855684" - }, - "NODE_651_length_57656_cov_142.729571": { - "contig_id": "NODE_651_length_57656_cov_142.729571", - "description": "", - "gc_content": 0.52674, - "length": 57656, - "md5": "7f525a078c4af9f969ae8a05fd113bd2", - "name": "NODE_651_length_57656_cov_142.729571" - }, - "NODE_6542_length_7049_cov_520.103231": { - "contig_id": "NODE_6542_length_7049_cov_520.103231", - "description": "", - "gc_content": 0.6364, - "length": 7049, - "md5": "290ff9efd7555fa7266dedb1eb7b3ea1", - "name": "NODE_6542_length_7049_cov_520.103231" - }, - "NODE_6566_length_7030_cov_72.684301": { - "contig_id": "NODE_6566_length_7030_cov_72.684301", - "description": "", - "gc_content": 0.40939, - "length": 7030, - "md5": "7d44d9b910d6e9483fbc285772dd2c55", - "name": "NODE_6566_length_7030_cov_72.684301" - }, - "NODE_6573_length_7017_cov_112.783252": { - "contig_id": "NODE_6573_length_7017_cov_112.783252", - "description": "", - "gc_content": 0.61622, - "length": 7017, - "md5": "b90d8bd372713235195fb96788d16d8e", - "name": "NODE_6573_length_7017_cov_112.783252" - }, - "NODE_659_length_57295_cov_15.796820": { - "Ncount": 100, - "contig_id": "NODE_659_length_57295_cov_15.796820", - "description": "", - "gc_content": 0.40384, - "length": 57295, - "md5": "f347bca2a8f3b7a70c530a6dbd42968c", - "name": "NODE_659_length_57295_cov_15.796820" - }, - "NODE_6609_length_6984_cov_24.225285": { - "contig_id": "NODE_6609_length_6984_cov_24.225285", - "description": "", - "gc_content": 0.63631, - "length": 6984, - "md5": "ea76a534ed362b96e159678b89330be0", - "name": "NODE_6609_length_6984_cov_24.225285" - }, - "NODE_6618_length_6974_cov_8.079347": { - "contig_id": "NODE_6618_length_6974_cov_8.079347", - "description": "", - "gc_content": 0.68827, - "length": 6974, - "md5": "c1d13b5df9941628f66d893788c5d073", - "name": "NODE_6618_length_6974_cov_8.079347" - }, - "NODE_6672_length_6919_cov_614.467075": { - "contig_id": "NODE_6672_length_6919_cov_614.467075", - "description": "", - "gc_content": 0.59431, - "length": 6919, - "md5": "345014a26f92351bee0dc1f250adea58", - "name": "NODE_6672_length_6919_cov_614.467075" - }, - "NODE_6693_length_6890_cov_85.482809": { - "contig_id": "NODE_6693_length_6890_cov_85.482809", - "description": "", - "gc_content": 0.65588, - "length": 6890, - "md5": "592f82300005a33bfad0a7dd2a21e7c3", - "name": "NODE_6693_length_6890_cov_85.482809" - }, - "NODE_6699_length_6884_cov_7.543418": { - "contig_id": "NODE_6699_length_6884_cov_7.543418", - "description": "", - "gc_content": 0.67882, - "length": 6884, - "md5": "b2549e035d0ebbe84af43e4e21197d72", - "name": "NODE_6699_length_6884_cov_7.543418" - }, - "NODE_6731_length_6854_cov_17.630534": { - "contig_id": "NODE_6731_length_6854_cov_17.630534", - "description": "", - "gc_content": 0.47651, - "length": 6854, - "md5": "6726dcd340ec9dac1d8b0a4aa6443741", - "name": "NODE_6731_length_6854_cov_17.630534" - }, - "NODE_6750_length_6834_cov_7.684319": { - "contig_id": "NODE_6750_length_6834_cov_7.684319", - "description": "", - "gc_content": 0.64516, - "length": 6834, - "md5": "c0a39065df04857c3c3b966a24442756", - "name": "NODE_6750_length_6834_cov_7.684319" - }, - "NODE_6751_length_6833_cov_20.854529": { - "contig_id": "NODE_6751_length_6833_cov_20.854529", - "description": "", - "gc_content": 0.46583, - "length": 6833, - "md5": "fd2b887ba74656ba118a0990c302bb11", - "name": "NODE_6751_length_6833_cov_20.854529" - }, - "NODE_6774_length_6802_cov_29.489551": { - "contig_id": "NODE_6774_length_6802_cov_29.489551", - "description": "", - "gc_content": 0.62864, - "length": 6802, - "md5": "61e89914a79b2d15e5b157085dfec790", - "name": "NODE_6774_length_6802_cov_29.489551" - }, - "NODE_679_length_56544_cov_113.413957": { - "Ncount": 200, - "contig_id": "NODE_679_length_56544_cov_113.413957", - "description": "", - "gc_content": 0.64396, - "length": 56544, - "md5": "714bab70ee3be5061e1a5eae9f49713f", - "name": "NODE_679_length_56544_cov_113.413957" - }, - "NODE_680_length_56331_cov_153.990209": { - "contig_id": "NODE_680_length_56331_cov_153.990209", - "description": "", - "gc_content": 0.5017, - "length": 56331, - "md5": "ff164cc73fa48d87e6889cdacc80dab2", - "name": "NODE_680_length_56331_cov_153.990209" - }, - "NODE_6810_length_6767_cov_119.059893": { - "contig_id": "NODE_6810_length_6767_cov_119.059893", - "description": "", - "gc_content": 0.65553, - "length": 6767, - "md5": "b1259a977e2a5fb462815b1c373ab9e5", - "name": "NODE_6810_length_6767_cov_119.059893" - }, - "NODE_683_length_56170_cov_132.757658": { - "Ncount": 100, - "contig_id": "NODE_683_length_56170_cov_132.757658", - "description": "", - "gc_content": 0.64079, - "length": 56170, - "md5": "192be8d0fec1a5fad860ebd06c47d916", - "name": "NODE_683_length_56170_cov_132.757658" - }, - "NODE_685_length_56139_cov_106.838403": { - "contig_id": "NODE_685_length_56139_cov_106.838403", - "description": "", - "gc_content": 0.64787, - "length": 56139, - "md5": "b3b99a4a45cfcee5afcd180bbbcb1ea0", - "name": "NODE_685_length_56139_cov_106.838403" - }, - "NODE_6891_length_6698_cov_15.409002": { - "contig_id": "NODE_6891_length_6698_cov_15.409002", - "description": "", - "gc_content": 0.50567, - "length": 6698, - "md5": "206126a474a81151d8e39bf55ab39bd4", - "name": "NODE_6891_length_6698_cov_15.409002" - }, - "NODE_690_length_55970_cov_31.828937": { - "contig_id": "NODE_690_length_55970_cov_31.828937", - "description": "", - "gc_content": 0.64351, - "length": 55970, - "md5": "cb9f6eb80487958ddbc5670583b4d15a", - "name": "NODE_690_length_55970_cov_31.828937" - }, - "NODE_691_length_55900_cov_15.467025": { - "Ncount": 200, - "contig_id": "NODE_691_length_55900_cov_15.467025", - "description": "", - "gc_content": 0.41301, - "length": 55900, - "md5": "1afc97a71676ddc3e654325f4c8becba", - "name": "NODE_691_length_55900_cov_15.467025" - }, - "NODE_6920_length_6679_cov_11.783514": { - "contig_id": "NODE_6920_length_6679_cov_11.783514", - "description": "", - "gc_content": 0.36113, - "length": 6679, - "md5": "59d41204e12cb49dc270eb473bfc72ea", - "name": "NODE_6920_length_6679_cov_11.783514" - }, - "NODE_6925_length_6674_cov_141.037317": { - "contig_id": "NODE_6925_length_6674_cov_141.037317", - "description": "", - "gc_content": 0.29353, - "length": 6674, - "md5": "6593862f91218f09c936ce952fd12964", - "name": "NODE_6925_length_6674_cov_141.037317" - }, - "NODE_6939_length_6655_cov_8.166364": { - "contig_id": "NODE_6939_length_6655_cov_8.166364", - "description": "", - "gc_content": 0.68745, - "length": 6655, - "md5": "deda3a8b52d3f61441d6bf5a6e2ae0b1", - "name": "NODE_6939_length_6655_cov_8.166364" - }, - "NODE_697_length_55642_cov_21.635454": { - "contig_id": "NODE_697_length_55642_cov_21.635454", - "description": "", - "gc_content": 0.39237, - "length": 55642, - "md5": "b056176d1cba2c4e963950f02a576684", - "name": "NODE_697_length_55642_cov_21.635454" - }, - "NODE_6_length_783337_cov_571.650609": { - "Ncount": 20, - "contig_id": "NODE_6_length_783337_cov_571.650609", - "description": "", - "gc_content": 0.63842, - "length": 783337, - "md5": "16fbf10493b5eabf53e06e532ca2f3b8", - "name": "NODE_6_length_783337_cov_571.650609" - }, - "NODE_7020_length_6575_cov_8.774693": { - "contig_id": "NODE_7020_length_6575_cov_8.774693", - "description": "", - "gc_content": 0.69703, - "length": 6575, - "md5": "612adfcbbb8c98fa8b588ecd91b9485b", - "name": "NODE_7020_length_6575_cov_8.774693" - }, - "NODE_7029_length_6565_cov_242.124578": { - "contig_id": "NODE_7029_length_6565_cov_242.124578", - "description": "", - "gc_content": 0.38979, - "length": 6565, - "md5": "23b3f7c7febfee6dc1057eec7fe036a2", - "name": "NODE_7029_length_6565_cov_242.124578" - }, - "NODE_7036_length_6560_cov_117.717602": { - "Ncount": 100, - "contig_id": "NODE_7036_length_6560_cov_117.717602", - "description": "", - "gc_content": 0.6503, - "length": 6560, - "md5": "67904acedce0a28116dcbaaa50e76718", - "name": "NODE_7036_length_6560_cov_117.717602" - }, - "NODE_7047_length_6551_cov_115.536638": { - "contig_id": "NODE_7047_length_6551_cov_115.536638", - "description": "", - "gc_content": 0.64341, - "length": 6551, - "md5": "48aaac078e013e007d264aa4b6ad2818", - "name": "NODE_7047_length_6551_cov_115.536638" - }, - "NODE_706_length_55137_cov_29.516394": { - "contig_id": "NODE_706_length_55137_cov_29.516394", - "description": "", - "gc_content": 0.63834, - "length": 55137, - "md5": "63830ab00e23f627d3562c07c2264ae4", - "name": "NODE_706_length_55137_cov_29.516394" - }, - "NODE_717_length_54760_cov_8.356110": { - "contig_id": "NODE_717_length_54760_cov_8.356110", - "description": "", - "gc_content": 0.66063, - "length": 54760, - "md5": "da86e9b93e649ec725338f8506a9f7ee", - "name": "NODE_717_length_54760_cov_8.356110" - }, - "NODE_7242_length_6394_cov_25.830573": { - "contig_id": "NODE_7242_length_6394_cov_25.830573", - "description": "", - "gc_content": 0.67047, - "length": 6394, - "md5": "c86d543f3b1c67fd4b0879990d7716a6", - "name": "NODE_7242_length_6394_cov_25.830573" - }, - "NODE_7245_length_6391_cov_14.648043": { - "contig_id": "NODE_7245_length_6391_cov_14.648043", - "description": "", - "gc_content": 0.33328, - "length": 6391, - "md5": "e36466af321ed33953f468cc145ecc9c", - "name": "NODE_7245_length_6391_cov_14.648043" - }, - "NODE_7275_length_6364_cov_129.431923": { - "contig_id": "NODE_7275_length_6364_cov_129.431923", - "description": "", - "gc_content": 0.62665, - "length": 6364, - "md5": "032ae8bdf751a8dc7aeb938271a7fd79", - "name": "NODE_7275_length_6364_cov_129.431923" - }, - "NODE_7282_length_6355_cov_27.245397": { - "Ncount": 100, - "contig_id": "NODE_7282_length_6355_cov_27.245397", - "description": "", - "gc_content": 0.39449, - "length": 6355, - "md5": "a510f1a0285d6442ae55d6cc6e68e894", - "name": "NODE_7282_length_6355_cov_27.245397" - }, - "NODE_736_length_53493_cov_9.202945": { - "Ncount": 10, - "contig_id": "NODE_736_length_53493_cov_9.202945", - "description": "", - "gc_content": 0.67607, - "length": 53493, - "md5": "12d3a4a6c468173c2f8d75770bf1a7f3", - "name": "NODE_736_length_53493_cov_9.202945" - }, - "NODE_7395_length_6272_cov_37.732508": { - "contig_id": "NODE_7395_length_6272_cov_37.732508", - "description": "", - "gc_content": 0.53492, - "length": 6272, - "md5": "1b1c42415c00b5b577a0189ca8ead1c9", - "name": "NODE_7395_length_6272_cov_37.732508" - }, - "NODE_7411_length_6260_cov_45.889122": { - "contig_id": "NODE_7411_length_6260_cov_45.889122", - "description": "", - "gc_content": 0.59185, - "length": 6260, - "md5": "05c1b8480e0f4da9b771e47eefd2dd76", - "name": "NODE_7411_length_6260_cov_45.889122" - }, - "NODE_7423_length_6253_cov_140.303162": { - "contig_id": "NODE_7423_length_6253_cov_140.303162", - "description": "", - "gc_content": 0.38094, - "length": 6253, - "md5": "08a31f3bec01fdd9fa1d47a4a7504f80", - "name": "NODE_7423_length_6253_cov_140.303162" - }, - "NODE_743_length_53171_cov_28.472927": { - "contig_id": "NODE_743_length_53171_cov_28.472927", - "description": "", - "gc_content": 0.64595, - "length": 53171, - "md5": "71e684c40ddcc83b92699b213bd6a227", - "name": "NODE_743_length_53171_cov_28.472927" - }, - "NODE_7461_length_6223_cov_178.169423": { - "contig_id": "NODE_7461_length_6223_cov_178.169423", - "description": "", - "gc_content": 0.47951, - "length": 6223, - "md5": "5aa9ba857bb48cddeaba6dd088619285", - "name": "NODE_7461_length_6223_cov_178.169423" - }, - "NODE_7482_length_6205_cov_7.075610": { - "contig_id": "NODE_7482_length_6205_cov_7.075610", - "description": "", - "gc_content": 0.67446, - "length": 6205, - "md5": "cc08621722ac084b262a716cfd1b1181", - "name": "NODE_7482_length_6205_cov_7.075610" - }, - "NODE_7515_length_6176_cov_123.871426": { - "contig_id": "NODE_7515_length_6176_cov_123.871426", - "description": "", - "gc_content": 0.64718, - "length": 6176, - "md5": "088f2f3c73eb43499a10da1e6519ce32", - "name": "NODE_7515_length_6176_cov_123.871426" - }, - "NODE_754_length_52444_cov_15.900590": { - "contig_id": "NODE_754_length_52444_cov_15.900590", - "description": "", - "gc_content": 0.39888, - "length": 52444, - "md5": "ca5c522955de94471a6030d818573acc", - "name": "NODE_754_length_52444_cov_15.900590" - }, - "NODE_7557_length_6149_cov_7.029209": { - "Ncount": 100, - "contig_id": "NODE_7557_length_6149_cov_7.029209", - "description": "", - "gc_content": 0.6767, - "length": 6149, - "md5": "0cfc7d374caa141093adf819dcd8a391", - "name": "NODE_7557_length_6149_cov_7.029209" - }, - "NODE_755_length_52404_cov_8.757340": { - "contig_id": "NODE_755_length_52404_cov_8.757340", - "description": "", - "gc_content": 0.65352, - "length": 52404, - "md5": "dbe0d05dd1eb14a539fcb9ed26d81330", - "name": "NODE_755_length_52404_cov_8.757340" - }, - "NODE_7589_length_6125_cov_17.656507": { - "contig_id": "NODE_7589_length_6125_cov_17.656507", - "description": "", - "gc_content": 0.39249, - "length": 6125, - "md5": "e4af8c2df3a30d02e4879a1e015e3d4c", - "name": "NODE_7589_length_6125_cov_17.656507" - }, - "NODE_7625_length_6093_cov_31.955780": { - "contig_id": "NODE_7625_length_6093_cov_31.955780", - "description": "", - "gc_content": 0.52421, - "length": 6093, - "md5": "f44982f2c2f6e810e226a787b3350d5d", - "name": "NODE_7625_length_6093_cov_31.955780" - }, - "NODE_766_length_51854_cov_15.814205": { - "contig_id": "NODE_766_length_51854_cov_15.814205", - "description": "", - "gc_content": 0.48673, - "length": 51854, - "md5": "f0aeaa15df6545a5d211b61b3fad324a", - "name": "NODE_766_length_51854_cov_15.814205" - }, - "NODE_770_length_51760_cov_137.383483": { - "Ncount": 100, - "contig_id": "NODE_770_length_51760_cov_137.383483", - "description": "", - "gc_content": 0.64865, - "length": 51760, - "md5": "4075b62da867e57cac014a79af497bf4", - "name": "NODE_770_length_51760_cov_137.383483" - }, - "NODE_7724_length_6015_cov_53.270638": { - "contig_id": "NODE_7724_length_6015_cov_53.270638", - "description": "", - "gc_content": 0.62494, - "length": 6015, - "md5": "df254986826d8ef211404f99ac8d1ce4", - "name": "NODE_7724_length_6015_cov_53.270638" - }, - "NODE_774_length_51547_cov_122.440049": { - "contig_id": "NODE_774_length_51547_cov_122.440049", - "description": "", - "gc_content": 0.64605, - "length": 51547, - "md5": "c0410b616b52eaac7dc223f85d295893", - "name": "NODE_774_length_51547_cov_122.440049" - }, - "NODE_7844_length_5920_cov_57.136061": { - "contig_id": "NODE_7844_length_5920_cov_57.136061", - "description": "", - "gc_content": 0.61318, - "length": 5920, - "md5": "1dc75c731ac68a159578d414fe21f00c", - "name": "NODE_7844_length_5920_cov_57.136061" - }, - "NODE_7850_length_5916_cov_32.574475": { - "Ncount": 57, - "contig_id": "NODE_7850_length_5916_cov_32.574475", - "description": "", - "gc_content": 0.63455, - "length": 5916, - "md5": "673e9dd5826e566507f1e9035fb49ee9", - "name": "NODE_7850_length_5916_cov_32.574475" - }, - "NODE_789_length_50826_cov_143.577140": { - "contig_id": "NODE_789_length_50826_cov_143.577140", - "description": "", - "gc_content": 0.53087, - "length": 50826, - "md5": "57e5ee62107e62fac5b8a372f7bea0c4", - "name": "NODE_789_length_50826_cov_143.577140" - }, - "NODE_78_length_199467_cov_625.100716": { - "Ncount": 10, - "contig_id": "NODE_78_length_199467_cov_625.100716", - "description": "", - "gc_content": 0.63796, - "length": 199467, - "md5": "69c1e9843c77931c1800c81d49a6defd", - "name": "NODE_78_length_199467_cov_625.100716" - }, - "NODE_791_length_50791_cov_18.057750": { - "contig_id": "NODE_791_length_50791_cov_18.057750", - "description": "", - "gc_content": 0.38948, - "length": 50791, - "md5": "49d89fbb62594ff3706172c565fab800", - "name": "NODE_791_length_50791_cov_18.057750" - }, - "NODE_7925_length_5859_cov_5.237939": { - "contig_id": "NODE_7925_length_5859_cov_5.237939", - "description": "", - "gc_content": 0.6665, - "length": 5859, - "md5": "6f10a3913dc1364afb6b880c21411f45", - "name": "NODE_7925_length_5859_cov_5.237939" - }, - "NODE_7944_length_5850_cov_23.809491": { - "contig_id": "NODE_7944_length_5850_cov_23.809491", - "description": "", - "gc_content": 0.35179, - "length": 5850, - "md5": "dbd62acecb19aeef6e58b207ffbb2251", - "name": "NODE_7944_length_5850_cov_23.809491" - }, - "NODE_7968_length_5840_cov_67.807260": { - "contig_id": "NODE_7968_length_5840_cov_67.807260", - "description": "", - "gc_content": 0.62055, - "length": 5840, - "md5": "2265975e5e925da422bfa5838b94478c", - "name": "NODE_7968_length_5840_cov_67.807260" - }, - "NODE_7985_length_5829_cov_13.211812": { - "contig_id": "NODE_7985_length_5829_cov_13.211812", - "description": "", - "gc_content": 0.41311, - "length": 5829, - "md5": "81ee3b247140f5c617f275c3d214fcda", - "name": "NODE_7985_length_5829_cov_13.211812" - }, - "NODE_8023_length_5806_cov_27.846809": { - "contig_id": "NODE_8023_length_5806_cov_27.846809", - "description": "", - "gc_content": 0.65295, - "length": 5806, - "md5": "628d33d81b17f61974011f6f0a109d56", - "name": "NODE_8023_length_5806_cov_27.846809" - }, - "NODE_8043_length_5797_cov_10.840300": { - "contig_id": "NODE_8043_length_5797_cov_10.840300", - "description": "", - "gc_content": 0.39451, - "length": 5797, - "md5": "3caf3f28a63ea1418f78a66c20cc0ea0", - "name": "NODE_8043_length_5797_cov_10.840300" - }, - "NODE_807_length_49891_cov_134.850971": { - "contig_id": "NODE_807_length_49891_cov_134.850971", - "description": "", - "gc_content": 0.38684, - "length": 49891, - "md5": "4732474d838de7ddfacf4b322aa475fb", - "name": "NODE_807_length_49891_cov_134.850971" - }, - "NODE_80_length_197697_cov_116.540361": { - "Ncount": 100, - "contig_id": "NODE_80_length_197697_cov_116.540361", - "description": "", - "gc_content": 0.63843, - "length": 197697, - "md5": "1f95c7c74e2c34362cd6ffbdb764b913", - "name": "NODE_80_length_197697_cov_116.540361" - }, - "NODE_812_length_49703_cov_16.488801": { - "contig_id": "NODE_812_length_49703_cov_16.488801", - "description": "", - "gc_content": 0.49061, - "length": 49703, - "md5": "d9ca2571e2838f6e8ecd1add669fad15", - "name": "NODE_812_length_49703_cov_16.488801" - }, - "NODE_8162_length_5726_cov_35.282137": { - "Ncount": 31, - "contig_id": "NODE_8162_length_5726_cov_35.282137", - "description": "", - "gc_content": 0.60933, - "length": 5726, - "md5": "9fd4410765a000b4c538dd5755945791", - "name": "NODE_8162_length_5726_cov_35.282137" - }, - "NODE_816_length_49547_cov_129.349370": { - "contig_id": "NODE_816_length_49547_cov_129.349370", - "description": "", - "gc_content": 0.39066, - "length": 49547, - "md5": "a37ffc8c7e6c090c003eb014c10d5da5", - "name": "NODE_816_length_49547_cov_129.349370" - }, - "NODE_81_length_197616_cov_8.798715": { - "contig_id": "NODE_81_length_197616_cov_8.798715", - "description": "", - "gc_content": 0.67061, - "length": 197616, - "md5": "bb6e4325aae28b71eac41fac3edc2fc0", - "name": "NODE_81_length_197616_cov_8.798715" - }, - "NODE_8207_length_5693_cov_39.400319": { - "contig_id": "NODE_8207_length_5693_cov_39.400319", - "description": "", - "gc_content": 0.6183, - "length": 5693, - "md5": "9c44c619b46ad5776a56437ddd66d5fe", - "name": "NODE_8207_length_5693_cov_39.400319" - }, - "NODE_8212_length_5691_cov_52.415366": { - "contig_id": "NODE_8212_length_5691_cov_52.415366", - "description": "", - "gc_content": 0.57143, - "length": 5691, - "md5": "c375824813e0173b9ae6d8b5d4c727b9", - "name": "NODE_8212_length_5691_cov_52.415366" - }, - "NODE_8229_length_5683_cov_15.362296": { - "contig_id": "NODE_8229_length_5683_cov_15.362296", - "description": "", - "gc_content": 0.40049, - "length": 5683, - "md5": "aa2f59422e0454f65d84158161fa8de0", - "name": "NODE_8229_length_5683_cov_15.362296" - }, - "NODE_822_length_49194_cov_15.369625": { - "contig_id": "NODE_822_length_49194_cov_15.369625", - "description": "", - "gc_content": 0.48614, - "length": 49194, - "md5": "7ff4ad4cd68c6262ea4e0931910e0cec", - "name": "NODE_822_length_49194_cov_15.369625" - }, - "NODE_824_length_49162_cov_133.993484": { - "Ncount": 200, - "contig_id": "NODE_824_length_49162_cov_133.993484", - "description": "", - "gc_content": 0.64047, - "length": 49162, - "md5": "154f0e8193b0695dd4638e363ef2545d", - "name": "NODE_824_length_49162_cov_133.993484" - }, - "NODE_8279_length_5657_cov_125.824348": { - "contig_id": "NODE_8279_length_5657_cov_125.824348", - "description": "", - "gc_content": 0.69524, - "length": 5657, - "md5": "f6b7b49ea8afbaf6c0c87980f69015ee", - "name": "NODE_8279_length_5657_cov_125.824348" - }, - "NODE_8280_length_5656_cov_14.131048": { - "contig_id": "NODE_8280_length_5656_cov_14.131048", - "description": "", - "gc_content": 0.37571, - "length": 5656, - "md5": "6b6103c93f75d268ce209aea3e330470", - "name": "NODE_8280_length_5656_cov_14.131048" - }, - "NODE_8288_length_5650_cov_25.592493": { - "contig_id": "NODE_8288_length_5650_cov_25.592493", - "description": "", - "gc_content": 0.60814, - "length": 5650, - "md5": "7699719a3a0ca1caedfca223daa3f0c4", - "name": "NODE_8288_length_5650_cov_25.592493" - }, - "NODE_831_length_48890_cov_126.042981": { - "contig_id": "NODE_831_length_48890_cov_126.042981", - "description": "", - "gc_content": 0.63408, - "length": 48890, - "md5": "d42c8655358028205bdaacd07cb9986e", - "name": "NODE_831_length_48890_cov_126.042981" - }, - "NODE_833_length_48710_cov_139.315569": { - "contig_id": "NODE_833_length_48710_cov_139.315569", - "description": "", - "gc_content": 0.6526, - "length": 48710, - "md5": "68ddb40adc519fb99c47e96c075a03a8", - "name": "NODE_833_length_48710_cov_139.315569" - }, - "NODE_8351_length_5612_cov_59.402555": { - "contig_id": "NODE_8351_length_5612_cov_59.402555", - "description": "", - "gc_content": 0.32627, - "length": 5612, - "md5": "3e0fd03b341564ee9c09b5da770ee000", - "name": "NODE_8351_length_5612_cov_59.402555" - }, - "NODE_8376_length_5597_cov_587.659329": { - "contig_id": "NODE_8376_length_5597_cov_587.659329", - "description": "", - "gc_content": 0.62194, - "length": 5597, - "md5": "4acd6de0447fe246b118204590136f37", - "name": "NODE_8376_length_5597_cov_587.659329" - }, - "NODE_839_length_48199_cov_17.055438": { - "contig_id": "NODE_839_length_48199_cov_17.055438", - "description": "", - "gc_content": 0.40729, - "length": 48199, - "md5": "52d4a1c51f4baad3b6998804d4655dc1", - "name": "NODE_839_length_48199_cov_17.055438" - }, - "NODE_83_length_196022_cov_154.407268": { - "contig_id": "NODE_83_length_196022_cov_154.407268", - "description": "", - "gc_content": 0.50892, - "length": 196022, - "md5": "70fa5bd747167eaa00a0e7063445b3ea", - "name": "NODE_83_length_196022_cov_154.407268" - }, - "NODE_84_length_192950_cov_576.564587": { - "Ncount": 10, - "contig_id": "NODE_84_length_192950_cov_576.564587", - "description": "", - "gc_content": 0.6322, - "length": 192950, - "md5": "6adb310d3cc0d17df7b65eb888e22d7f", - "name": "NODE_84_length_192950_cov_576.564587" - }, - "NODE_8562_length_5491_cov_89.790287": { - "contig_id": "NODE_8562_length_5491_cov_89.790287", - "description": "", - "gc_content": 0.45274, - "length": 5491, - "md5": "1645961dc4758794e81e9d0429608d0d", - "name": "NODE_8562_length_5491_cov_89.790287" - }, - "NODE_8579_length_5485_cov_245.198158": { - "contig_id": "NODE_8579_length_5485_cov_245.198158", - "description": "", - "gc_content": 0.41386, - "length": 5485, - "md5": "f4ea6e5310a63a442e8803a839182733", - "name": "NODE_8579_length_5485_cov_245.198158" - }, - "NODE_8591_length_5477_cov_152.780708": { - "contig_id": "NODE_8591_length_5477_cov_152.780708", - "description": "", - "gc_content": 0.64579, - "length": 5477, - "md5": "934b14e00949e74aa359d67a8f2b4e38", - "name": "NODE_8591_length_5477_cov_152.780708" - }, - "NODE_8672_length_5423_cov_20.928651": { - "contig_id": "NODE_8672_length_5423_cov_20.928651", - "description": "", - "gc_content": 0.37083, - "length": 5423, - "md5": "fd453c19e3de7c3e5ef99586592c5584", - "name": "NODE_8672_length_5423_cov_20.928651" - }, - "NODE_873_length_46695_cov_144.317217": { - "Ncount": 200, - "contig_id": "NODE_873_length_46695_cov_144.317217", - "description": "", - "gc_content": 0.64033, - "length": 46695, - "md5": "dea2ea5a058ac2b6c8ab461da39181fe", - "name": "NODE_873_length_46695_cov_144.317217" - }, - "NODE_87_length_190175_cov_30.214338": { - "Ncount": 100, - "contig_id": "NODE_87_length_190175_cov_30.214338", - "description": "", - "gc_content": 0.6464, - "length": 190175, - "md5": "2443c562796ce3793180ff8846b93b31", - "name": "NODE_87_length_190175_cov_30.214338" - }, - "NODE_883_length_46178_cov_136.335234": { - "contig_id": "NODE_883_length_46178_cov_136.335234", - "description": "", - "gc_content": 0.63643, - "length": 46178, - "md5": "b77944176bffd6b91488af7c9c4a8c65", - "name": "NODE_883_length_46178_cov_136.335234" - }, - "NODE_884_length_46167_cov_133.556992": { - "Ncount": 200, - "contig_id": "NODE_884_length_46167_cov_133.556992", - "description": "", - "gc_content": 0.63437, - "length": 46167, - "md5": "ea943ce64798bfd1a65086c0f37f8a52", - "name": "NODE_884_length_46167_cov_133.556992" - }, - "NODE_886_length_46025_cov_9.440178": { - "Ncount": 10, - "contig_id": "NODE_886_length_46025_cov_9.440178", - "description": "", - "gc_content": 0.675, - "length": 46025, - "md5": "03425a712ececebebb80a5dbd241d1cf", - "name": "NODE_886_length_46025_cov_9.440178" - }, - "NODE_88_length_190096_cov_14.562521": { - "contig_id": "NODE_88_length_190096_cov_14.562521", - "description": "", - "gc_content": 0.4974, - "length": 190096, - "md5": "77ab5605f21f87fc56120bdbd37d6f59", - "name": "NODE_88_length_190096_cov_14.562521" - }, - "NODE_9040_length_5209_cov_25.655801": { - "contig_id": "NODE_9040_length_5209_cov_25.655801", - "description": "", - "gc_content": 0.61413, - "length": 5209, - "md5": "04596f6d09c5992471a41b23b41ef059", - "name": "NODE_9040_length_5209_cov_25.655801" - }, - "NODE_9047_length_5204_cov_20.159060": { - "contig_id": "NODE_9047_length_5204_cov_20.159060", - "description": "", - "gc_content": 0.40949, - "length": 5204, - "md5": "d65a37520d6685ff9c0c71050a27f4fa", - "name": "NODE_9047_length_5204_cov_20.159060" - }, - "NODE_909_length_45091_cov_529.995803": { - "Ncount": 10, - "contig_id": "NODE_909_length_45091_cov_529.995803", - "description": "", - "gc_content": 0.63305, - "length": 45091, - "md5": "2e65688fcde7fe0290c39180e73b17ca", - "name": "NODE_909_length_45091_cov_529.995803" - }, - "NODE_9114_length_5170_cov_27.644575": { - "contig_id": "NODE_9114_length_5170_cov_27.644575", - "description": "", - "gc_content": 0.63791, - "length": 5170, - "md5": "a458e82f12dd87f44fdf77b585811db9", - "name": "NODE_9114_length_5170_cov_27.644575" - }, - "NODE_911_length_45084_cov_30.755891": { - "contig_id": "NODE_911_length_45084_cov_30.755891", - "description": "", - "gc_content": 0.63457, - "length": 45084, - "md5": "08bf1192c95d2b6bfb97e08ac1e49123", - "name": "NODE_911_length_45084_cov_30.755891" - }, - "NODE_9177_length_5139_cov_122.266129": { - "contig_id": "NODE_9177_length_5139_cov_122.266129", - "description": "", - "gc_content": 0.40845, - "length": 5139, - "md5": "8eff252a3d81d59fb38273d938db7296", - "name": "NODE_9177_length_5139_cov_122.266129" - }, - "NODE_9268_length_5090_cov_60.494340": { - "contig_id": "NODE_9268_length_5090_cov_60.494340", - "description": "", - "gc_content": 0.63222, - "length": 5090, - "md5": "64c944365bfdc0c4c22c6bcf0e00ec1a", - "name": "NODE_9268_length_5090_cov_60.494340" - }, - "NODE_9314_length_5070_cov_112.129013": { - "contig_id": "NODE_9314_length_5070_cov_112.129013", - "description": "", - "gc_content": 0.61203, - "length": 5070, - "md5": "7843bad69de0abbcca3e160b430277e5", - "name": "NODE_9314_length_5070_cov_112.129013" - }, - "NODE_9327_length_5062_cov_607.352506": { - "contig_id": "NODE_9327_length_5062_cov_607.352506", - "description": "", - "gc_content": 0.61063, - "length": 5062, - "md5": "be1ac5d4b2047f844124a87a25eea084", - "name": "NODE_9327_length_5062_cov_607.352506" - }, - "NODE_9331_length_5060_cov_12.633566": { - "contig_id": "NODE_9331_length_5060_cov_12.633566", - "description": "", - "gc_content": 0.38992, - "length": 5060, - "md5": "c238cda648b19fa5492eb1c7c13440c7", - "name": "NODE_9331_length_5060_cov_12.633566" - }, - "NODE_9336_length_5056_cov_108.661868": { - "contig_id": "NODE_9336_length_5056_cov_108.661868", - "description": "", - "gc_content": 0.64379, - "length": 5056, - "md5": "6e50153448be5904a1dd2be20e0085f3", - "name": "NODE_9336_length_5056_cov_108.661868" - }, - "NODE_934_length_44183_cov_136.004940": { - "contig_id": "NODE_934_length_44183_cov_136.004940", - "description": "", - "gc_content": 0.63194, - "length": 44183, - "md5": "4783e42672b19781d8fc96c028fd10c4", - "name": "NODE_934_length_44183_cov_136.004940" - }, - "NODE_937_length_44042_cov_9.003410": { - "contig_id": "NODE_937_length_44042_cov_9.003410", - "description": "", - "gc_content": 0.68403, - "length": 44042, - "md5": "a714156ae70b1059ee9b6eb38efd8369", - "name": "NODE_937_length_44042_cov_9.003410" - }, - "NODE_93_length_184670_cov_122.713263": { - "Ncount": 400, - "contig_id": "NODE_93_length_184670_cov_122.713263", - "description": "", - "gc_content": 0.64058, - "length": 184670, - "md5": "ce3e3b2d53987de7c85e231a9562e158", - "name": "NODE_93_length_184670_cov_122.713263" - }, - "NODE_9417_length_5014_cov_14.573099": { - "Ncount": 100, - "contig_id": "NODE_9417_length_5014_cov_14.573099", - "description": "", - "gc_content": 0.44994, - "length": 5014, - "md5": "d4c30d4af01d1a9b5f63541046c72647", - "name": "NODE_9417_length_5014_cov_14.573099" - }, - "NODE_945_length_43815_cov_17.299200": { - "contig_id": "NODE_945_length_43815_cov_17.299200", - "description": "", - "gc_content": 0.39187, - "length": 43815, - "md5": "c621ced3c7579f55144008a75238905a", - "name": "NODE_945_length_43815_cov_17.299200" - }, - "NODE_946_length_43726_cov_134.859999": { - "contig_id": "NODE_946_length_43726_cov_134.859999", - "description": "", - "gc_content": 0.64294, - "length": 43726, - "md5": "416adcfa414b7b4f7571cb4dd3b9dfad", - "name": "NODE_946_length_43726_cov_134.859999" - }, - "NODE_94_length_184300_cov_14.870216": { - "contig_id": "NODE_94_length_184300_cov_14.870216", - "description": "", - "gc_content": 0.49742, - "length": 184300, - "md5": "6c3f96fa2623209f8e7d9dd5d85f3ffa", - "name": "NODE_94_length_184300_cov_14.870216" - }, - "NODE_954_length_43446_cov_122.656611": { - "Ncount": 100, - "contig_id": "NODE_954_length_43446_cov_122.656611", - "description": "", - "gc_content": 0.64291, - "length": 43446, - "md5": "0a01e5445b4ae5e1604cbb14cf46b928", - "name": "NODE_954_length_43446_cov_122.656611" - }, - "NODE_9577_length_4930_cov_87.790564": { - "contig_id": "NODE_9577_length_4930_cov_87.790564", - "description": "", - "gc_content": 0.6574, - "length": 4930, - "md5": "a99f6a7bd789552a4ef161cf9316654b", - "name": "NODE_9577_length_4930_cov_87.790564" - }, - "NODE_9630_length_4911_cov_25.354613": { - "Ncount": 100, - "contig_id": "NODE_9630_length_4911_cov_25.354613", - "description": "", - "gc_content": 0.38668, - "length": 4911, - "md5": "b5223c91ab938e984a6faf142aa47a2e", - "name": "NODE_9630_length_4911_cov_25.354613" - }, - "NODE_9696_length_4883_cov_8.201947": { - "contig_id": "NODE_9696_length_4883_cov_8.201947", - "description": "", - "gc_content": 0.64305, - "length": 4883, - "md5": "e38a369bfe4c32a4ef75abf4d38a9c4d", - "name": "NODE_9696_length_4883_cov_8.201947" - }, - "NODE_978_length_42563_cov_644.872048": { - "contig_id": "NODE_978_length_42563_cov_644.872048", - "description": "", - "gc_content": 0.64617, - "length": 42563, - "md5": "7092bac662701bacc363b44aeac1fd93", - "name": "NODE_978_length_42563_cov_644.872048" - }, - "NODE_9920_length_4793_cov_24.394681": { - "contig_id": "NODE_9920_length_4793_cov_24.394681", - "description": "", - "gc_content": 0.3382, - "length": 4793, - "md5": "a8a1ecedf5f3bb9064b9858b2818b07d", - "name": "NODE_9920_length_4793_cov_24.394681" - }, - "NODE_994_length_42117_cov_17.135918": { - "contig_id": "NODE_994_length_42117_cov_17.135918", - "description": "", - "gc_content": 0.39329, - "length": 42117, - "md5": "c15c8bd51a683390e21912b21cee2392", - "name": "NODE_994_length_42117_cov_17.135918" - }, - "NODE_9964_length_4775_cov_27.418432": { - "Ncount": 100, - "contig_id": "NODE_9964_length_4775_cov_27.418432", - "description": "", - "gc_content": 0.36147, - "length": 4775, - "md5": "31f8d583dd52a1d062cfd6a728d81a15", - "name": "NODE_9964_length_4775_cov_27.418432" - }, - "NODE_99_length_180926_cov_149.891685": { - "contig_id": "NODE_99_length_180926_cov_149.891685", - "description": "", - "gc_content": 0.52841, - "length": 180926, - "md5": "6e7a745dea111244230aac216fe836a3", - "name": "NODE_99_length_180926_cov_149.891685" - } - }, - "dna_size": 32411722, - "fasta_handle_info": { - "handle": { - "file_name": "Compost_HQ_Bins.fa_assembly.fa", - "hid": "KBH_655882", - "id": "f8c9da6c-4d6d-41b5-8e9a-6b51eedffc31", - "remote_md5": "2f1f446cb0b7894addd2a188e530ef8f", - "type": "shock", - "url": "https://ci.kbase.us/services/shock-api" - }, - "node_file_name": "Compost_HQ_Bins.fa_assembly.fa", - "shock_id": "f8c9da6c-4d6d-41b5-8e9a-6b51eedffc31", - "size": 32979107 - }, - "fasta_handle_ref": "KBH_655882", - "gc_content": 0.54941, - "md5": "b07e1c9be725d6c9220fddebd59bc75b", - "num_contigs": 709, - "type": "metagenome", - "objectInfo": { - "id": 7, - "name": "KBase_derived_mygenome.gff_edited.gff_metagenome.assembly", - "type": "KBaseGenomeAnnotations.Assembly-6.0", - "save_date": "2021-10-10T22:14:02+0000", - "version": 1, - "saved_by": "kbaseuitest", - "wsid": 64493, - "ws": "kbaseuitest:narrative_1633901898363", - "checksum": "8da310c9ff85e9d448204f113553d7e7", - "size": 166430, - "metadata": { - "GC content": "0.54941", - "Size": "32411722", - "N Contigs": "709", - "MD5": "b07e1c9be725d6c9220fddebd59bc75b" - }, - "ref": "64493/7/1", - "obj_id": "ws.64493.obj.7", - "typeModule": "KBaseGenomeAnnotations", - "typeName": "Assembly", - "typeMajorVersion": "6", - "typeMinorVersion": "0", - "saveDate": "2021-10-10T22:14:02.000Z" - } - } - } - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_expected.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_expected.json similarity index 73% rename from test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_expected.json rename to test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_expected.json index 63a14a2b25..77b2b934ae 100644 --- a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_expected.json +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_expected.json @@ -1,6 +1,4 @@ { - "Description": "Alignments using HISAT2, v.2.1.0", - "Alignment type": "KBaseRNASeq.RNASeqAlignment-9.1", "Aligned Using": "hisat2", "Aligner Version": "2.1.0", "Library Type": "KBaseFile.SingleEndLibrary-2.2", diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json index e7af1715a8..2f40b0790b 100644 --- a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json +++ b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_01_props.json @@ -1,5 +1,79 @@ { - "set": { - "status": null + "object": { + "aligned_using": "hisat2", + "aligner_opts": { + "alignment_suffix": "_alignment", + "alignmentset_suffix": "_alignment_set", + "build_report": "0", + "condition": "Ecoli_WT", + "genome_ref": "30957/3/1", + "max_intron_length": "500000", + "min_intron_length": "20", + "no_spliced_alignment": "0", + "np": "1", + "num_threads": "2", + "orientation": "fr", + "quality_score": "phred33", + "sampleset_ref": "30957/12/1;30957/4/1", + "skip": "0", + "tailor_alignments": "dta-cufflinks", + "trim3": "0", + "trim5": "0", + "ws_name": "jjeffryes:narrative_1522765762916" + }, + "aligner_version": "2.1.0", + "alignment_stats": { + "alignment_rate": 97.248, + "mapped_reads": 1337324, + "multiple_alignments": 13935, + "properly_paired": 0, + "singletons": 1323389, + "total_reads": 1375163, + "unmapped_reads": 37839 + }, + "condition": "Ecoli_WT", + "file": { + "file_name": "accepted_hits.bam", + "hid": "KBH_455294", + "id": "43250943-1bfa-4c24-aa4e-0a5fe4eb424a", + "remote_md5": "54655741213ef6d991c0537f2c4eb33c", + "type": "shock", + "url": "https://ci.kbase.us/services/shock-api" + }, + "genome_id": "30957/3/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "read_sample_id": "30957/12/1;30957/4/1", + "size": 45448911 + }, + "objectInfo": { + "id": 13, + "name": "Ecoli_WT_R1_alignment", + "type": "KBaseRNASeq.RNASeqAlignment-9.1", + "save_date": "2019-01-17T22:09:16+0000", + "version": 4, + "saved_by": "jjeffryes", + "wsid": 30957, + "ws": "jjeffryes:narrative_1522765762916", + "checksum": "576de411da27b159dee0579fd65cba7e", + "size": 1062, + "metadata": { + "condition": "Ecoli_WT", + "aligner_version": "2.1.0", + "alignment_stats.total_reads": "1375163", + "size": "45448911", + "genome_id": "30957/3/1", + "read_sample_id": "30957/12/1;30957/4/1", + "library_type": "KBaseFile.SingleEndLibrary-2.2", + "aligned_using": "hisat2", + "alignment_stats.alignment_rate": "97.248", + "alignment_stats.mapped_reads": "1337324" + }, + "ref": "30957/13/4", + "obj_id": "ws.30957.obj.13", + "typeModule": "KBaseRNASeq", + "typeName": "RNASeqAlignment", + "typeMajorVersion": "9", + "typeMinorVersion": "1", + "saveDate": "2019-01-17T22:09:16.000Z" } } \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json deleted file mode 100644 index 9874cf6b50..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_02_props.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "set": { - "status": "loading" - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json deleted file mode 100644 index ef35650eae..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_expected.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "This is an Error" -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json deleted file mode 100644 index 1e760cc72f..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_03_props.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "set": { - "status": "error", - "error": { - "message": "This is an Error" - } - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json b/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json deleted file mode 100644 index f1a93accda..0000000000 --- a/test/unit/spec/function_output/KBaseSets/data/readsalignmentset_case_04_props.json +++ /dev/null @@ -1,445 +0,0 @@ -{ - "set": { - "status": "loaded", - "value": { - "description": "Alignments using HISAT2, v.2.1.0", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "items": [ - { - "label": "Ecoli_WT", - "ref": "30957/13/4", - "info": [ - 13, - "Ecoli_WT_R1_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:09:16+0000", - 4, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "576de411da27b159dee0579fd65cba7e", - 1062, - { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375163", - "size": "45448911", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/4/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.248", - "alignment_stats.mapped_reads": "1337324" - } - ], - "objectInfo": { - "id": 13, - "name": "Ecoli_WT_R1_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:16+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "576de411da27b159dee0579fd65cba7e", - "size": 1062, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375163", - "size": "45448911", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/4/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.248", - "alignment_stats.mapped_reads": "1337324" - }, - "ref": "30957/13/4", - "obj_id": "ws.30957.obj.13", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:16.000Z" - } - }, - { - "label": "Ecoli_WT", - "ref": "30957/16/3", - "info": [ - 16, - "Ecoli_WT_R2_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:09:22+0000", - 3, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "37ac0921fad13fbad52db7f9ec3f94f6", - 1061, - { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1080879", - "size": "36139191", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/6/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "88.843", - "alignment_stats.mapped_reads": "960285" - } - ], - "objectInfo": { - "id": 16, - "name": "Ecoli_WT_R2_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:22+0000", - "version": 3, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "37ac0921fad13fbad52db7f9ec3f94f6", - "size": 1061, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1080879", - "size": "36139191", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/6/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "88.843", - "alignment_stats.mapped_reads": "960285" - }, - "ref": "30957/16/3", - "obj_id": "ws.30957.obj.16", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:22.000Z" - } - }, - { - "label": "Ecoli_WT", - "ref": "30957/17/3", - "info": [ - 17, - "Ecoli_WT_R3_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:09:47+0000", - 3, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "474fab4f795c7da174bdb1933b78afdf", - 1061, - { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1361644", - "size": "46329215", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/7/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.12", - "alignment_stats.mapped_reads": "1322435" - } - ], - "objectInfo": { - "id": 17, - "name": "Ecoli_WT_R3_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:47+0000", - "version": 3, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "474fab4f795c7da174bdb1933b78afdf", - "size": 1061, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1361644", - "size": "46329215", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/7/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.12", - "alignment_stats.mapped_reads": "1322435" - }, - "ref": "30957/17/3", - "obj_id": "ws.30957.obj.17", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:47.000Z" - } - }, - { - "label": "Ecoli_ydcR", - "ref": "30957/18/3", - "info": [ - 18, - "Ecoli_ydcR_R1_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:10:00+0000", - 3, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "413e8220c1583a3b9d21f46f94844f84", - 1066, - { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1283399", - "size": "42745389", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/8/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.042", - "alignment_stats.mapped_reads": "1219764" - } - ], - "objectInfo": { - "id": 18, - "name": "Ecoli_ydcR_R1_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:10:00+0000", - "version": 3, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "413e8220c1583a3b9d21f46f94844f84", - "size": 1066, - "metadata": { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1283399", - "size": "42745389", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/8/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.042", - "alignment_stats.mapped_reads": "1219764" - }, - "ref": "30957/18/3", - "obj_id": "ws.30957.obj.18", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:10:00.000Z" - } - }, - { - "label": "Ecoli_ydcR", - "ref": "30957/14/4", - "info": [ - 14, - "Ecoli_ydcR_R2_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:12:56+0000", - 4, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "a25c12a75042b70870a7f16bbc67518b", - 1066, - { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1295543", - "size": "46228194", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/9/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.638", - "alignment_stats.mapped_reads": "1239029" - } - ], - "objectInfo": { - "id": 14, - "name": "Ecoli_ydcR_R2_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:12:56+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "a25c12a75042b70870a7f16bbc67518b", - "size": 1066, - "metadata": { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1295543", - "size": "46228194", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/9/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "95.638", - "alignment_stats.mapped_reads": "1239029" - }, - "ref": "30957/14/4", - "obj_id": "ws.30957.obj.14", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:12:56.000Z" - } - }, - { - "label": "Ecoli_ydcR", - "ref": "30957/15/4", - "info": [ - 15, - "Ecoli_ydcR_R3_alignment", - "KBaseRNASeq.RNASeqAlignment-9.1", - "2019-01-17T22:13:11+0000", - 4, - "jjeffryes", - 30957, - "jjeffryes:narrative_1522765762916", - "300f2bb4020dfb33c8754b28d50065af", - 1068, - { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375366", - "size": "46444550", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/10/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "96.953", - "alignment_stats.mapped_reads": "1333457" - } - ], - "objectInfo": { - "id": 15, - "name": "Ecoli_ydcR_R3_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:13:11+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "300f2bb4020dfb33c8754b28d50065af", - "size": 1068, - "metadata": { - "condition": "Ecoli_ydcR", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375366", - "size": "46444550", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/10/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "96.953", - "alignment_stats.mapped_reads": "1333457" - }, - "ref": "30957/15/4", - "obj_id": "ws.30957.obj.15", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:13:11.000Z" - } - } - ] - }, - "selectedItem": { - "status": "loaded", - "value": { - "aligned_using": "hisat2", - "aligner_opts": { - "alignment_suffix": "_alignment", - "alignmentset_suffix": "_alignment_set", - "build_report": "0", - "condition": "Ecoli_WT", - "genome_ref": "30957/3/1", - "max_intron_length": "500000", - "min_intron_length": "20", - "no_spliced_alignment": "0", - "np": "1", - "num_threads": "2", - "orientation": "fr", - "quality_score": "phred33", - "sampleset_ref": "30957/12/1;30957/4/1", - "skip": "0", - "tailor_alignments": "dta-cufflinks", - "trim3": "0", - "trim5": "0", - "ws_name": "jjeffryes:narrative_1522765762916" - }, - "aligner_version": "2.1.0", - "alignment_stats": { - "alignment_rate": 97.248, - "mapped_reads": 1337324, - "multiple_alignments": 13935, - "properly_paired": 0, - "singletons": 1323389, - "total_reads": 1375163, - "unmapped_reads": 37839 - }, - "condition": "Ecoli_WT", - "file": { - "file_name": "accepted_hits.bam", - "hid": "KBH_455294", - "id": "43250943-1bfa-4c24-aa4e-0a5fe4eb424a", - "remote_md5": "54655741213ef6d991c0537f2c4eb33c", - "type": "shock", - "url": "https://ci.kbase.us/services/shock-api" - }, - "genome_id": "30957/3/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "read_sample_id": "30957/12/1;30957/4/1", - "size": 45448911, - "objectInfo": { - "id": 13, - "name": "Ecoli_WT_R1_alignment", - "type": "KBaseRNASeq.RNASeqAlignment-9.1", - "save_date": "2019-01-17T22:09:16+0000", - "version": 4, - "saved_by": "jjeffryes", - "wsid": 30957, - "ws": "jjeffryes:narrative_1522765762916", - "checksum": "576de411da27b159dee0579fd65cba7e", - "size": 1062, - "metadata": { - "condition": "Ecoli_WT", - "aligner_version": "2.1.0", - "alignment_stats.total_reads": "1375163", - "size": "45448911", - "genome_id": "30957/3/1", - "read_sample_id": "30957/12/1;30957/4/1", - "library_type": "KBaseFile.SingleEndLibrary-2.2", - "aligned_using": "hisat2", - "alignment_stats.alignment_rate": "97.248", - "alignment_stats.mapped_reads": "1337324" - }, - "ref": "30957/13/4", - "obj_id": "ws.30957.obj.13", - "typeModule": "KBaseRNASeq", - "typeName": "RNASeqAlignment", - "typeMajorVersion": "9", - "typeMinorVersion": "1", - "saveDate": "2019-01-17T22:09:16.000Z" - } - } - } - } -} \ No newline at end of file diff --git a/test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js deleted file mode 100644 index 760dc14179..0000000000 --- a/test/unit/spec/function_output/KBaseSets/types/AssemblySetViewer-spec.js +++ /dev/null @@ -1,69 +0,0 @@ -define([ - 'react', - 'react-dom', - 'test/unit/utils/domUtils', - 'widgets/function_output/KBaseSets/types/AssemblySetViewer', - 'json!../data/assemblyset_case_01_props.json', - 'json!../data/assemblyset_case_02_props.json', - 'json!../data/assemblyset_case_03_props.json', - 'json!../data/assemblyset_case_04_props.json', - 'json!../data/assemblyset_case_03_expected.json', - 'json!../data/assemblyset_case_04_expected.json' -], (React, ReactDOM, domUtils, AssemblySetViewer, case1Props, case2Props, case3Props, case4Props, case3Expected, case4Expected) => { - 'use strict'; - - const { createElement } = React; - const { render } = ReactDOM; - - // 1 second timeout for waiting for async browser changes. - const ASSERT_TIMEOUT = 1000; - - describe('The AssemblySetViewer component', () => { - it('should render a loading indicator in a "null" async status', async () => { - const node = document.createElement('div'); - - const el = createElement(AssemblySetViewer, case1Props, null); - render(el, node); - - await expectAsync(domUtils.waitForText({ - node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - })).toBeResolved(); - }); - - it('should render a loading indicator in a "loading" async status', async () => { - const node = document.createElement('div'); - - const el = createElement(AssemblySetViewer, case2Props, null); - render(el, node); - - await expectAsync(domUtils.waitForText({ - node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - })).toBeResolved(); - }); - - it('should render an error message set in a "error" async status', async () => { - const node = document.createElement('div'); - - const el = createElement(AssemblySetViewer, case3Props, null); - render(el, node); - - await expectAsync(domUtils.waitForText({ - node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT - })).toBeResolved(); - }); - - it('should render an assembly set in a "loaded" async status', async () => { - const node = document.createElement('div'); - - // install our component there - const el = createElement(AssemblySetViewer, case4Props, null); - render(el, node); - - for await (const [label, text] of Object.entries(case4Expected)) { - await expectAsync(domUtils.waitForText({ - node, text, label, timeout: ASSERT_TIMEOUT - })).toBeResolved(); - } - }); - }); -}); diff --git a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js deleted file mode 100644 index 20e195acc0..0000000000 --- a/test/unit/spec/function_output/KBaseSets/types/ReadsAlignmentSetViewer-spec.js +++ /dev/null @@ -1,68 +0,0 @@ -define([ - 'react', - 'react-dom', - 'test/unit/utils/domUtils', - 'widgets/function_output/KBaseSets/types/ReadsAlignmentSetViewer', - 'json!../data/readsalignmentset_case_01_props.json', - 'json!../data/readsalignmentset_case_02_props.json', - 'json!../data/readsalignmentset_case_03_props.json', - 'json!../data/readsalignmentset_case_04_props.json', - 'json!../data/readsalignmentset_case_03_expected.json', - 'json!../data/readsalignmentset_case_04_expected.json' -], (React, ReactDOM, domUtils, ReadsAlignmentSetViewer, case1Props, case2Props, case3Props, case4Props, case3Expected, case4Expected) => { - 'use strict'; - - const { createElement } = React; - const { render } = ReactDOM; - - // 1 second timeout for waiting for async browser changes. - const ASSERT_TIMEOUT = 1000; - - describe('The ReadsAlignmentSetViewer component', () => { - it('should render a loading indicator in a "null" async status', async () => { - const node = document.createElement('div'); - - const el = createElement(ReadsAlignmentSetViewer, case1Props, null); - render(el, node); - - await expectAsync(domUtils.waitForText({ - node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - })).toBeResolved(); - }); - - it('should render a loading indicator in a "loading" async status', async () => { - const node = document.createElement('div'); - - const el = createElement(ReadsAlignmentSetViewer, case1Props, null); - render(el, node); - - await expectAsync(domUtils.waitForText({ - node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - })).toBeResolved(); - }); - - it('should render an error message set in a "error" async status', async () => { - const node = document.createElement('div'); - - const el = createElement(ReadsAlignmentSetViewer, case3Props, null); - render(el, node); - - await expectAsync(domUtils.waitForText({ - node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT - })).toBeResolved(); - }); - - it('should render a ReadsAlignment set in a "loaded" async status', async () => { - const node = document.createElement('div'); - - const el = createElement(ReadsAlignmentSetViewer, case4Props, null); - render(el, node); - - for await (const [label, text] of Object.entries(case4Expected)) { - await expectAsync(domUtils.waitForText({ - node, text, label, timeout: ASSERT_TIMEOUT - })).toBeResolved(); - } - }); - }); -}); From 5b4a457e7297ff0a38e34d8af07413d0b6e88766 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 11 Oct 2021 12:00:35 -0700 Subject: [PATCH 30/54] make codacy happier through simplification? --- .../narrative/tests/common/test_util.py | 38 ++++++------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/src/biokbase/narrative/tests/common/test_util.py b/src/biokbase/narrative/tests/common/test_util.py index 83fe1ef6f6..957e605e56 100644 --- a/src/biokbase/narrative/tests/common/test_util.py +++ b/src/biokbase/narrative/tests/common/test_util.py @@ -1,45 +1,31 @@ -""" -Standalone utility methods for Python tests -""" import unittest from biokbase.narrative.common.util import make_ranges -__author__ = "Bill Riehl " - - class UtilTestCase(unittest.TestCase): - # Before test: - # - Log in (for tests that need a valid login) - # also sets the token in the environment variable. - test_token = None - private_token = None - - # Test make_batches - def test_make_batches_normal_cases(self): # Args: total_size, range_size cases = [ - {"input": [0, 1], "expected": []}, - {"input": [1, 1], "expected": [[0, 1]]}, - {"input": [10, 10], "expected": [[0, 10]]}, - {"input": [10, 5], "expected": [[0, 5], [5, 10]]}, - {"input": [10, 3], "expected": [[0, 3], [3, 6], [6, 9], [9, 10]]}, + {"args": [0, 1], "expected": []}, + {"args": [1, 1], "expected": [[0, 1]]}, + {"args": [10, 10], "expected": [[0, 10]]}, + {"args": [10, 5], "expected": [[0, 5], [5, 10]]}, + {"args": [10, 3], "expected": [[0, 3], [3, 6], [6, 9], [9, 10]]}, ] for case in cases: - self.assertEqual(make_ranges(*case["input"]), case["expected"]) + self.assertEqual(make_ranges(*case["args"]), case["expected"]) def test_make_batches_arg_error_cases(self): # Args: total_size, range_size cases = [ - {"input": [1, 0]}, - {"input": [0, 0]}, - {"input": [1, -1]}, - {"input": [-1, 1]}, - {"input": [-1, -1]}, + {"args": [1, 0]}, + {"args": [0, 0]}, + {"args": [1, -1]}, + {"args": [-1, 1]}, + {"args": [-1, -1]}, ] for case in cases: with self.assertRaises(ValueError): - make_ranges(*case["input"]) + make_ranges(*case["args"]) if __name__ == "__main__": From f7cc9ddc50689138dc3194d8ea3496e77445c642 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 11 Oct 2021 12:12:25 -0700 Subject: [PATCH 31/54] codacy formatting changes --- .../kbase/js/widgets/function_output/KBaseSets/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md index a100c42b61..90a1a8bd17 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md @@ -24,13 +24,9 @@ interface KBaseSet { The viewer is implemented by a one set of components providing generic support for all KBaseSet types, and a specific viewer for each type. 1. The initial entrypoint from the Narrative point of view is `kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js`, a standard "kbwidget" style component which is registered as the viewer for several KBaseSets types - 2. The kbaseGenericSetViewer is just a wrapper around the main entrypoint for the viewer, `function_output/KBaseSets/Dispatcher.js`, responsible for determining the object type, and finding a configuration for that type - 3. the Dispatcher then calls the `unction_output/KBaseSets/Loader.js` with this information. The loader is responsible for providing data services, which are exposed as prop functions, and loading the type-specific viewer - 4. An abstract class `function_output/KBaseSets/Viewer.js` implements viewer aspects of the Set, but not the set elements. - 5. The specific viewer is a superclass which implements the renderSetElement method, will be found in `function_output/KBaseSets/types`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. ## Dispatcher From 4a382e480fd2d26b67cf97ae48a51db2c5469649 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 11 Oct 2021 15:13:22 -0700 Subject: [PATCH 32/54] replace node-module installer shell script with javascript script --- Makefile | 2 +- package.json | 2 +- scripts/install-node-modules.js | 32 ++++++++++++++++++++++++++++++++ scripts/install-node-modules.sh | 16 ---------------- scripts/install-npm.js | 16 ---------------- test/unit/test-main.js | 4 +--- 6 files changed, 35 insertions(+), 37 deletions(-) create mode 100644 scripts/install-node-modules.js delete mode 100644 scripts/install-node-modules.sh delete mode 100644 scripts/install-npm.js diff --git a/Makefile b/Makefile index dbec092ded..80929f982f 100755 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ install: bash $(INSTALLER) install-node-modules: - sh scripts/install-node-modules.sh + npm run install-node-modules # runs the installer to locally build the Narrative in a # local venv. diff --git a/package.json b/package.json index 7415a94bdb..45333661a6 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "test": "karma start test/unit/karma.conf.js", "uglify": "terser kbase-extension/static/kbase-narrative.js -c --source-map --output kbase-extension/static/kbase-narrative-min.js", "prepare": "husky install", - "install-node-modules": "bash scripts/install-node-modules.sh" + "install-node-modules": "node scripts/install-node-modules.js" }, "lint-staged": { "*.js": [ diff --git a/scripts/install-node-modules.js b/scripts/install-node-modules.js new file mode 100644 index 0000000000..126229a8fa --- /dev/null +++ b/scripts/install-node-modules.js @@ -0,0 +1,32 @@ +const fs = require('fs'); +const path = require('path'); + + + +const SOURCE_DIR = 'node_modules'; +const DEST_DIR = 'kbase-extension/static/ext_modules'; + +const FILES_TO_COPY = [ + ['msw/lib/umd/index.js', 'msw/index.js'], + ['msw/lib/umd/mockServiceWorker.js', 'msw/mockServiceWorker.js'], + ['react/umd/react.development.js', 'react/react.development.js'], + ['react/umd/react.production.min.js', 'react/react.production..min.js'], + ['react-dom/umd/react-dom.development.js', 'react-dom/react-dom.development.js'], + ['react-dom/umd/react-dom.production.min.js', 'react-dom/react-dom.production.min.js'], + ['prop-types/prop-types.min.js', 'prop-types/prop-types.min.js'], + ['prop-types/prop-types.js', 'prop-types/prop-types.js'], + ['prop-types/lib/ReactPropTypesSecret.js', 'prop-types/lib/ReactPropTypesSecret.js'], +]; + +function main() { + 'use strict'; + for (const [from, to] of FILES_TO_COPY) { + const destPath = `${DEST_DIR}/${to}`; + fs.mkdirSync(path.dirname(destPath), { recursive: true }); + fs.copyFileSync(`${SOURCE_DIR}/${from}`, destPath); + } +} + +if (require.main === module) { + main(); +} diff --git a/scripts/install-node-modules.sh b/scripts/install-node-modules.sh deleted file mode 100644 index ab76a76576..0000000000 --- a/scripts/install-node-modules.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# Install React -mkdir -p kbase-extension/static/ext_modules/react -cp node_modules/react/umd/react.development.js kbase-extension/static/ext_modules/react - -# Install ReactDOM -mkdir -p kbase-extension/static/ext_modules/react-dom -cp node_modules/react-dom/umd/react-dom.development.js kbase-extension/static/ext_modules/react-dom - -# Install React prop-types -mkdir -p kbase-extension/static/ext_modules/prop-types/lib -cp node_modules/prop-types/prop-types.min.js kbase-extension/static/ext_modules/prop-types -cp node_modules/prop-types/prop-types.js kbase-extension/static/ext_modules/prop-types -cp node_modules/prop-types/lib/ReactPropTypesSecret.js kbase-extension/static/ext_modules/prop-types/lib - diff --git a/scripts/install-npm.js b/scripts/install-npm.js deleted file mode 100644 index 750580d945..0000000000 --- a/scripts/install-npm.js +++ /dev/null @@ -1,16 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -const sourceDir = 'node_modules'; -const destDir = 'kbase-extension/static/ext_modules'; - -const filesToCopy = [ - ['msw/lib/umd/index.js', 'msw/index.js'], - ['msw/lib/umd/mockServiceWorker.js', 'msw/mockServiceWorker.js'], -]; - -for (const [from, to] of filesToCopy) { - const destPath = `${destDir}/${to}`; - fs.mkdirSync(path.dirname(destPath), { recursive: true }); - fs.copyFileSync(`${sourceDir}/${from}`, destPath); -} diff --git a/test/unit/test-main.js b/test/unit/test-main.js index b2f35e82ad..391bbe23a1 100644 --- a/test/unit/test-main.js +++ b/test/unit/test-main.js @@ -37,9 +37,7 @@ requirejs.config({ custom: 'kbase/custom', // Note that this is only provided in the testing amd module configuration; // Mock Service Worker (MSW) is not active in the actual Narrative web app. - msw: 'ext_modules/msw/index', - // React: 'ext_modules/react/react.development', - // ReactDOM: 'ext_modules/react/react-dom.development', + msw: 'ext_modules/msw/index' }, map: { '*': { From 7ae5fc8ec00f66f047c1b41f7cfffc8224f5bd66 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 12 Oct 2021 08:20:28 -0700 Subject: [PATCH 33/54] move type to module mapping into shared function, remove commented out code, evolving docs --- .../function_output/KBaseSets/README.md | 24 +++++++++----- .../KBaseSets/SetElementLoader.js | 33 ++----------------- .../KBaseSets/SetElementResolver.js | 31 +++++++++++++++++ .../function_output/KBaseSets/SetLoader.js | 13 ++------ .../function_output/KBaseSets/SetViewer.js | 1 - 5 files changed, 53 insertions(+), 49 deletions(-) create mode 100644 kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementResolver.js diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md index 90a1a8bd17..e483c4421a 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md @@ -1,14 +1,14 @@ # Viewers for sets implemented in the KBaseSets type module -THe KBaseSets [data module](https://narrative.kbase.us/#spec/module/KBaseSets) provides a generic interface for sets of various types. A partner to KBaseSets, the [Set API](https://github.com/kbaseapps/SetAPI) provides an api for accessing such sets. +The [`KBaseSets` workspace type module](https://narrative.kbase.us/#spec/module/KBaseSets) provides a generic interface for sets of various types. A partner to KBaseSets, the [Set API](https://github.com/kbaseapps/SetAPI) provides an api for accessing such sets. The "generic set viewer", implied by the module name `kbaseGenericSetViewer`, is designed to display sets provided by the `KBaseSets` and supported by `SetAPI`. Inspecting [KBaseSets](https://narrative.kbase.us/#spec/module/KBaseSets) can give you a guide to which sets are implemented, and the general data design, but does not give you an accurate picture of the data you will actually deal with through the SetAPI. It is also notable, on the subject of caveats, that KBase types do not support inheritance, so the implementation of commonality for types in KBaseSets is purely by convention (copy and paste, if you will). That is, there is no actual "Generic Set" object definition, but rather a collection of types which, by convention, implement the same interface. -The basic design of a Set that a Set is a container for array of objects of the same type. +## KBaseSets Design -The wrapper consists of a string description and an array of objects, each object being of the same type. +The basic design of a set defined in KBaseSets, is that a set is a container for array of objects of the same type. A set consists of a string description and an array of objects, each object being of the same type. In TypeScript terms, this could be defined like: @@ -19,15 +19,23 @@ interface KBaseSet { } ``` +### Type Confusion + +It may be a bit confusing, but there are multiple definitions of `T` in the above, considering the type conceptually (not as a concrete TS type definition). + +`KBaseSets` has one definition, `SetAPI` provides another, and the concrete type held by the set provides yet another. + +The viewer uses the Workspace to resolve a reference (UPA) to a set object, the SetAPI to get the set definition and list of set elements, and the Workspace again to fetch each set element object when viewing it in detail. + ## Viewer Design The viewer is implemented by a one set of components providing generic support for all KBaseSet types, and a specific viewer for each type. -1. The initial entrypoint from the Narrative point of view is `kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js`, a standard "kbwidget" style component which is registered as the viewer for several KBaseSets types -2. The kbaseGenericSetViewer is just a wrapper around the main entrypoint for the viewer, `function_output/KBaseSets/Dispatcher.js`, responsible for determining the object type, and finding a configuration for that type -3. the Dispatcher then calls the `unction_output/KBaseSets/Loader.js` with this information. The loader is responsible for providing data services, which are exposed as prop functions, and loading the type-specific viewer -4. An abstract class `function_output/KBaseSets/Viewer.js` implements viewer aspects of the Set, but not the set elements. -5. The specific viewer is a superclass which implements the renderSetElement method, will be found in `function_output/KBaseSets/types`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. +1. The initial entrypoint from the Narrative point of view is `kbase-extension/static/kbase/js/widgets/function_output/kbaseGenericSetViewer.js`, a standard "kbwidget" style component which is registered as the viewer for several KBaseSets types (but not all, see comments below.) +2. The kbaseGenericSetViewer is a wrapper around the main entrypoint for the viewer, `function_output/KBaseSets/SetLoader.js`, responsible for determining the object type and fetching the set +3. the SetLoader then calls the `function_output/KBaseSets/SetViewer.js` with this information. The viewer is responsible for displaying the set overview and a list of elements for selection. +4. When an element is selected (defaulting to the first element when the viewer is initially loaded) `function_output/KBaseSets/SetElementLoader.js` fetches the object for a given set element, and subsequently invokes the viewer for the object. +5. The type-specific element viewer are provided in `function_output/KBaseSets/SetElements`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. ## Dispatcher diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js index 5c2648a8ad..b420c092cc 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js @@ -22,8 +22,7 @@ define([ 'prop-types', 'kb_common/jsonRpc/genericClient', 'kb_service/utils', - 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer', - 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', + 'widgets/function_output/KBaseSets/SetElementResolver', 'react_components/ErrorMessage', 'narrativeConfig', 'base/js/namespace', @@ -36,8 +35,7 @@ define([ PropTypes, ServiceClient, ServiceUtils, - ReadsAlignmentSetViewer, - AssemblySetViewer, + ElementResolver, ErrorMessage, Config, Jupyter @@ -46,19 +44,6 @@ define([ const { createElement: e, Component } = React; - // Note that any modules referenced must be imported above, and that such modules - // must be components implemented as defined in `react_components/genericSets`. - const SET_TYPE_TO_MODULE_MAPPING = { - 'KBaseSets.ReadsAlignmentSet': { - module: ReadsAlignmentSetViewer, - method: 'get_reads_alignment_set_v1' - }, - 'KBaseSets.AssemblySet': { - module: AssemblySetViewer, - method: 'get_assembly_set_v1' - } - }; - /* Implements a React component which primarily dispatches to the component which matches the type of object provided in the prop 'objectRef'. @@ -89,15 +74,7 @@ define([ try { const { object, objectInfo } = await this.fetchSetElement(this.props.item.ref); - const mapping = SET_TYPE_TO_MODULE_MAPPING[this.props.setType]; - if (!mapping) { - this.setState({ - status: 'error', - error: new Error(`Unsupported set type: ${this.state.setType}`) - }); - return; - } - + const mapping = ElementResolver.resolve(this.props.setType); this.setState({ status: 'loaded', module: mapping.module, @@ -162,10 +139,6 @@ define([ } renderLoaded() { - // console.log('ELEMENT', JSON.stringify({ - // object: this.state.object.data, - // objectInfo: this.state.objectInfo - // }, null, 4)); return e(this.state.module, { object: this.state.object.data, objectInfo: this.state.objectInfo diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementResolver.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementResolver.js new file mode 100644 index 0000000000..2c887ae9d1 --- /dev/null +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementResolver.js @@ -0,0 +1,31 @@ +define([ + 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer', + 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', +], ( + ReadsAlignmentSetViewer, + AssemblySetViewer, +) => { + 'use strict'; + + // Note that any modules referenced must be imported above, and that such modules + // must be components implemented as defined in `react_components/genericSets`. + const SET_TYPE_MAPPING = { + 'KBaseSets.ReadsAlignmentSet': { + module: ReadsAlignmentSetViewer, + method: 'get_reads_alignment_set_v1' + }, + 'KBaseSets.AssemblySet': { + module: AssemblySetViewer, + method: 'get_assembly_set_v1' + } + }; + + function resolve(workspaceType) { + if (workspaceType in SET_TYPE_MAPPING) { + return SET_TYPE_MAPPING[workspaceType]; + } + throw new Error(`workspace type ${workspaceType} not supported for KBaseSets`); + } + + return { resolve }; +}); \ No newline at end of file diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js index 9010f263d1..2480aa9100 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js @@ -6,6 +6,7 @@ define([ 'kb_service/utils', 'react_components/ErrorMessage', 'widgets/function_output/KBaseSets/SetViewer', + 'widgets/function_output/KBaseSets/SetElementResolver', ], ( React, @@ -15,20 +16,12 @@ define([ ServiceUtils, ErrorMessage, Viewer, + ElementResolver ) => { 'use strict'; const { createElement: e, Component } = React; - const SET_TYPE_TO_MODULE_MAPPING = { - 'KBaseSets.ReadsAlignmentSet': { - method: 'get_reads_alignment_set_v1' - }, - 'KBaseSets.AssemblySet': { - method: 'get_assembly_set_v1' - } - }; - /** * A class implementing a component which essentially forms the data backbone for * the set component @@ -95,7 +88,7 @@ define([ // set types defined above. const setType = [objectInfo.typeModule, objectInfo.typeName].join('.'); - const mapping = SET_TYPE_TO_MODULE_MAPPING[setType]; + const mapping = ElementResolver.resolve(setType); if (!mapping) { throw new Error(`Unsupported set type: ${setType}`); } diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js index fb43fe8e54..b835062366 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js @@ -46,7 +46,6 @@ define([ selectItem(event) { const selectControl = event.target; - // this.props.selectItem(selectControl.value); this.setState((state) => { return { ...state, From 687a147f4ab1bd79a31bdcb429a65f32362f94a6 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 14 Oct 2021 16:21:31 -0700 Subject: [PATCH 34/54] improve KBaseSets viewer README --- .../function_output/KBaseSets/README.md | 79 +++++++++++-------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md index e483c4421a..f1a72aa923 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/README.md @@ -35,25 +35,40 @@ The viewer is implemented by a one set of components providing generic support f 2. The kbaseGenericSetViewer is a wrapper around the main entrypoint for the viewer, `function_output/KBaseSets/SetLoader.js`, responsible for determining the object type and fetching the set 3. the SetLoader then calls the `function_output/KBaseSets/SetViewer.js` with this information. The viewer is responsible for displaying the set overview and a list of elements for selection. 4. When an element is selected (defaulting to the first element when the viewer is initially loaded) `function_output/KBaseSets/SetElementLoader.js` fetches the object for a given set element, and subsequently invokes the viewer for the object. -5. The type-specific element viewer are provided in `function_output/KBaseSets/SetElements`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. +5. The type-specific element viewer are provided in`function_output/KBaseSets/SetElements`, and will be named after the type with `Viewer` suffixed. E.g. `/types/AssemblySetViewer.js`. -## Dispatcher +Note that this "viewer" is decomposed into multiple components, arranged as layers, each of which (hopefully) has a primary responsibility. -The primary task of this viewer is to look up the object type it is provided, and, based -on the type of the object, either dispatch to the set viewer if it is supported, or -display a warning that the type is not supported if it isn't. +## SetLoader -Support is indicated in the module-level `SET_TYPE_TO_MODULE_MAPPING`. +The primary task of the SetLoader is to fetch the requested set object, as provided in it's props, and pass that set object to the SetViewer. -At present just ReadsAlignmentSet and AssemblySet are supported; others should display +It accomplishes this by first fetching the set objects "info" from the workspace, which allows it to determine the type, and then using the SetELementResolver + +A secondary task is to display a loading spinner while the set is being fetched, and an error message in the case of an error. + +This design allows the viewer (below) to focus on the task of displaying the set. + +## SetViewer + +The primary task of the SetViewer is to display the overall set information, which is fairly minimal, to handle selection of set elements for inspection, and to invoke the set element inspector with the selected element. + +## SetElementLoader + +The primary task of the SetElementLoader component is to look up the object type it is provided, and, if supported, fetch the object and pass that object to the element-specific viewer. + +Element viewers are located in the SetElements directory. + +An error message is displayed if the requested type is not supported. + +Support is specified in the module-level `SET_TYPE_TO_MODULE_MAPPING`. + +At present ReadsAlignmentSet and AssemblySet are supported; others should display an error message, or are handled by other viewers. -Note that this widget is a wrapper dispatching to the specific viewer, most of the -implementation is in the React components referred two in the AMD dependencies. The only -UI supported herein is the loading indicator and an error message, if necessary. +## Regarding viewer coverage of KBaseSets -The original intention of this viewer was to support all of the types implemented in KBaseSets, -but that work has not yet been completed: +The original intention of this viewer was to support all of the types implemented in KBaseSets. That work has not yet been completed: Also, see: @@ -61,46 +76,46 @@ Below is the status of each KBaseSet type: Implemented in this viewer: -KBaseSets.ReadsAlignmentSet -SetAPI.get_reads_alignment_set_v1 +type: KBaseSets.ReadsAlignmentSet +SetAPI method: SetAPI.get_reads_alignment_set_v1 -KBaseSets.AssemblySet -SetAPI.get_assembly_set_v1 +type: KBaseSets.AssemblySet +SetAPI method: SetAPI.get_assembly_set_v1 Implemented in other viewers: -KBaseSets.DifferentialExpressionMatrixSet -SetAPI.get_differential_expression_matrix_set_v1 +type: KBaseSets.DifferentialExpressionMatrixSet +SetAPI method: SetAPI.get_differential_expression_matrix_set_v1 Implemented by: - + and this viewer does not work -KBaseSets.ExpressionSet -SetAPI.get_expression_set_v1 +type: KBaseSets.ExpressionSet +SetAPI method: SetAPI.get_expression_set_v1 Implemented by: - + and that viewer doesn't work -KBaseSets.ReadsSet -SetAPI.get_reads_set_v1 +type: KBaseSets.ReadsSet +SetAPI method: SetAPI.get_reads_set_v1 Implemented by: - + and the current viewer works -KBaseSets.SampleSet -SetAPI.sample_set_to_samples_info (I think) +type: KBaseSets.SampleSet +SetAPI method: SetAPI.sample_set_to_samples_info (I think) Implemented by: - + but not that this viewer does not utilize the SetAPI, which was implemented against the search, which has never been fully implemented for search. Also Samples and RNASeqSamples seem to be conflated a bit in SetAPI. Not implemented anywhere: -KBaseSets.FeatureSetSet -SetAPI.get_feature_set_set_v1 +type: KBaseSets.FeatureSetSet +SetAPI method: SetAPI.get_feature_set_set_v1 can't find any data, or any app which outputs this type, or accepts as input (according to the app browser) -KBaseSets.GenomeSet -SetAPI.get_genome_set_v1 +type: KBaseSets.GenomeSet +SetAPI.get_genome_set_v1 Can't find a way to get ahold of a KBaseSets.GenomeSet to play with. From 4c3e8739b6c911e3a22c2995107fdb83d285a92f Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 14 Oct 2021 16:22:03 -0700 Subject: [PATCH 35/54] rename components --- .../function_output/KBaseSets/SetElementLoader.js | 12 +++++++----- .../widgets/function_output/KBaseSets/SetLoader.js | 6 +++--- .../{SetElementResolver.js => SetTypeResolver.js} | 0 .../widgets/function_output/KBaseSets/SetViewer.js | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) rename kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/{SetElementResolver.js => SetTypeResolver.js} (100%) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js index b420c092cc..4d1aa9d110 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js @@ -22,7 +22,7 @@ define([ 'prop-types', 'kb_common/jsonRpc/genericClient', 'kb_service/utils', - 'widgets/function_output/KBaseSets/SetElementResolver', + 'widgets/function_output/KBaseSets/SetTypeResolver', 'react_components/ErrorMessage', 'narrativeConfig', 'base/js/namespace', @@ -139,10 +139,12 @@ define([ } renderLoaded() { - return e(this.state.module, { - object: this.state.object.data, - objectInfo: this.state.objectInfo - }); + return e(React.Fragment, null, + e('div', null, e('a', { href: `/#dataview/${this.state.objectInfo.ref}`, target: '_blank' }, this.state.objectInfo.ref)), + e(this.state.module, { + object: this.state.object.data, + objectInfo: this.state.objectInfo + })); } renderState() { diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js index 2480aa9100..b92a3bb528 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetLoader.js @@ -6,7 +6,7 @@ define([ 'kb_service/utils', 'react_components/ErrorMessage', 'widgets/function_output/KBaseSets/SetViewer', - 'widgets/function_output/KBaseSets/SetElementResolver', + 'widgets/function_output/KBaseSets/SetTypeResolver', ], ( React, @@ -16,7 +16,7 @@ define([ ServiceUtils, ErrorMessage, Viewer, - ElementResolver + SetTypeResolver ) => { 'use strict'; @@ -88,7 +88,7 @@ define([ // set types defined above. const setType = [objectInfo.typeModule, objectInfo.typeName].join('.'); - const mapping = ElementResolver.resolve(setType); + const mapping = SetTypeResolver.resolve(setType); if (!mapping) { throw new Error(`Unsupported set type: ${setType}`); } diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementResolver.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetTypeResolver.js similarity index 100% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementResolver.js rename to kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetTypeResolver.js diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js index b835062366..ddd7126baf 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js @@ -9,7 +9,7 @@ define([ ], ( React, PropTypes, - SetElement + SetElementLoader ) => { 'use strict'; @@ -38,7 +38,7 @@ define([ * @returns {void} nothing useful */ renderSetElement() { - return e(SetElement, { + return e(SetElementLoader, { setType: this.props.setType, item: this.state.selectedItem }); From 0369e6226e30017dd8c1ed0a577ed4e52112f4b7 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 14 Oct 2021 17:01:57 -0700 Subject: [PATCH 36/54] backport list_objects fix from truss branch --- src/biokbase/narrative/common/util.py | 26 --- .../narrative/contents/narrativeio.py | 69 ++++--- .../narrative/tests/common/test_util.py | 32 ---- .../tests/narrative_mock/mockclients.py | 181 ++++++++++++++---- .../narrative/tests/test_narrativeio.py | 68 ++++++- src/biokbase/narrative/tests/util.py | 84 ++++---- src/biokbase/workspace/client.py | 30 +++ 7 files changed, 318 insertions(+), 172 deletions(-) delete mode 100644 src/biokbase/narrative/tests/common/test_util.py diff --git a/src/biokbase/narrative/common/util.py b/src/biokbase/narrative/common/util.py index 3f6732f17c..0cf30a690b 100644 --- a/src/biokbase/narrative/common/util.py +++ b/src/biokbase/narrative/common/util.py @@ -114,29 +114,3 @@ def run(self): doc = top + self.doc_dir os.chdir(doc) os.system("make html") - - -# -# Makes a set of 0-based ranges, given a total length and a the desired length -# of the range. -# -def make_ranges(total_count, range_size): - if total_count < 0: - raise ValueError("total_count must be 0 or greater") - - if range_size <= 0: - raise ValueError("range_size must be 1 or greater") - - if total_count == 0: - return [] - - batch_count = int(total_count / range_size) + ( - 1 if total_count % range_size > 0 else 0 - ) - ranges = [] - for batch in range(0, batch_count): - range_start = batch * range_size - range_length = min(range_size, total_count - range_start) - range_end = range_start + range_length - ranges.append([range_start, range_end]) - return ranges diff --git a/src/biokbase/narrative/contents/narrativeio.py b/src/biokbase/narrative/contents/narrativeio.py index 1c8ac237a2..dd6df41199 100644 --- a/src/biokbase/narrative/contents/narrativeio.py +++ b/src/biokbase/narrative/contents/narrativeio.py @@ -12,7 +12,9 @@ from tornado.web import HTTPError from notebook.utils import to_api_path, to_os_path from biokbase.narrative.common.exceptions import WorkspaceError +from traitlets import Unicode, Dict, Bool, List, TraitError from biokbase.narrative.common.kblogging import get_logger, log_event +import re import json from collections import Counter from .updater import update_narrative @@ -35,12 +37,15 @@ "size", "meta", ] +obj_field = dict(zip(LIST_OBJECTS_FIELDS, range(len(LIST_OBJECTS_FIELDS)))) +obj_ref_regex = re.compile(r"^(?P\d+)\/(?P\d+)(\/(?P\d+))?$") + +MAX_WORKSPACES = 10000 # from ws.list_objects MAX_METADATA_STRING_BYTES = 900 MAX_METADATA_SIZE_BYTES = 16000 WORKSPACE_TIMEOUT = 30 # seconds NARRATIVE_TYPE = "KBaseNarrative.Narrative" -MAX_LIST_OBJECT_WORKSPACE_COUNT = 1000 g_log = get_logger("biokbase.narrative") @@ -51,7 +56,6 @@ class KBaseWSManagerMixin(object): """ ws_uri = URLS.workspace - nar_type = "KBaseNarrative.Narrative" def __init__(self, *args, **kwargs): if not self.ws_uri: @@ -197,7 +201,7 @@ def write_narrative(self, ref, nb, cur_user): if "creator" not in meta: meta["creator"] = cur_user if "type" not in meta: - meta["type"] = self.nar_type + meta["type"] = NARRATIVE_TYPE if "description" not in meta: meta["description"] = "" if "data_dependencies" not in meta: @@ -249,7 +253,7 @@ def write_narrative(self, ref, nb, cur_user): # Now we can save the Narrative object. try: ws_save_obj = { - "type": self.nar_type, + "type": NARRATIVE_TYPE, "data": nb, "objid": obj_id, "meta": nb["metadata"].copy(), @@ -505,13 +509,10 @@ def list_narratives(self, ws_id=None): current token has read access to. Works anonymously as well. If the ws_id field is not None, it will only look up Narratives in that - particular workspace (by its numerical id). Otherwise, the set of all - Narratives accessible to the current user (or public narratives if no token - is present) is fetched and used in batches of MAX_LIST_OBJECT_WORKSPACE_COUNT - or smaller. + particular workspace (by its numerical id). Returns a list of dictionaries of object descriptions, one for each Narrative. - The keys in each dictionary are those from the LIST_OBJECTS_FIELDS list above. + The keys in each dictionary are those from the list_objects_fields list above. This is just a wrapper around the Workspace list_objects command. @@ -519,40 +520,36 @@ def list_narratives(self, ws_id=None): numeric. """ log_event(g_log, "list_narratives start", {"ws_id": ws_id}) - list_obj_params = {"type": self.nar_type, "includeMetadata": 1} + ws = self.ws_client() if ws_id: ws_ids = [int(ws_id)] # will throw an exception if ws_id isn't an int - else: - # Fetch all the workspaces the Workspace will give us. - # Not that this is necessary due to a change in list_objects, used below, - # which now requires the "ids" parameter, and that it contain - # between 1 and 1000 workspaces. - ws_ids = [ws_info[6] for ws_info in ws.list_workspaces({})] - - if len(ws_ids) == 0: - return [] - - my_narratives = [] - try: - batch_ranges = util.make_ranges( - len(ws_ids), MAX_LIST_OBJECT_WORKSPACE_COUNT + ret = ws.list_workspace_ids( + {"perm": "r", "onlyGlobal": 0, "excludeGlobal": 0} ) + ws_ids = ret.get("workspaces", []) + ret.get("pub", []) - for [batch_start, batch_end] in batch_ranges: - list_obj_params["ids"] = ws_ids[batch_start:batch_end] - res = ws.list_objects(list_obj_params) - for obj in res: - nar = dict(zip(LIST_OBJECTS_FIELDS, obj)) - # Look first for the name in the object metadata. if it's not there, use - # the object's name. If THAT'S not there, use Untitled. - # This gives support for some rather old narratives that don't - # have their name stashed in the metadata. - nar["name"] = nar["meta"].get("name", nar.get("name", "Untitled")) - my_narratives.append(nar) + try: + res = [] + for i in range(0, len(ws_ids), MAX_WORKSPACES): + res += ws.list_objects( + { + "ids": ws_ids[i : i + MAX_WORKSPACES], + "type": NARRATIVE_TYPE, + "includeMetadata": 1, + } + ) except ServerError as err: - raise WorkspaceError(err, ws_id) + raise WorkspaceError(err, ws_ids) + + my_narratives = [dict(zip(LIST_OBJECTS_FIELDS, obj)) for obj in res] + for nar in my_narratives: + # Look first for the name in the object metadata. if it's not there, use + # the object's name. If THAT'S not there, use Untitled. + # This gives support for some rather old narratives that don't + # have their name stashed in the metadata. + nar["name"] = nar["meta"].get("name", nar.get("name", "Untitled")) return my_narratives diff --git a/src/biokbase/narrative/tests/common/test_util.py b/src/biokbase/narrative/tests/common/test_util.py deleted file mode 100644 index 957e605e56..0000000000 --- a/src/biokbase/narrative/tests/common/test_util.py +++ /dev/null @@ -1,32 +0,0 @@ -import unittest -from biokbase.narrative.common.util import make_ranges - -class UtilTestCase(unittest.TestCase): - def test_make_batches_normal_cases(self): - # Args: total_size, range_size - cases = [ - {"args": [0, 1], "expected": []}, - {"args": [1, 1], "expected": [[0, 1]]}, - {"args": [10, 10], "expected": [[0, 10]]}, - {"args": [10, 5], "expected": [[0, 5], [5, 10]]}, - {"args": [10, 3], "expected": [[0, 3], [3, 6], [6, 9], [9, 10]]}, - ] - for case in cases: - self.assertEqual(make_ranges(*case["args"]), case["expected"]) - - def test_make_batches_arg_error_cases(self): - # Args: total_size, range_size - cases = [ - {"args": [1, 0]}, - {"args": [0, 0]}, - {"args": [1, -1]}, - {"args": [-1, 1]}, - {"args": [-1, -1]}, - ] - for case in cases: - with self.assertRaises(ValueError): - make_ranges(*case["args"]) - - -if __name__ == "__main__": - unittest.main() diff --git a/src/biokbase/narrative/tests/narrative_mock/mockclients.py b/src/biokbase/narrative/tests/narrative_mock/mockclients.py index ae2690ba71..029fb11ce8 100644 --- a/src/biokbase/narrative/tests/narrative_mock/mockclients.py +++ b/src/biokbase/narrative/tests/narrative_mock/mockclients.py @@ -1,5 +1,30 @@ from ..util import ConfigTests from biokbase.workspace.baseclient import ServerError +from biokbase.narrative.jobs.appmanager import BATCH_ID_KEY +import copy +import functools +from unittest.mock import call + +RANDOM_DATE = "2018-08-10T16:47:36+0000" +RANDOM_TYPE = "ModuleA.TypeA-1.0" + +WSID_STANDARD = 12345 + + +def get_nar_obj(i): + return [ + i, + "My_Test_Narrative", + "KBaseNarrative.Narrative", + "2017-03-31T23:42:59+0000", + 1, + "wjriehl", + 18836, + "wjriehl:1490995018528", + "278abf8f0dbf8ab5ce349598a8674a6e", + 109180038, + {}, + ] class MockClients: @@ -31,18 +56,21 @@ def test_my_function(self): Then we don't need to mock as much. """ + config = ConfigTests() + _ee2_job_info = config.load_json_file(config.get("jobs", "ee2_job_info_file")) + def __init__(self, token=None): if token is not None: assert isinstance(token, str) - self.config = ConfigTests() self.job_info = self.config.load_json_file( self.config.get("jobs", "job_info_file") ) - self.ee2_job_info = self.config.load_json_file( - self.config.get("jobs", "ee2_job_info_file") - ) self.test_job_id = self.config.get("app_tests", "test_job_id") + @property + def ee2_job_info(self): + return copy.deepcopy(self._ee2_job_info) + # ----- User and Job State functions ----- def list_jobs2(self, params): @@ -52,7 +80,10 @@ def delete_job(self, job): return "bar" def check_workspace_jobs(self, params): - return self.ee2_job_info + info = self.ee2_job_info + if params.get("return_list"): + info = list(info.values()) + return info # ----- Narrative Method Store functions ------ @@ -73,13 +104,13 @@ def ver(self): def get_workspace_info(self, params): """ Some magic workspace ids. - 12345 - the standard one. + 12345 (WSID_STANDARD) - the standard one. 678 - doesn't have useful narrative info in its metadata 789 - raises a permissions error 890 - raises a deleted workspace error otherwise, returns workspace info with narrative = 1, and narrative name = 'Fake' """ - wsid = params.get("id", 12345) + wsid = params.get("id", WSID_STANDARD) name = params.get("workspace", "some_workspace") if wsid == 678: return [ @@ -151,7 +182,7 @@ def get_object_info_new(self, params): "2018-06-26T19:31:41+0000", 1, "wjriehl", - 12345, + WSID_STANDARD, "random_workspace", "a20f2df66f973de41b84164f2c2bedd3", 765, @@ -167,7 +198,7 @@ def get_object_info_new(self, params): "2018-08-13T23:13:09+0000", 1, "wjriehl", - 12345, + WSID_STANDARD, "random_workspace", "9f014a3c08368537a40fa2e4b90f9cab", 757, @@ -178,24 +209,6 @@ def get_object_info_new(self, params): infos.append(random_obj_info) return infos - # infos = [ - # [ - # 5, - # "Sbicolor2", - # "KBaseGenomes.Genome-12.3", - # "2017-03-31T23:42:59+0000", - # 1, - # "wjriehl", - # 18836, - # "wjriehl:1490995018528", - # "278abf8f0dbf8ab5ce349598a8674a6e", - # 109180038, - # None, - # ] - # ] - # ret_val = infos * len(params.get("objects", [0])) - # return ret_val - def get_object_info3(self, params): infos = [ [ @@ -216,16 +229,34 @@ def get_object_info3(self, params): num_objects = len(params.get("objects", [0])) return {"infos": infos * num_objects, "paths": paths * num_objects} + def list_objects(self, params): + ws_ids = params["ids"] + return [get_nar_obj(int(id)) for id in ws_ids] # assert int + # ----- Narrative Job Service functions ----- def run_job(self, params): return self.test_job_id + def run_job_batch(self, batch_job_inputs, batch_params): + child_job_ids = [ + self.test_job_id + f"_child_{i}" for i in range(len(batch_job_inputs)) + ] + return {BATCH_ID_KEY: self.test_job_id, "child_job_ids": child_job_ids} + def cancel_job(self, job_id): - return "done" + return {} - def check_job_canceled(self, params): - return {"finished": 0, "canceled": 0, "job_id": params.get("job_id")} + def retry_job(self, params): + job_id = params["job_id"] + return {"job_id": job_id, "retry_id": job_id[::-1]} + + def retry_jobs(self, params): + job_ids = params["job_ids"] + results = list() + for job_id in job_ids: + results.append({"job_id": job_id, "retry_id": job_id[::-1]}) + return results def get_job_params(self, job_id): return self.ee2_job_info.get(job_id, {}).get("job_input", {}) @@ -234,7 +265,7 @@ def check_job(self, params): job_id = params.get("job_id") if not job_id: return {} - info = self.ee2_job_info.get(job_id, {}) + info = self.ee2_job_info.get(job_id, {"job_id": job_id, "status": "unmocked"}) if "exclude_fields" in params: for f in params["exclude_fields"]: if f in info: @@ -248,6 +279,8 @@ def check_jobs(self, params): infos[job] = self.check_job( {"job_id": job, "exclude_fields": params.get("exclude_fields", [])} ) + if params.get("return_list"): + infos = list(infos.values()) return infos def get_job_logs(self, params): @@ -317,8 +350,8 @@ def _mock_ns_list_objects_with_sets(self, params): "object_info": [ 1, "obj1", - "ModuleA.TypeA-1.0", - "2018-08-10T16:47:36+0000", + RANDOM_TYPE, + RANDOM_DATE, 2, user_id, ws_id, @@ -332,8 +365,8 @@ def _mock_ns_list_objects_with_sets(self, params): "object_info": [ 7, "obj7", - "ModuleA.TypeA-1.0", - "2018-08-10T16:47:36+0000", + RANDOM_TYPE, + RANDOM_DATE, 2, user_id, ws_id, @@ -347,8 +380,8 @@ def _mock_ns_list_objects_with_sets(self, params): "object_info": [ 8, "obj8", - "ModuleA.TypeA-1.0", - "2018-08-10T16:47:36+0000", + RANDOM_TYPE, + RANDOM_DATE, 2, user_id, ws_id, @@ -363,7 +396,7 @@ def _mock_ns_list_objects_with_sets(self, params): 9, "obj9", "ModuleB.TypeB-1.0", - "2018-08-10T16:47:36+0000", + RANDOM_DATE, 3, user_id, ws_id, @@ -378,7 +411,7 @@ def _mock_ns_list_objects_with_sets(self, params): 3, "obj3", "ModuleC.TypeC-1.0", - "2018-08-10T16:47:36+0000", + RANDOM_DATE, 4, user_id, ws_id, @@ -393,7 +426,7 @@ def _mock_ns_list_objects_with_sets(self, params): 4, "obj4", "ModuleD.TypeD-1.0", - "2018-08-10T16:47:36+0000", + RANDOM_DATE, 5, user_id, ws_id, @@ -409,7 +442,7 @@ def _mock_ns_list_objects_with_sets(self, params): 5, "obj5", "Module5.Type5-1.0", - "2018-08-10T16:47:36+0000", + RANDOM_DATE, 6, user_id, ws_id, @@ -461,9 +494,18 @@ def __init__(self, token=None): def check_workspace_jobs(self, params): raise ServerError("JSONRPCError", -32000, "Job lookup failed.") + def check_job(self, params): + raise ServerError("JSONRPCError", -32000, "Check job failed") + def cancel_job(self, params): raise ServerError("JSONRPCError", -32000, "Can't cancel job") + def retry_job(self, params): + raise ServerError("JSONRPCError", -32000, "Job retry failed") + + def retry_jobs(self, params): + raise ServerError("JSONRPCError", -32000, "Jobs retry failed") + def check_job_canceled(self, params): raise ServerError("JSONRPCError", 1, "Can't cancel job") @@ -487,3 +529,60 @@ def list(self): "omg/this/is/a/long/path/to/a/file", "filterme", ] + + +class assert_obj_method_called(object): + """ + Invocations: + + with assert_obj_method_called(MyTargetClass, "my_target_method"): + with assert_obj_method_called(MyTargetClass, "my_target_method", False) as aomc: + + aomc.assert_has_calls( + [ + mock.call("fish", 1), + mock.call("dog", 2), + ] + ) + """ + + def __init__(self, target, method_name, call_status=True): + self.target = target + self.method_name = method_name + self.call_status = call_status + + def __enter__(self): + self.orig_method = getattr(self.target, self.method_name) + + @functools.wraps(self.orig_method) + def called(*args, **kwargs): + self.method_called = True + self.calls.append(call(*args[1:], **kwargs)) # first arg is self + return self.orig_method(*args, **kwargs) + + self.called = called + + setattr(self.target, self.method_name, called) + self.method_called = False + self.calls = [] + + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_value: + return + + assert ( + getattr(self.target, self.method_name) == self.called + ), f"Method {self.target.__name__}.{self.method_name} was modified during context managment with {self.__class__.name}" + setattr(self.target, self.method_name, self.orig_method) + + self.assert_called(self.call_status) + + def assert_has_calls(self, calls): + assert calls == self.calls, f"Expected:\n{calls}\nGot:\n{self.calls}" + + def assert_called(self, call_status=True): + assert ( + call_status and len(self.calls) or not call_status and not len(self.calls) + ), f"Call status of method {self.target.__name__}.{self.method_name} was not {call_status}" diff --git a/src/biokbase/narrative/tests/test_narrativeio.py b/src/biokbase/narrative/tests/test_narrativeio.py index 44cee9e4be..499c899860 100644 --- a/src/biokbase/narrative/tests/test_narrativeio.py +++ b/src/biokbase/narrative/tests/test_narrativeio.py @@ -3,11 +3,16 @@ Narrative and workspace service. """ import unittest -from biokbase.narrative.contents.narrativeio import KBaseWSManagerMixin +from unittest.mock import patch +from biokbase.narrative.contents.narrativeio import ( + KBaseWSManagerMixin, + LIST_OBJECTS_FIELDS, +) from biokbase.narrative.common.exceptions import WorkspaceError import biokbase.auth from tornado.web import HTTPError from . import util +from .narrative_mock.mockclients import get_mock_client, MockClients, get_nar_obj from biokbase.narrative.common.url_config import URLS from biokbase.narrative.common.narrative_ref import NarrativeRef import biokbase.narrative.clients as clients @@ -32,6 +37,10 @@ HAS_TEST_TOKEN = False +def get_exp_nar(i): + return dict(zip(LIST_OBJECTS_FIELDS, get_nar_obj(i))) + + def skipUnlessToken(): global HAS_TEST_TOKEN if not HAS_TEST_TOKEN: @@ -39,7 +48,7 @@ def skipUnlessToken(): def str_to_ref(s): - """ Takes a ref string, returns a NarrativeRef object """ + """Takes a ref string, returns a NarrativeRef object""" vals = s.split("/") ref = {"wsid": vals[0], "objid": vals[1]} if len(vals) == 3: @@ -71,9 +80,10 @@ def setUpClass(self): if self.test_token is None or self.private_token is None: print("Skipping most narrativeio.py tests due to missing tokens.") print( - "To enable these, place a valid auth token in files\n{}\nand\n{}".format( - config.get_path("token_files", "test_user"), - config.get_path("token_files", "private_user"), + "To enable these, update {} and place a valid auth token in files\n{}\nand\n{}".format( + config.config_file_path, + config.get_path("token_files", "test_user", from_root=True), + config.get_path("token_files", "private_user", from_root=True), ) ) print("Note that these should belong to different users.") @@ -512,6 +522,54 @@ def test_list_narrative_ws_valid_login(self): self.validate_narrative_list(res) self.logout() + @patch("biokbase.narrative.clients.get", get_mock_client) + def test_list_narratives__no_ws_id__0_ws_ids(self): + ws_ids = {"workspaces": [], "pub": []} + + with patch.object( + MockClients, "list_workspace_ids", create=True, return_value=ws_ids + ): + nar_l = self.mixin.list_narratives() + + self.assertEqual([], nar_l) + self.validate_narrative_list(nar_l) + + @patch("biokbase.narrative.clients.get", get_mock_client) + def test_list_narratives__no_ws_id__9999_ws_ids(self): + ws_ids = {"workspaces": list(range(9999)), "pub": []} + + with patch.object( + MockClients, "list_workspace_ids", create=True, return_value=ws_ids + ): + nar_l = self.mixin.list_narratives() + + self.assertEqual([get_exp_nar(i) for i in range(9999)], nar_l) + self.validate_narrative_list(nar_l) + + @patch("biokbase.narrative.clients.get", get_mock_client) + def test_list_narratives__no_ws_id__10000_ws_ids(self): + ws_ids = {"workspaces": list(range(10000)), "pub": []} + + with patch.object( + MockClients, "list_workspace_ids", create=True, return_value=ws_ids + ): + nar_l = self.mixin.list_narratives() + + self.assertEqual([get_exp_nar(i) for i in range(10000)], nar_l) + self.validate_narrative_list(nar_l) + + @patch("biokbase.narrative.clients.get", get_mock_client) + def test_list_narratives__no_ws_id__10001_ws_ids(self): + ws_ids = {"workspaces": list(range(10000)), "pub": [10000]} + + with patch.object( + MockClients, "list_workspace_ids", create=True, return_value=ws_ids + ): + nar_l = self.mixin.list_narratives() + + self.assertEqual([get_exp_nar(i) for i in range(10001)], nar_l) + self.validate_narrative_list(nar_l) + def test_list_narrative_ws_invalid(self): with self.assertRaises(WorkspaceError) as err: self.mixin.list_narratives(ws_id=self.invalid_ws_id) diff --git a/src/biokbase/narrative/tests/util.py b/src/biokbase/narrative/tests/util.py index b021c239e2..703170ef7c 100644 --- a/src/biokbase/narrative/tests/util.py +++ b/src/biokbase/narrative/tests/util.py @@ -43,9 +43,9 @@ def __init__(self): os.environ["NARRATIVE_DIR"], "src", "biokbase", "narrative", "tests" ) self._path_root = os.path.join(os.environ["NARRATIVE_DIR"]) - config_file_path = self.file_path(_config_file) + self.config_file_path = self.file_path(_config_file) self._config = configparser.ConfigParser() - self._config.read(config_file_path) + self._config.read(self.config_file_path) def get(self, *args, **kwargs): return self._config.get(*args, **kwargs) @@ -80,6 +80,7 @@ def file_path(self, filename, from_root=False): else: return os.path.join(self._path_prefix, filename) + def fetch_narrative(nar_id, auth_token, url=ci_ws, file_name=None): """ Fetches a Narrative object with the given reference id (of the form ##/##). @@ -305,44 +306,63 @@ def find_free_port() -> int: return s.getsockname()[1] -def validate_job_state(state: dict) -> None: +def validate_job_state(job_state: dict) -> None: """ Validates the structure and entries in a job state as returned by the JobManager. If any keys are missing, or extra keys exist, or values are weird, then this raises an AssertionError. """ + assert "state" in job_state, "state key missing" + assert isinstance(job_state["state"], dict), "state is not a dict" + assert "user" in job_state, "user key missing" + assert isinstance(job_state["user"], str), "user is not a string" + state = job_state["state"] # list of tuples - first = key name, second = value type # details for other cases comes later. This is just the expected basic set of # keys for EVERY job, once it's been created in EE2. - expected_state_keys = [ - ("job_id", str), - ("status", str), - ("created", int), - ("updated", int), - ("run_id", str), - ("cell_id", str), - ] - optional_state_keys = [ - ("queued", int), - ("finished", int), - ("terminated_code", int), - ("parent_job_id", str), - ("errormsg", str), - ("error", dict), - ("error_code", int), - ] - assert "state" in state, "state key missing" - assert isinstance(state["state"], dict), "state is not a dict" - assert "owner" in state, "owner key missing" - assert isinstance(state["owner"], str), "owner is not a string" - for k in expected_state_keys: - assert k[0] in state["state"], f"{k[0]} key is missing from state" - assert isinstance(state["state"][k[0]], k[1]), f"{k[0]} is not a {k[1]}" - for k in optional_state_keys: - if k in state["state"]: - assert isinstance( - state["state"][k[0]], (k[1], None) - ), f"Optional key {k[0]} is present and not {k[1]} or None" + + NoneType = type(None) + state_keys = { + "required": { + "job_id": str, + "status": str, + "created": int, + "updated": int, + "run_id": (NoneType, str), + "cell_id": (NoneType, str), + }, + "optional": { + "batch_id": (NoneType, str), + "batch_job": bool, + "child_jobs": list, + "error": dict, + "errormsg": str, + "error_code": int, + "finished": int, + "parent_job_id": (NoneType, str), + "queued": int, + "retry_count": int, + "retry_ids": list, + "retry_saved_toggle": bool, + "running": int, + "terminated_code": int, + "user": str, + "wsid": int, + }, + } + + for requiredness in ["required", "optional"]: + for attr, type_list in state_keys[requiredness].items(): + if requiredness == "required": + assert ( + attr in state + ), f"attribute {attr} ({requiredness}) is missing from state" + if attr in state: + assert isinstance( + state[attr], type_list + ), f"{state[attr]} does not match type(s) {type_list}: " + json.dumps( + state[attr] + ) if __name__ == "__main__": diff --git a/src/biokbase/workspace/client.py b/src/biokbase/workspace/client.py index c00819b0ff..84f857f251 100644 --- a/src/biokbase/workspace/client.py +++ b/src/biokbase/workspace/client.py @@ -2942,6 +2942,36 @@ def list_workspace_info(self, params, context=None): "Workspace.list_workspace_info", [params], self._service_ver, context ) + def list_workspace_ids(self, params, context=None): + """ + List workspace IDs to which the user has access. + This function returns a subset of the information in the + list_workspace_info method and should be substantially faster. + :param params: instance of type "ListWorkspaceIDsParams" (Input + parameters for the "list_workspace_ids" function. Optional + parameters: permission perm - filter workspaces by minimum + permission level. 'None' and 'readable' are ignored. boolean + onlyGlobal - if onlyGlobal is true only include world readable + workspaces. Defaults to false. If true, excludeGlobal is ignored. + boolean excludeGlobal - if excludeGlobal is true exclude world + readable workspaces. Defaults to true.) -> structure: parameter + "perm" of type "permission" (Represents the permissions a user or + users have to a workspace: 'a' - administrator. All operations + allowed. 'w' - read/write. 'r' - read. 'n' - no permissions.), + parameter "excludeGlobal" of type "boolean" (A boolean. 0 = false, + other = true.), parameter "onlyGlobal" of type "boolean" (A + boolean. 0 = false, other = true.) + :returns: instance of type "ListWorkspaceIDsResults" (Results of the + "list_workspace_ids" function. list workspaces - the + workspaces to which the user has explicit access. list pub - + the workspaces to which the user has access because they're + globally readable.) -> structure: parameter "workspaces" of list + of Long, parameter "pub" of list of Long + """ + return self._client.call_method( + "Workspace.list_workspace_ids", [params], self._service_ver, context + ) + def list_workspace_objects(self, params, context=None): """ Lists the metadata of all objects in the specified workspace with the From e30fc6b72b5e0e3f7ecf8640657b7d0b7390bcfa Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Thu, 14 Oct 2021 18:37:03 -0700 Subject: [PATCH 37/54] more backporting list_workspaces changes (fixes to the previous changes.) --- .../narrative/contents/narrativeio.py | 11 +- .../tests/narrative_mock/mockclients.py | 161 +++++------------- src/biokbase/narrative/tests/util.py | 79 ++++----- 3 files changed, 74 insertions(+), 177 deletions(-) diff --git a/src/biokbase/narrative/contents/narrativeio.py b/src/biokbase/narrative/contents/narrativeio.py index dd6df41199..1ad7efa1c6 100644 --- a/src/biokbase/narrative/contents/narrativeio.py +++ b/src/biokbase/narrative/contents/narrativeio.py @@ -12,9 +12,7 @@ from tornado.web import HTTPError from notebook.utils import to_api_path, to_os_path from biokbase.narrative.common.exceptions import WorkspaceError -from traitlets import Unicode, Dict, Bool, List, TraitError from biokbase.narrative.common.kblogging import get_logger, log_event -import re import json from collections import Counter from .updater import update_narrative @@ -37,10 +35,6 @@ "size", "meta", ] -obj_field = dict(zip(LIST_OBJECTS_FIELDS, range(len(LIST_OBJECTS_FIELDS)))) - -obj_ref_regex = re.compile(r"^(?P\d+)\/(?P\d+)(\/(?P\d+))?$") - MAX_WORKSPACES = 10000 # from ws.list_objects MAX_METADATA_STRING_BYTES = 900 MAX_METADATA_SIZE_BYTES = 16000 @@ -56,6 +50,7 @@ class KBaseWSManagerMixin(object): """ ws_uri = URLS.workspace + nar_type = "KBaseNarrative.Narrative" def __init__(self, *args, **kwargs): if not self.ws_uri: @@ -201,7 +196,7 @@ def write_narrative(self, ref, nb, cur_user): if "creator" not in meta: meta["creator"] = cur_user if "type" not in meta: - meta["type"] = NARRATIVE_TYPE + meta["type"] = self.nar_type if "description" not in meta: meta["description"] = "" if "data_dependencies" not in meta: @@ -253,7 +248,7 @@ def write_narrative(self, ref, nb, cur_user): # Now we can save the Narrative object. try: ws_save_obj = { - "type": NARRATIVE_TYPE, + "type": self.nar_type, "data": nb, "objid": obj_id, "meta": nb["metadata"].copy(), diff --git a/src/biokbase/narrative/tests/narrative_mock/mockclients.py b/src/biokbase/narrative/tests/narrative_mock/mockclients.py index 029fb11ce8..33d7a2e262 100644 --- a/src/biokbase/narrative/tests/narrative_mock/mockclients.py +++ b/src/biokbase/narrative/tests/narrative_mock/mockclients.py @@ -1,14 +1,5 @@ from ..util import ConfigTests from biokbase.workspace.baseclient import ServerError -from biokbase.narrative.jobs.appmanager import BATCH_ID_KEY -import copy -import functools -from unittest.mock import call - -RANDOM_DATE = "2018-08-10T16:47:36+0000" -RANDOM_TYPE = "ModuleA.TypeA-1.0" - -WSID_STANDARD = 12345 def get_nar_obj(i): @@ -56,21 +47,18 @@ def test_my_function(self): Then we don't need to mock as much. """ - config = ConfigTests() - _ee2_job_info = config.load_json_file(config.get("jobs", "ee2_job_info_file")) - def __init__(self, token=None): if token is not None: assert isinstance(token, str) + self.config = ConfigTests() self.job_info = self.config.load_json_file( self.config.get("jobs", "job_info_file") ) + self.ee2_job_info = self.config.load_json_file( + self.config.get("jobs", "ee2_job_info_file") + ) self.test_job_id = self.config.get("app_tests", "test_job_id") - @property - def ee2_job_info(self): - return copy.deepcopy(self._ee2_job_info) - # ----- User and Job State functions ----- def list_jobs2(self, params): @@ -80,10 +68,7 @@ def delete_job(self, job): return "bar" def check_workspace_jobs(self, params): - info = self.ee2_job_info - if params.get("return_list"): - info = list(info.values()) - return info + return self.ee2_job_info # ----- Narrative Method Store functions ------ @@ -104,13 +89,13 @@ def ver(self): def get_workspace_info(self, params): """ Some magic workspace ids. - 12345 (WSID_STANDARD) - the standard one. + 12345 - the standard one. 678 - doesn't have useful narrative info in its metadata 789 - raises a permissions error 890 - raises a deleted workspace error otherwise, returns workspace info with narrative = 1, and narrative name = 'Fake' """ - wsid = params.get("id", WSID_STANDARD) + wsid = params.get("id", 12345) name = params.get("workspace", "some_workspace") if wsid == 678: return [ @@ -182,7 +167,7 @@ def get_object_info_new(self, params): "2018-06-26T19:31:41+0000", 1, "wjriehl", - WSID_STANDARD, + 12345, "random_workspace", "a20f2df66f973de41b84164f2c2bedd3", 765, @@ -198,7 +183,7 @@ def get_object_info_new(self, params): "2018-08-13T23:13:09+0000", 1, "wjriehl", - WSID_STANDARD, + 12345, "random_workspace", "9f014a3c08368537a40fa2e4b90f9cab", 757, @@ -209,6 +194,24 @@ def get_object_info_new(self, params): infos.append(random_obj_info) return infos + # infos = [ + # [ + # 5, + # "Sbicolor2", + # "KBaseGenomes.Genome-12.3", + # "2017-03-31T23:42:59+0000", + # 1, + # "wjriehl", + # 18836, + # "wjriehl:1490995018528", + # "278abf8f0dbf8ab5ce349598a8674a6e", + # 109180038, + # None, + # ] + # ] + # ret_val = infos * len(params.get("objects", [0])) + # return ret_val + def get_object_info3(self, params): infos = [ [ @@ -238,25 +241,11 @@ def list_objects(self, params): def run_job(self, params): return self.test_job_id - def run_job_batch(self, batch_job_inputs, batch_params): - child_job_ids = [ - self.test_job_id + f"_child_{i}" for i in range(len(batch_job_inputs)) - ] - return {BATCH_ID_KEY: self.test_job_id, "child_job_ids": child_job_ids} - def cancel_job(self, job_id): - return {} - - def retry_job(self, params): - job_id = params["job_id"] - return {"job_id": job_id, "retry_id": job_id[::-1]} + return "done" - def retry_jobs(self, params): - job_ids = params["job_ids"] - results = list() - for job_id in job_ids: - results.append({"job_id": job_id, "retry_id": job_id[::-1]}) - return results + def check_job_canceled(self, params): + return {"finished": 0, "canceled": 0, "job_id": params.get("job_id")} def get_job_params(self, job_id): return self.ee2_job_info.get(job_id, {}).get("job_input", {}) @@ -265,7 +254,7 @@ def check_job(self, params): job_id = params.get("job_id") if not job_id: return {} - info = self.ee2_job_info.get(job_id, {"job_id": job_id, "status": "unmocked"}) + info = self.ee2_job_info.get(job_id, {}) if "exclude_fields" in params: for f in params["exclude_fields"]: if f in info: @@ -279,8 +268,6 @@ def check_jobs(self, params): infos[job] = self.check_job( {"job_id": job, "exclude_fields": params.get("exclude_fields", [])} ) - if params.get("return_list"): - infos = list(infos.values()) return infos def get_job_logs(self, params): @@ -350,8 +337,8 @@ def _mock_ns_list_objects_with_sets(self, params): "object_info": [ 1, "obj1", - RANDOM_TYPE, - RANDOM_DATE, + "ModuleA.TypeA-1.0", + "2018-08-10T16:47:36+0000", 2, user_id, ws_id, @@ -365,8 +352,8 @@ def _mock_ns_list_objects_with_sets(self, params): "object_info": [ 7, "obj7", - RANDOM_TYPE, - RANDOM_DATE, + "ModuleA.TypeA-1.0", + "2018-08-10T16:47:36+0000", 2, user_id, ws_id, @@ -380,8 +367,8 @@ def _mock_ns_list_objects_with_sets(self, params): "object_info": [ 8, "obj8", - RANDOM_TYPE, - RANDOM_DATE, + "ModuleA.TypeA-1.0", + "2018-08-10T16:47:36+0000", 2, user_id, ws_id, @@ -396,7 +383,7 @@ def _mock_ns_list_objects_with_sets(self, params): 9, "obj9", "ModuleB.TypeB-1.0", - RANDOM_DATE, + "2018-08-10T16:47:36+0000", 3, user_id, ws_id, @@ -411,7 +398,7 @@ def _mock_ns_list_objects_with_sets(self, params): 3, "obj3", "ModuleC.TypeC-1.0", - RANDOM_DATE, + "2018-08-10T16:47:36+0000", 4, user_id, ws_id, @@ -426,7 +413,7 @@ def _mock_ns_list_objects_with_sets(self, params): 4, "obj4", "ModuleD.TypeD-1.0", - RANDOM_DATE, + "2018-08-10T16:47:36+0000", 5, user_id, ws_id, @@ -442,7 +429,7 @@ def _mock_ns_list_objects_with_sets(self, params): 5, "obj5", "Module5.Type5-1.0", - RANDOM_DATE, + "2018-08-10T16:47:36+0000", 6, user_id, ws_id, @@ -494,18 +481,9 @@ def __init__(self, token=None): def check_workspace_jobs(self, params): raise ServerError("JSONRPCError", -32000, "Job lookup failed.") - def check_job(self, params): - raise ServerError("JSONRPCError", -32000, "Check job failed") - def cancel_job(self, params): raise ServerError("JSONRPCError", -32000, "Can't cancel job") - def retry_job(self, params): - raise ServerError("JSONRPCError", -32000, "Job retry failed") - - def retry_jobs(self, params): - raise ServerError("JSONRPCError", -32000, "Jobs retry failed") - def check_job_canceled(self, params): raise ServerError("JSONRPCError", 1, "Can't cancel job") @@ -529,60 +507,3 @@ def list(self): "omg/this/is/a/long/path/to/a/file", "filterme", ] - - -class assert_obj_method_called(object): - """ - Invocations: - - with assert_obj_method_called(MyTargetClass, "my_target_method"): - with assert_obj_method_called(MyTargetClass, "my_target_method", False) as aomc: - - aomc.assert_has_calls( - [ - mock.call("fish", 1), - mock.call("dog", 2), - ] - ) - """ - - def __init__(self, target, method_name, call_status=True): - self.target = target - self.method_name = method_name - self.call_status = call_status - - def __enter__(self): - self.orig_method = getattr(self.target, self.method_name) - - @functools.wraps(self.orig_method) - def called(*args, **kwargs): - self.method_called = True - self.calls.append(call(*args[1:], **kwargs)) # first arg is self - return self.orig_method(*args, **kwargs) - - self.called = called - - setattr(self.target, self.method_name, called) - self.method_called = False - self.calls = [] - - return self - - def __exit__(self, exc_type, exc_value, traceback): - if exc_value: - return - - assert ( - getattr(self.target, self.method_name) == self.called - ), f"Method {self.target.__name__}.{self.method_name} was modified during context managment with {self.__class__.name}" - setattr(self.target, self.method_name, self.orig_method) - - self.assert_called(self.call_status) - - def assert_has_calls(self, calls): - assert calls == self.calls, f"Expected:\n{calls}\nGot:\n{self.calls}" - - def assert_called(self, call_status=True): - assert ( - call_status and len(self.calls) or not call_status and not len(self.calls) - ), f"Call status of method {self.target.__name__}.{self.method_name} was not {call_status}" diff --git a/src/biokbase/narrative/tests/util.py b/src/biokbase/narrative/tests/util.py index 703170ef7c..b79fbedbec 100644 --- a/src/biokbase/narrative/tests/util.py +++ b/src/biokbase/narrative/tests/util.py @@ -306,63 +306,44 @@ def find_free_port() -> int: return s.getsockname()[1] -def validate_job_state(job_state: dict) -> None: +def validate_job_state(state: dict) -> None: """ Validates the structure and entries in a job state as returned by the JobManager. If any keys are missing, or extra keys exist, or values are weird, then this raises an AssertionError. """ - assert "state" in job_state, "state key missing" - assert isinstance(job_state["state"], dict), "state is not a dict" - assert "user" in job_state, "user key missing" - assert isinstance(job_state["user"], str), "user is not a string" - state = job_state["state"] # list of tuples - first = key name, second = value type # details for other cases comes later. This is just the expected basic set of # keys for EVERY job, once it's been created in EE2. - - NoneType = type(None) - state_keys = { - "required": { - "job_id": str, - "status": str, - "created": int, - "updated": int, - "run_id": (NoneType, str), - "cell_id": (NoneType, str), - }, - "optional": { - "batch_id": (NoneType, str), - "batch_job": bool, - "child_jobs": list, - "error": dict, - "errormsg": str, - "error_code": int, - "finished": int, - "parent_job_id": (NoneType, str), - "queued": int, - "retry_count": int, - "retry_ids": list, - "retry_saved_toggle": bool, - "running": int, - "terminated_code": int, - "user": str, - "wsid": int, - }, - } - - for requiredness in ["required", "optional"]: - for attr, type_list in state_keys[requiredness].items(): - if requiredness == "required": - assert ( - attr in state - ), f"attribute {attr} ({requiredness}) is missing from state" - if attr in state: - assert isinstance( - state[attr], type_list - ), f"{state[attr]} does not match type(s) {type_list}: " + json.dumps( - state[attr] - ) + expected_state_keys = [ + ("job_id", str), + ("status", str), + ("created", int), + ("updated", int), + ("run_id", str), + ("cell_id", str), + ] + optional_state_keys = [ + ("queued", int), + ("finished", int), + ("terminated_code", int), + ("parent_job_id", str), + ("errormsg", str), + ("error", dict), + ("error_code", int), + ] + assert "state" in state, "state key missing" + assert isinstance(state["state"], dict), "state is not a dict" + assert "owner" in state, "owner key missing" + assert isinstance(state["owner"], str), "owner is not a string" + for k in expected_state_keys: + assert k[0] in state["state"], f"{k[0]} key is missing from state" + assert isinstance(state["state"][k[0]], k[1]), f"{k[0]} is not a {k[1]}" + for k in optional_state_keys: + if k in state["state"]: + assert isinstance( + state["state"][k[0]], (k[1], None) + ), f"Optional key {k[0]} is present and not {k[1]} or None" if __name__ == "__main__": From 86fa0147383afba6195b2281e46cdcfed94ab873 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 15 Oct 2021 10:26:48 -0700 Subject: [PATCH 38/54] change name of install-node-modules to copy-node-modules-to-ext-modules --- Dockerfile | 2 +- Makefile | 4 ++-- package.json | 2 +- ...ll-node-modules.js => copy-node-modules-to-ext-modules.js} | 0 scripts/install_narrative.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename scripts/{install-node-modules.js => copy-node-modules-to-ext-modules.js} (100%) diff --git a/Dockerfile b/Dockerfile index 6c4eaccf36..b44c1d1311 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,7 +41,7 @@ RUN \ # install JS deps npm install -g grunt-cli && \ npm install && \ - npm run install-node-modules && \ + npm run copy-node-modules-to-ext-modules && \ ./node_modules/.bin/bower install --allow-root --config.interactive=false && \ # Compile Javascript down into an itty-bitty ball unless SKIP_MINIFY is non-empty echo Skip=$SKIP_MINIFY && \ diff --git a/Makefile b/Makefile index 80929f982f..0877b0b5a7 100755 --- a/Makefile +++ b/Makefile @@ -26,8 +26,8 @@ run-dev-image: install: bash $(INSTALLER) -install-node-modules: - npm run install-node-modules +copy-node-modules-to-ext-modules: + npm run copy-node-modules-to-ext-modules # runs the installer to locally build the Narrative in a # local venv. diff --git a/package.json b/package.json index 45333661a6..e2af8f2372 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "test": "karma start test/unit/karma.conf.js", "uglify": "terser kbase-extension/static/kbase-narrative.js -c --source-map --output kbase-extension/static/kbase-narrative-min.js", "prepare": "husky install", - "install-node-modules": "node scripts/install-node-modules.js" + "copy-node-modules-to-ext-modules": "node scripts/copy-node-modules-to-ext-modules.js" }, "lint-staged": { "*.js": [ diff --git a/scripts/install-node-modules.js b/scripts/copy-node-modules-to-ext-modules.js similarity index 100% rename from scripts/install-node-modules.js rename to scripts/copy-node-modules-to-ext-modules.js diff --git a/scripts/install_narrative.sh b/scripts/install_narrative.sh index 31f8e50c65..291d6f3a7f 100755 --- a/scripts/install_narrative.sh +++ b/scripts/install_narrative.sh @@ -98,7 +98,7 @@ then cd $NARRATIVE_ROOT_DIR log "Installing front end build components with npm" npm install 2>&1 | tee -a ${logfile} - npm run install-node-modules + npm run copy-node-modules-to-ext-modules log "Installing front end components with bower" npx bower install -V --allow-root --config.interactive=false 2>&1 | tee -a "${logfile}" From c9feac9bd82a42033004639bb5d7a80abcf78d43 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 15 Oct 2021 11:51:35 -0700 Subject: [PATCH 39/54] Add specific error message for unsupported type and object; add more test cases. --- .../kbase/js/react_components/ErrorMessage.js | 4 +-- .../react_components/ErrorMessage-spec.js | 25 ++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/kbase-extension/static/kbase/js/react_components/ErrorMessage.js b/kbase-extension/static/kbase/js/react_components/ErrorMessage.js index 5b68bc0793..b2ffeb30e8 100644 --- a/kbase-extension/static/kbase/js/react_components/ErrorMessage.js +++ b/kbase-extension/static/kbase/js/react_components/ErrorMessage.js @@ -27,12 +27,12 @@ define([ // Standard Error objects or descendants, or those which act like one in this regard. message = error.message; } else { - message = 'Unknown Error'; + message = 'Unknown Error (incompatible object)'; } } else if (typeof error === 'string') { message = error; } else { - message = 'Unknown Error'; + message = 'Unknown Error (incompatible type)'; } return e('div', { diff --git a/test/unit/spec/react_components/ErrorMessage-spec.js b/test/unit/spec/react_components/ErrorMessage-spec.js index 8779d96f5c..30a299e296 100644 --- a/test/unit/spec/react_components/ErrorMessage-spec.js +++ b/test/unit/spec/react_components/ErrorMessage-spec.js @@ -50,7 +50,7 @@ define(['react_components/ErrorMessage', 'react', 'react-dom'], (ErrorMessage, R expect(node.innerText).toContain('buzz'); }); - it('should display a default error message if it is an unsupported type', () => { + it('should display a default error message if it is an unsupported scalar type', () => { // create a dom node. const node = document.createElement('div'); @@ -62,15 +62,34 @@ define(['react_components/ErrorMessage', 'react', 'react-dom'], (ErrorMessage, R 1, 0, -1, + undefined + ]; + for (const unsupported of unsupportedTypes) { + const el = createElement(ErrorMessage, { error: unsupported }); + render(el, node); + expect(node.innerText).toContain('Unknown Error (incompatible type)'); + } + }); + + it('should display a default error message if it is an unsupported object', () => { + // create a dom node. + const node = document.createElement('div'); + + // install our component there + const unsupportedTypes = [ {}, { foo: 'bar' }, [], - [1, 2, 3] + [1, 2, 3], + new Date(), + new URL('https://example.com'), + new Number(1), + new String('foo') // yes, _could_ be supported... ]; for (const unsupported of unsupportedTypes) { const el = createElement(ErrorMessage, { error: unsupported }); render(el, node); - expect(node.innerText).toContain('Unknown Error'); + expect(node.innerText).toContain('Unknown Error (incompatible object)'); } }); }); From cb89ffe21cd1a4789238272060e3c74b2232ee4c Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 15 Oct 2021 12:24:13 -0700 Subject: [PATCH 40/54] tidying up tests. --- .../KBaseSets/SetElementLoader.css | 0 .../function_output/KBaseSets/SetViewer.css | 10 ++--- .../KBaseSets/SetElementLoader.js | 9 ++--- .../function_output/KBaseSets/SetViewer.js | 4 +- .../KBaseSets/SetElementLoader-spec.js | 2 +- .../SetElements/AssemblySetViewer-spec.js | 38 ------------------- .../ReadsAlignmentSetViewer-spec.js | 37 ------------------ .../KBaseSets/SetLoader-spec.js | 2 +- .../KBaseSets/SetTypeResolver-spec.js | 9 +++++ .../KBaseSets/SetViewer-spec.js | 2 +- 10 files changed, 23 insertions(+), 90 deletions(-) rename kbase-extension/static/kbase/{js => css}/widgets/function_output/KBaseSets/SetElementLoader.css (100%) rename kbase-extension/static/kbase/{js => css}/widgets/function_output/KBaseSets/SetViewer.css (60%) create mode 100644 test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.css b/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetElementLoader.css similarity index 100% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.css rename to kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetElementLoader.css diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.css b/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetViewer.css similarity index 60% rename from kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.css rename to kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetViewer.css index 0979b32c2b..6b500cdf6a 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.css +++ b/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetViewer.css @@ -1,10 +1,10 @@ -.KBaseSets .HeaderTable { +.KBaseSets-SetViewer .HeaderTable { display: flex; flex-direction: column; margin-bottom: 10px; } -.KBaseSets .HeaderTable > .Row { +.KBaseSets-SetViewer .HeaderTable > .Row { flex: 0 0 auto; display: flex; flex-direction: row; @@ -13,18 +13,18 @@ height: 1.5em; } -.KBaseSets .HeaderTable > .Row > .Col:nth-child(1) { +.KBaseSets-SetViewer .HeaderTable > .Row > .Col:nth-child(1) { font-weight: bold; color: rgba(100, 100, 100); flex: 0 0 13em; } -.KBaseSets .HeaderTable > .Row > .Col:nth-child(2) { +.KBaseSets-SetViewer .HeaderTable > .Row > .Col:nth-child(2) { flex: 1 1 0; } /* tweak bootstrap styling here */ -.KBaseSets select.form-control { +.KBaseSets-SetViewer select.form-control { margin-left: 0; margin-right: 0; padding: 4px; diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js index 4d1aa9d110..1a2116ee08 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js @@ -29,13 +29,13 @@ define([ // For effect 'bootstrap', - 'css!./SetElementLoader.css' + 'css!styles/widgets/function_output/KBaseSets/SetElementLoader.css' ], ( React, PropTypes, ServiceClient, ServiceUtils, - ElementResolver, + SetTypeResolver, ErrorMessage, Config, Jupyter @@ -74,11 +74,10 @@ define([ try { const { object, objectInfo } = await this.fetchSetElement(this.props.item.ref); - const mapping = ElementResolver.resolve(this.props.setType); + const { module } = SetTypeResolver.resolve(this.props.setType); this.setState({ status: 'loaded', - module: mapping.module, - object, objectInfo + module, object, objectInfo }); } catch (error) { console.error('Error getting object info', error); diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js index ddd7126baf..c75b6b15c8 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js @@ -5,7 +5,7 @@ define([ // For effect 'bootstrap', - 'css!./SetViewer.css' + 'css!styles/widgets/function_output/KBaseSetsSetViewer.css' ], ( React, PropTypes, @@ -124,7 +124,7 @@ define([ } render() { return e('div', { - className: 'KBaseSets' + className: 'KBaseSets-SetViewer' }, ...[ this.renderHeader(), this.renderSetElement() diff --git a/test/unit/spec/function_output/KBaseSets/SetElementLoader-spec.js b/test/unit/spec/function_output/KBaseSets/SetElementLoader-spec.js index f81093ff8e..c1a56273c5 100644 --- a/test/unit/spec/function_output/KBaseSets/SetElementLoader-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElementLoader-spec.js @@ -1,7 +1,7 @@ define(['widgets/function_output/KBaseSets/SetElementLoader'], (SetElementLoader) => { 'use strict'; - describe('The Dispatcher entrypoint class', () => { + describe('The SetElementLoader entrypoint class', () => { it('should be defined', () => { expect(SetElementLoader).toBeDefined(); }); diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js index 8fbc2da0d3..fd79ed49b3 100644 --- a/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js @@ -5,11 +5,6 @@ define([ 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', 'json!../data/assemblyset_case_01_props.json', 'json!../data/assemblyset_case_01_expected.json', - // 'json!../data/assemblyset_case_02_props.json', - // 'json!../data/assemblyset_case_03_props.json', - // 'json!../data/assemblyset_case_04_props.json', - // 'json!../data/assemblyset_case_03_expected.json', - // 'json!../data/assemblyset_case_04_expected.json' ], (React, ReactDOM, domUtils, AssemblySetViewer, case1Props, case1Expected) => { 'use strict'; @@ -20,39 +15,6 @@ define([ const ASSERT_TIMEOUT = 1000; describe('The AssemblySetViewer component', () => { - // it('should render a loading indicator in a "null" async status', async () => { - // const node = document.createElement('div'); - - // const el = createElement(AssemblySetViewer, case1Props, null); - // render(el, node); - - // await expectAsync(domUtils.waitForText({ - // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - // })).toBeResolved(); - // }); - - // it('should render a loading indicator in a "loading" async status', async () => { - // const node = document.createElement('div'); - - // const el = createElement(AssemblySetViewer, case2Props, null); - // render(el, node); - - // await expectAsync(domUtils.waitForText({ - // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - // })).toBeResolved(); - // }); - - // it('should render an error message set in a "error" async status', async () => { - // const node = document.createElement('div'); - - // const el = createElement(AssemblySetViewer, case3Props, null); - // render(el, node); - - // await expectAsync(domUtils.waitForText({ - // node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT - // })).toBeResolved(); - // }); - it('should render an assembly set in a "loaded" async status', async () => { const node = document.createElement('div'); diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js index 1eabf32126..6efc23771d 100644 --- a/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js @@ -5,10 +5,6 @@ define([ 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer', 'json!../data/readsalignmentset_case_01_props.json', 'json!../data/readsalignmentset_case_01_expected.json', - // 'json!../data/readsalignmentset_case_03_props.json', - // 'json!../data/readsalignmentset_case_04_props.json', - // 'json!../data/readsalignmentset_case_03_expected.json', - // 'json!../data/readsalignmentset_case_04_expected.json' ], (React, ReactDOM, domUtils, ReadsAlignmentSetViewer, case1Props, case1Expected) => { 'use strict'; @@ -19,39 +15,6 @@ define([ const ASSERT_TIMEOUT = 1000; describe('The ReadsAlignmentSetViewer component', () => { - // it('should render a loading indicator in a "null" async status', async () => { - // const node = document.createElement('div'); - - // const el = createElement(ReadsAlignmentSetViewer, case1Props, null); - // render(el, node); - - // await expectAsync(domUtils.waitForText({ - // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - // })).toBeResolved(); - // }); - - // it('should render a loading indicator in a "loading" async status', async () => { - // const node = document.createElement('div'); - - // const el = createElement(ReadsAlignmentSetViewer, case1Props, null); - // render(el, node); - - // await expectAsync(domUtils.waitForText({ - // node, text: "Loading...", label: "Loading Message", timeout: ASSERT_TIMEOUT - // })).toBeResolved(); - // }); - - // it('should render an error message set in a "error" async status', async () => { - // const node = document.createElement('div'); - - // const el = createElement(ReadsAlignmentSetViewer, case3Props, null); - // render(el, node); - - // await expectAsync(domUtils.waitForText({ - // node, text: case3Expected.message, label: "Error Message", timeout: ASSERT_TIMEOUT - // })).toBeResolved(); - // }); - it('should render a ReadsAlignment set in a "loaded" async status', async () => { const node = document.createElement('div'); diff --git a/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js b/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js index 89b9f82ba5..2c974a03ea 100644 --- a/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetLoader-spec.js @@ -1,7 +1,7 @@ define(['widgets/function_output/KBaseSets/SetLoader'], (SetLoader) => { 'use strict'; - describe('The Loader class', () => { + describe('The SetLoader class', () => { it('should be defined', () => { expect(SetLoader).toBeDefined(); }); diff --git a/test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js b/test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js new file mode 100644 index 0000000000..ef2f841910 --- /dev/null +++ b/test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js @@ -0,0 +1,9 @@ +define(['widgets/function_output/KBaseSets/SetTypeResolver'], (SetTypeResolver) => { + 'use strict'; + + describe('The SetTypeResolver class', () => { + it('should be defined', () => { + expect(SetTypeResolver).toBeDefined(); + }); + }); +}); diff --git a/test/unit/spec/function_output/KBaseSets/SetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetViewer-spec.js index 2cfaf507ef..0f49434279 100644 --- a/test/unit/spec/function_output/KBaseSets/SetViewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetViewer-spec.js @@ -1,7 +1,7 @@ define(['widgets/function_output/KBaseSets/SetViewer'], (SetViewer) => { 'use strict'; - describe('The Loader class', () => { + describe('The SetViewer class', () => { it('should be defined', () => { expect(SetViewer).toBeDefined(); }); From a8196991e43291ddb60c1949a6eba349551d5b36 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 15 Oct 2021 13:13:52 -0700 Subject: [PATCH 41/54] add tsets for SetTypeResolver --- .../KBaseSets/SetTypeResolver.js | 5 +- .../KBaseSets/SetTypeResolver-spec.js | 96 ++++++++++++++++++- 2 files changed, 96 insertions(+), 5 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetTypeResolver.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetTypeResolver.js index 2c887ae9d1..36858015e1 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetTypeResolver.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetTypeResolver.js @@ -21,10 +21,13 @@ define([ }; function resolve(workspaceType) { + if (typeof workspaceType !== 'string') { + throw new Error(`type "${typeof workspaceType}" not supported as a workspace type value for KBaseSets`); + } if (workspaceType in SET_TYPE_MAPPING) { return SET_TYPE_MAPPING[workspaceType]; } - throw new Error(`workspace type ${workspaceType} not supported for KBaseSets`); + throw new Error(`workspace type "${workspaceType}" not supported for KBaseSets`); } return { resolve }; diff --git a/test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js b/test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js index ef2f841910..220d3e514b 100644 --- a/test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetTypeResolver-spec.js @@ -1,9 +1,97 @@ -define(['widgets/function_output/KBaseSets/SetTypeResolver'], (SetTypeResolver) => { +define([ + 'widgets/function_output/KBaseSets/SetTypeResolver', + 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', + 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer' +], (SetTypeResolver, AssemblySetViewer, ReadsAlignmentSetViewer) => { 'use strict'; - describe('The SetTypeResolver class', () => { - it('should be defined', () => { - expect(SetTypeResolver).toBeDefined(); + describe('The SetTypeResolver module', () => { + it('resolve() method should resolve supported types', () => { + const testCases = [ + { + args: [ + 'KBaseSets.ReadsAlignmentSet' + ], + expected: { + method: 'get_reads_alignment_set_v1', + module: ReadsAlignmentSetViewer + } + }, + { + args: [ + 'KBaseSets.AssemblySet' + ], + expected: { + method: 'get_assembly_set_v1', + module: AssemblySetViewer + } + } + ]; + + + for (const { args, expected } of testCases) { + const { module, method } = SetTypeResolver.resolve.apply(null, args); + expect(method).toEqual(expected.method); + expect(module).toEqual(expected.module); + } + + }); + + it('resolve() method should throw if given a non-string argument', () => { + const testArgs = [ + 1, + 0 + - 1, + undefined, + null, + true, + false, + new Date(), + {}, + { foo: 'bar' }, + [], + ['foo'], + Symbol(), + Symbol('foo'), + Symbol(123) + ]; + + const unsupportedTypes = [ + 'boolean', 'number', 'object', 'symbol', 'undefined' + ]; + + function shouldThrow(arg) { + return () => { + SetTypeResolver.resolve(arg); + }; + } + + const coveredTypes = new Set(); + + for (const arg of testArgs) { + coveredTypes.add(typeof arg); + expect(shouldThrow(arg)).toThrowError(Error, /type "((number)|(boolean)|(undefined)|(object)|(symbol))" not supported as a workspace type value for KBaseSets/); + } + + expect(Array.from(coveredTypes).sort()).toEqual(unsupportedTypes); + }); + + it('resolve() method should throw if an unsupported type string error if given an unsupported workspace type string', () => { + const testArgs = [ + 'foo', + 'foo.bar', + '' + ]; + + function shouldThrow(arg) { + return () => { + SetTypeResolver.resolve(arg); + }; + } + + for (const arg of testArgs) { + expect(shouldThrow(arg)).toThrowError(Error, /workspace type ".*?" not supported for KBaseSets/); + } }); }); }); From 43ee556b1a6b4deb3d24271caa6fc1a0f47663b5 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 15 Oct 2021 14:25:52 -0700 Subject: [PATCH 42/54] refactor react component rendering into utils --- .../KBaseSets/SetElements/AssemblySetViewer-spec.js | 13 ++----------- .../SetElements/ReadsAlignmentSetViewer-spec.js | 11 ++--------- test/unit/utils/domUtils.js | 12 ++++++++++-- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js index fd79ed49b3..98bc7d1a3b 100644 --- a/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js @@ -1,26 +1,17 @@ define([ - 'react', - 'react-dom', 'test/unit/utils/domUtils', 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', 'json!../data/assemblyset_case_01_props.json', 'json!../data/assemblyset_case_01_expected.json', -], (React, ReactDOM, domUtils, AssemblySetViewer, case1Props, case1Expected) => { +], (domUtils, AssemblySetViewer, case1Props, case1Expected) => { 'use strict'; - const { createElement } = React; - const { render } = ReactDOM; - // 1 second timeout for waiting for async browser changes. const ASSERT_TIMEOUT = 1000; describe('The AssemblySetViewer component', () => { it('should render an assembly set in a "loaded" async status', async () => { - const node = document.createElement('div'); - - // install our component there - const el = createElement(AssemblySetViewer, case1Props, null); - render(el, node); + const { node } = domUtils.renderComponent(AssemblySetViewer, case1Props); for await (const [label, text] of Object.entries(case1Expected)) { await expectAsync(domUtils.waitForText({ diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js index 6efc23771d..07008cc0dd 100644 --- a/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js @@ -1,25 +1,18 @@ define([ - 'react', - 'react-dom', 'test/unit/utils/domUtils', 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer', 'json!../data/readsalignmentset_case_01_props.json', 'json!../data/readsalignmentset_case_01_expected.json', -], (React, ReactDOM, domUtils, ReadsAlignmentSetViewer, case1Props, case1Expected) => { +], (domUtils, ReadsAlignmentSetViewer, case1Props, case1Expected) => { 'use strict'; - const { createElement } = React; - const { render } = ReactDOM; - // 1 second timeout for waiting for async browser changes. const ASSERT_TIMEOUT = 1000; describe('The ReadsAlignmentSetViewer component', () => { it('should render a ReadsAlignment set in a "loaded" async status', async () => { - const node = document.createElement('div'); - const el = createElement(ReadsAlignmentSetViewer, case1Props, null); - render(el, node); + const { node } = domUtils.renderComponent(ReadsAlignmentSetViewer, case1Props); for await (const [label, text] of Object.entries(case1Expected)) { await expectAsync(domUtils.waitForText({ diff --git a/test/unit/utils/domUtils.js b/test/unit/utils/domUtils.js index a25c243219..c673999b98 100644 --- a/test/unit/utils/domUtils.js +++ b/test/unit/utils/domUtils.js @@ -1,4 +1,4 @@ -define([], () => { +define(['react', 'react-dom'], (React, ReactDOM) => { 'use strict'; const WAIT_FOR_LOOP_WAIT = 100; @@ -56,5 +56,13 @@ define([], () => { }); } - return { waitFor, waitForText }; + function renderComponent(component, props) { + const node = document.createElement('div'); + + const element = React.createElement(component, props, null); + ReactDOM.render(element, node); + return { node, element }; + } + + return { waitFor, waitForText, renderComponent }; }); From c241c8afac45f7cead65d7ca0a9dec43fd1124f9 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 18 Oct 2021 15:23:11 -0700 Subject: [PATCH 43/54] update release notes --- RELEASE_NOTES.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 7a7c73fc2e..6ba2758b2e 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,13 @@ The Narrative Interface allows users to craft KBase Narratives using a combinati This is built on the Jupyter Notebook v6.0.2 (more notes will follow). +### Unreleased + +- SCT-1315 - Fix KBaseSets generic set viewer; ported to preact initial, then React +- The above is the first utilization of React in the Narrative, and of npm-installed modules into the Narrative runtime + - added npm dependencies: react, react-dom, prop-types + - added support to copy umd-packaged modules from node_modules into the kbase extension static content during build + ### Version 4.5.1 - Python dependency updates - pillow 8.3.1 -> 8.3.2 From 61707843d730854545dc977ebc3e6c694a3474a5 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 19 Oct 2021 13:07:02 -0700 Subject: [PATCH 44/54] re-cherrypick list_objects changes in prep for merge from canonical repo --- RELEASE_NOTES.md | 131 +++++++++--------- .../narrative/contents/narrativeio.py | 17 ++- .../tests/narrative_mock/mockclients.py | 2 +- .../narrative/tests/test_narrativeio.py | 25 +--- src/biokbase/narrative/tests/util.py | 3 +- src/biokbase/workspace/client.py | 7 +- 6 files changed, 91 insertions(+), 94 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 6ba2758b2e..e4956e7fe5 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,69 +4,71 @@ The Narrative Interface allows users to craft KBase Narratives using a combinati This is built on the Jupyter Notebook v6.0.2 (more notes will follow). -### Unreleased - -- SCT-1315 - Fix KBaseSets generic set viewer; ported to preact initial, then React -- The above is the first utilization of React in the Narrative, and of npm-installed modules into the Narrative runtime - - added npm dependencies: react, react-dom, prop-types - - added support to copy umd-packaged modules from node_modules into the kbase extension static content during build - ### Version 4.5.1 -- Python dependency updates - - pillow 8.3.1 -> 8.3.2 - - plotly 5.1.0 -> 5.3.1 - - pygments 2.9.0 -> 2.10.0 - - pytest 6.2.4 -> 6.2.5 - - terminado 0.10.1 -> 0.11.1 -- Javascript dependency updates - - @wdio/browserstack-service 7.9.1 -> 7.11.1 - - @wdio/cli 7.9.1 -> 7.11.1 - - @wdio/local-runner 7.9.1 -> 7.11.1 - - @wdio/mocha-framework 7.9.1 -> 7.11.1 - - @wdio/selenium-standalone-service 7.7.7 -> 7.10.1 - - @wdio/spec-reporter 7.9.0 -> 7.10.1 - - chromedriver 92.0.1 -> 92.0.2 - - husky 7.0.1 -> 7.0.2 - - jasmine-core 3.8.0 -> 3.9.0 - - msw 0.34.0 -> 0.35.0 - - puppeteer 10.1.0 -> 10.2.0 - - terser 5.7.1 -> 5.7.2 - - webdriverio 7.9.1 -> 7.11.1 + +Code changes + +- DATAUP-599 - Adjusted the kernel code and tests to account for a Workspace service update. + +Dependency Changes + +- Python dependency updates + - pillow 8.3.1 -> 8.3.2 + - plotly 5.1.0 -> 5.3.1 + - pygments 2.9.0 -> 2.10.0 + - pytest 6.2.4 -> 6.2.5 + - terminado 0.10.1 -> 0.11.1 +- Javascript dependency updates + - @wdio/browserstack-service 7.9.1 -> 7.11.1 + - @wdio/cli 7.9.1 -> 7.11.1 + - @wdio/local-runner 7.9.1 -> 7.11.1 + - @wdio/mocha-framework 7.9.1 -> 7.11.1 + - @wdio/selenium-standalone-service 7.7.7 -> 7.10.1 + - @wdio/spec-reporter 7.9.0 -> 7.10.1 + - chromedriver 92.0.1 -> 92.0.2 + - husky 7.0.1 -> 7.0.2 + - jasmine-core 3.8.0 -> 3.9.0 + - msw 0.34.0 -> 0.35.0 + - puppeteer 10.1.0 -> 10.2.0 + - terser 5.7.1 -> 5.7.2 + - webdriverio 7.9.1 -> 7.11.1 ### Version 4.5.0 -- PTV-1561 - SampleSet viewer fixes to allow AMA features; not complete support for AMA features as GenomeSearchUtil does not yet support AMA. -- SCT-3100 - Improve SampleSet viewer; add improved JSON-RPC 1.1 client and associatedKBase service client; add msw (Mock Service Worker) support; -- SCT-3084 - Fixed broken (non-functional) search in the data panel -- SCT-3602 - refseq public data tool now searches by lineage as well; for all public data tools: automatically focus the search input; fix paging bug. -- No ticket - migrate from `nosetests` to `pytest` for testing the Python stack. -- Python dependency updates - - bokeh 2.3.2 -> 2.3.3 - - pillow 8.2.0 -> 8.3.1 - - plotly 4.14.3 -> 5.1.0 - - pymongo 3.11.4 -> 3.12.0 - - pytest 6.2.3. -> 6.2.4 - - pytest-cov 2.11.1 -> 2.12.1 - - requests 2.25.1 -> 2.26.0 - - setuptools 57.0.0 -> 57.4.0 -- Javascript dependency updates - - @types/puppeteer 5.0.0 -> 5.4.4 - - @wdio/browserstack-service 7.7.3 -> 7.9.0 - - @wdio/cli 7.7.3 -> 7.9.0 - - @wdio/local-runner 7.7.3 -> 7.9.0 - - @wdio/mocha-framework 7.7.3 -> 7.9.0 - - @wdio/selenium-standalone-service 7.7.3 -> 7.7.4 - - @wdio/spec-reporter 7.7.7 -> 7.9.0 - - chromedriver 91.0.0 -> 91.0.1 - - eslint 7.28.0 -> 7.32.0 - - husky 6.0.0 -> 7.0.1 - - karma 6.3.3. -> 6.3.4 - - puppeteer 10.0.0 -> 10.1.0 - - selenium-standalone 6.23.0 -> 7.1.0 - - terser 5.7.0 -> 5.7.1 - - wdio-chromedriver-service 7.1.0 -> 7.1.1 - - webdriverio 7.7.3 -> 7.9.1 + +- PTV-1561 - SampleSet viewer fixes to allow AMA features; not complete support for AMA features as GenomeSearchUtil does not yet support AMA. +- SCT-3100 - Improve SampleSet viewer; add improved JSON-RPC 1.1 client and associatedKBase service client; add msw (Mock Service Worker) support; +- SCT-3084 - Fixed broken (non-functional) search in the data panel +- SCT-3602 - refseq public data tool now searches by lineage as well; for all public data tools: automatically focus the search input; fix paging bug. +- No ticket - migrate from `nosetests` to `pytest` for testing the Python stack. +- Python dependency updates + - bokeh 2.3.2 -> 2.3.3 + - pillow 8.2.0 -> 8.3.1 + - plotly 4.14.3 -> 5.1.0 + - pymongo 3.11.4 -> 3.12.0 + - pytest 6.2.3. -> 6.2.4 + - pytest-cov 2.11.1 -> 2.12.1 + - requests 2.25.1 -> 2.26.0 + - setuptools 57.0.0 -> 57.4.0 +- Javascript dependency updates + - @types/puppeteer 5.0.0 -> 5.4.4 + - @wdio/browserstack-service 7.7.3 -> 7.9.0 + - @wdio/cli 7.7.3 -> 7.9.0 + - @wdio/local-runner 7.7.3 -> 7.9.0 + - @wdio/mocha-framework 7.7.3 -> 7.9.0 + - @wdio/selenium-standalone-service 7.7.3 -> 7.7.4 + - @wdio/spec-reporter 7.7.7 -> 7.9.0 + - chromedriver 91.0.0 -> 91.0.1 + - eslint 7.28.0 -> 7.32.0 + - husky 6.0.0 -> 7.0.1 + - karma 6.3.3. -> 6.3.4 + - puppeteer 10.0.0 -> 10.1.0 + - selenium-standalone 6.23.0 -> 7.1.0 + - terser 5.7.0 -> 5.7.1 + - wdio-chromedriver-service 7.1.0 -> 7.1.1 + - webdriverio 7.7.3 -> 7.9.1 ### Version 4.4.0 + - No ticket: boatloads of code cleanup and fixes to the unit and internal testing - PTV-1635: fix bug in data slideout tab selection - PTV-1635: fix data and app slideout button and opening behavior @@ -75,11 +77,13 @@ This is built on the Jupyter Notebook v6.0.2 (more notes will follow). - SCT-3038 - refseq public data search now includes genome_id and source_id ### Version 4.3.2 + - SCT-2778 - convert data slideout, public tab, refseq data source to use searchapi2/rpc api rather than searchapi2/legacy. - Enhanced integration testing support to add service, host, browser, screen size support. - Changed the "Dashboard" link in hamburger menu to "Narratives" and use the new /narratives path. ### Version 4.3.1 + - Fixed problem where code cells could forget their toggled state after saving. - Fixed setting up local authentication for developers. - DATAUP-69 - added a pull request template to the narrative repo. @@ -98,11 +102,12 @@ This is built on the Jupyter Notebook v6.0.2 (more notes will follow). - DATAUP-301 - fixed a problem where the staging area rendered twice in a row on page load. ### Version 4.3.0 -- SCT-2664 - Show the app cell status when in a collapsed state. -- Added an "Info" tab to all app cells with app information. -- Updated links to new KBase home page and docs site. -- Fixed an uploader issue where uploads taking longer than 30 seconds would fail. -- (Trigger release via labels) + +- SCT-2664 - Show the app cell status when in a collapsed state. +- Added an "Info" tab to all app cells with app information. +- Updated links to new KBase home page and docs site. +- Fixed an uploader issue where uploads taking longer than 30 seconds would fail. +- (Trigger release via labels) ### Version 4.2.1 diff --git a/src/biokbase/narrative/contents/narrativeio.py b/src/biokbase/narrative/contents/narrativeio.py index 1ad7efa1c6..0ef24f41c9 100644 --- a/src/biokbase/narrative/contents/narrativeio.py +++ b/src/biokbase/narrative/contents/narrativeio.py @@ -12,7 +12,9 @@ from tornado.web import HTTPError from notebook.utils import to_api_path, to_os_path from biokbase.narrative.common.exceptions import WorkspaceError +from traitlets import Unicode, Dict, Bool, List, TraitError from biokbase.narrative.common.kblogging import get_logger, log_event +import re import json from collections import Counter from .updater import update_narrative @@ -35,6 +37,10 @@ "size", "meta", ] +obj_field = dict(zip(LIST_OBJECTS_FIELDS, range(len(LIST_OBJECTS_FIELDS)))) + +obj_ref_regex = re.compile(r"^(?P\d+)\/(?P\d+)(\/(?P\d+))?$") + MAX_WORKSPACES = 10000 # from ws.list_objects MAX_METADATA_STRING_BYTES = 900 MAX_METADATA_SIZE_BYTES = 16000 @@ -50,7 +56,6 @@ class KBaseWSManagerMixin(object): """ ws_uri = URLS.workspace - nar_type = "KBaseNarrative.Narrative" def __init__(self, *args, **kwargs): if not self.ws_uri: @@ -196,7 +201,7 @@ def write_narrative(self, ref, nb, cur_user): if "creator" not in meta: meta["creator"] = cur_user if "type" not in meta: - meta["type"] = self.nar_type + meta["type"] = NARRATIVE_TYPE if "description" not in meta: meta["description"] = "" if "data_dependencies" not in meta: @@ -248,7 +253,7 @@ def write_narrative(self, ref, nb, cur_user): # Now we can save the Narrative object. try: ws_save_obj = { - "type": self.nar_type, + "type": NARRATIVE_TYPE, "data": nb, "objid": obj_id, "meta": nb["metadata"].copy(), @@ -530,9 +535,9 @@ def list_narratives(self, ws_id=None): for i in range(0, len(ws_ids), MAX_WORKSPACES): res += ws.list_objects( { - "ids": ws_ids[i : i + MAX_WORKSPACES], + "ids": ws_ids[i:i + MAX_WORKSPACES], "type": NARRATIVE_TYPE, - "includeMetadata": 1, + "includeMetadata": 1 } ) except ServerError as err: @@ -601,4 +606,4 @@ def narrative_writable(self, ref, user): if user in perms: return perms[user] == "w" or perms[user] == "a" else: - return False + return False \ No newline at end of file diff --git a/src/biokbase/narrative/tests/narrative_mock/mockclients.py b/src/biokbase/narrative/tests/narrative_mock/mockclients.py index 33d7a2e262..0cc56e7f6c 100644 --- a/src/biokbase/narrative/tests/narrative_mock/mockclients.py +++ b/src/biokbase/narrative/tests/narrative_mock/mockclients.py @@ -506,4 +506,4 @@ def list(self): "path2/file2", "omg/this/is/a/long/path/to/a/file", "filterme", - ] + ] \ No newline at end of file diff --git a/src/biokbase/narrative/tests/test_narrativeio.py b/src/biokbase/narrative/tests/test_narrativeio.py index 499c899860..8ef84487cf 100644 --- a/src/biokbase/narrative/tests/test_narrativeio.py +++ b/src/biokbase/narrative/tests/test_narrativeio.py @@ -4,10 +4,7 @@ """ import unittest from unittest.mock import patch -from biokbase.narrative.contents.narrativeio import ( - KBaseWSManagerMixin, - LIST_OBJECTS_FIELDS, -) +from biokbase.narrative.contents.narrativeio import KBaseWSManagerMixin, LIST_OBJECTS_FIELDS from biokbase.narrative.common.exceptions import WorkspaceError import biokbase.auth from tornado.web import HTTPError @@ -48,7 +45,7 @@ def skipUnlessToken(): def str_to_ref(s): - """Takes a ref string, returns a NarrativeRef object""" + """ Takes a ref string, returns a NarrativeRef object """ vals = s.split("/") ref = {"wsid": vals[0], "objid": vals[1]} if len(vals) == 3: @@ -526,9 +523,7 @@ def test_list_narrative_ws_valid_login(self): def test_list_narratives__no_ws_id__0_ws_ids(self): ws_ids = {"workspaces": [], "pub": []} - with patch.object( - MockClients, "list_workspace_ids", create=True, return_value=ws_ids - ): + with patch.object(MockClients, "list_workspace_ids", create=True, return_value=ws_ids): nar_l = self.mixin.list_narratives() self.assertEqual([], nar_l) @@ -538,9 +533,7 @@ def test_list_narratives__no_ws_id__0_ws_ids(self): def test_list_narratives__no_ws_id__9999_ws_ids(self): ws_ids = {"workspaces": list(range(9999)), "pub": []} - with patch.object( - MockClients, "list_workspace_ids", create=True, return_value=ws_ids - ): + with patch.object(MockClients, "list_workspace_ids", create=True, return_value=ws_ids): nar_l = self.mixin.list_narratives() self.assertEqual([get_exp_nar(i) for i in range(9999)], nar_l) @@ -550,9 +543,7 @@ def test_list_narratives__no_ws_id__9999_ws_ids(self): def test_list_narratives__no_ws_id__10000_ws_ids(self): ws_ids = {"workspaces": list(range(10000)), "pub": []} - with patch.object( - MockClients, "list_workspace_ids", create=True, return_value=ws_ids - ): + with patch.object(MockClients, "list_workspace_ids", create=True, return_value=ws_ids): nar_l = self.mixin.list_narratives() self.assertEqual([get_exp_nar(i) for i in range(10000)], nar_l) @@ -562,9 +553,7 @@ def test_list_narratives__no_ws_id__10000_ws_ids(self): def test_list_narratives__no_ws_id__10001_ws_ids(self): ws_ids = {"workspaces": list(range(10000)), "pub": [10000]} - with patch.object( - MockClients, "list_workspace_ids", create=True, return_value=ws_ids - ): + with patch.object(MockClients, "list_workspace_ids", create=True, return_value=ws_ids): nar_l = self.mixin.list_narratives() self.assertEqual([get_exp_nar(i) for i in range(10001)], nar_l) @@ -716,4 +705,4 @@ def test__validate_nar_type_fail(self): if __name__ == "__main__": - unittest.main() + unittest.main() \ No newline at end of file diff --git a/src/biokbase/narrative/tests/util.py b/src/biokbase/narrative/tests/util.py index b79fbedbec..abc6e458c1 100644 --- a/src/biokbase/narrative/tests/util.py +++ b/src/biokbase/narrative/tests/util.py @@ -80,7 +80,6 @@ def file_path(self, filename, from_root=False): else: return os.path.join(self._path_prefix, filename) - def fetch_narrative(nar_id, auth_token, url=ci_ws, file_name=None): """ Fetches a Narrative object with the given reference id (of the form ##/##). @@ -347,4 +346,4 @@ def validate_job_state(state: dict) -> None: if __name__ == "__main__": - unittest.main() + unittest.main() \ No newline at end of file diff --git a/src/biokbase/workspace/client.py b/src/biokbase/workspace/client.py index 84f857f251..008a4a1640 100644 --- a/src/biokbase/workspace/client.py +++ b/src/biokbase/workspace/client.py @@ -2968,9 +2968,8 @@ def list_workspace_ids(self, params, context=None): globally readable.) -> structure: parameter "workspaces" of list of Long, parameter "pub" of list of Long """ - return self._client.call_method( - "Workspace.list_workspace_ids", [params], self._service_ver, context - ) + return self._client.call_method('Workspace.list_workspace_ids', + [params], self._service_ver, context) def list_workspace_objects(self, params, context=None): """ @@ -5318,4 +5317,4 @@ def administer(self, command, context=None): def status(self, context=None): return self._client.call_method( "Workspace.status", [], self._service_ver, context - ) + ) \ No newline at end of file From d56e40eac58cafa3b9a620db09bcdba4d4a86172 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 19 Oct 2021 13:09:12 -0700 Subject: [PATCH 45/54] udpate release notes --- RELEASE_NOTES.md | 52 +++++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 896af6ef6d..45298453b2 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,31 +4,41 @@ The Narrative Interface allows users to craft KBase Narratives using a combinati This is built on the Jupyter Notebook v6.0.2 (more notes will follow). +### Unreleased + +- SCT-1315 - Fix KBaseSets generic set viewer; ported to preact initial, then React +- The above is the first utilization of React in the Narrative, and of npm-installed modules into the Narrative runtime + - added npm dependencies: react, react-dom, prop-types + - added support to copy umd-packaged modules from node_modules into the kbase extension static content during build + ### Version 4.5.1 + Code changes -- DATAUP-599 - Adjusted the kernel code and tests to account for a Workspace service update. + +- DATAUP-599 - Adjusted the kernel code and tests to account for a Workspace service update. Dependency Changes -- Python dependency updates - - pillow 8.3.1 -> 8.3.2 - - plotly 5.1.0 -> 5.3.1 - - pygments 2.9.0 -> 2.10.0 - - pytest 6.2.4 -> 6.2.5 - - terminado 0.10.1 -> 0.11.1 -- Javascript dependency updates - - @wdio/browserstack-service 7.9.1 -> 7.11.1 - - @wdio/cli 7.9.1 -> 7.11.1 - - @wdio/local-runner 7.9.1 -> 7.11.1 - - @wdio/mocha-framework 7.9.1 -> 7.11.1 - - @wdio/selenium-standalone-service 7.7.7 -> 7.10.1 - - @wdio/spec-reporter 7.9.0 -> 7.10.1 - - chromedriver 92.0.1 -> 92.0.2 - - husky 7.0.1 -> 7.0.2 - - jasmine-core 3.8.0 -> 3.9.0 - - msw 0.34.0 -> 0.35.0 - - puppeteer 10.1.0 -> 10.2.0 - - terser 5.7.1 -> 5.7.2 - - webdriverio 7.9.1 -> 7.11.1 + +- Python dependency updates + - pillow 8.3.1 -> 8.3.2 + - plotly 5.1.0 -> 5.3.1 + - pygments 2.9.0 -> 2.10.0 + - pytest 6.2.4 -> 6.2.5 + - terminado 0.10.1 -> 0.11.1 +- Javascript dependency updates + - @wdio/browserstack-service 7.9.1 -> 7.11.1 + - @wdio/cli 7.9.1 -> 7.11.1 + - @wdio/local-runner 7.9.1 -> 7.11.1 + - @wdio/mocha-framework 7.9.1 -> 7.11.1 + - @wdio/selenium-standalone-service 7.7.7 -> 7.10.1 + - @wdio/spec-reporter 7.9.0 -> 7.10.1 + - chromedriver 92.0.1 -> 92.0.2 + - husky 7.0.1 -> 7.0.2 + - jasmine-core 3.8.0 -> 3.9.0 + - msw 0.34.0 -> 0.35.0 + - puppeteer 10.1.0 -> 10.2.0 + - terser 5.7.1 -> 5.7.2 + - webdriverio 7.9.1 -> 7.11.1 ### Version 4.5.0 From 9ea17c4af5ca6ccfacfbad959dd48315d67ea45b Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 22 Oct 2021 16:23:56 -0700 Subject: [PATCH 46/54] styling --- .../KBaseSets/SetElements/SetElement.css | 15 +++++ .../function_output/KBaseSets/SetViewer.css | 2 +- .../KBaseSets/SetElementLoader.js | 9 ++- .../SetElements/AssemblySetViewer.js | 6 +- .../SetElements/ReadsAlignmentSetViewer.js | 6 +- .../function_output/KBaseSets/SetViewer.js | 66 +++++++------------ 6 files changed, 56 insertions(+), 48 deletions(-) create mode 100644 kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetElements/SetElement.css diff --git a/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetElements/SetElement.css b/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetElements/SetElement.css new file mode 100644 index 0000000000..9e2a1d0e20 --- /dev/null +++ b/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetElements/SetElement.css @@ -0,0 +1,15 @@ +table.SetElement tbody tr { + background: none; +} + +table.SetElement tbody tr th { + color: rgb(100 100 100); +} + +table.SetElement tbody tr:nth-child(odd) { + background: none; +} + +table.SetElement tbody tr:hover { + background: none; +} diff --git a/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetViewer.css b/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetViewer.css index 6b500cdf6a..22fb20a4e7 100644 --- a/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetViewer.css +++ b/kbase-extension/static/kbase/css/widgets/function_output/KBaseSets/SetViewer.css @@ -16,7 +16,7 @@ .KBaseSets-SetViewer .HeaderTable > .Row > .Col:nth-child(1) { font-weight: bold; color: rgba(100, 100, 100); - flex: 0 0 13em; + flex: 0 0 8em; } .KBaseSets-SetViewer .HeaderTable > .Row > .Col:nth-child(2) { diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js index 1a2116ee08..d70940935e 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElementLoader.js @@ -139,11 +139,16 @@ define([ renderLoaded() { return e(React.Fragment, null, - e('div', null, e('a', { href: `/#dataview/${this.state.objectInfo.ref}`, target: '_blank' }, this.state.objectInfo.ref)), e(this.state.module, { object: this.state.object.data, objectInfo: this.state.objectInfo - })); + }), + e('div', null, + e('a', { className: 'btn btn-default', href: `/#dataview/${this.state.objectInfo.ref}`, target: '_blank' }, + 'View this ', + e('i', null, this.state.objectInfo.typeName), + ' object')) + ); } renderState() { diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/AssemblySetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/AssemblySetViewer.js index 18163458a2..a369e866e7 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/AssemblySetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/AssemblySetViewer.js @@ -1,7 +1,9 @@ define([ 'react', 'prop-types', - 'bootstrap' + 'bootstrap', + + 'css!styles/widgets/function_output/KBaseSets/SetElements/SetElement.css' ], ( React, PropTypes, @@ -34,7 +36,7 @@ define([ } ]; return e('table', { - className: 'table table-bordered table-striped' + className: 'table table-bordered SetElement' }, e('tbody', null, rows.map(({ label, value }) => { return e('tr', { key: label }, diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer.js index 6a46778c07..c089fff1f7 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer.js @@ -1,7 +1,9 @@ define([ 'react', 'prop-types', - 'bootstrap' + 'bootstrap', + + 'css!styles/widgets/function_output/KBaseSets/SetElements/SetElement.css' ], ( React, PropTypes, @@ -89,7 +91,7 @@ define([ } ]; return e('table', { - className: 'table table-bordered table-striped' + className: 'table table-bordered SetElement' }, e('tbody', null, rows.map(({ label, value }) => { return e('tr', { key: label }, diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js index c75b6b15c8..b08e34af94 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js @@ -5,7 +5,7 @@ define([ // For effect 'bootstrap', - 'css!styles/widgets/function_output/KBaseSetsSetViewer.css' + 'css!styles/widgets/function_output/KBaseSets/SetViewer.css' ], ( React, PropTypes, @@ -28,7 +28,6 @@ define([ // NB assumes always have items. selectedItem: this.props.items[0] }; - } /** @@ -68,60 +67,45 @@ define([ } } - renderSelector() { - return [ + renderRow(label, content) { + return e('div', { + className: 'Row', + }, ...[ e('div', { className: 'Col', - }, 'Select alignment to view:'), + }, label), e('div', { - className: 'form-inline Col', - }, e('div', { className: 'form-group' }, e('select', { - onChange: this.selectItem.bind(this), - className: 'form-control' - }, this.props.items.map(({ label, ref, objectInfo }, index) => { - if (label) { - return e('option', { value: String(index), key: ref }, objectInfo.name, ' (', label, ')'); - } else { - return e('option', { value: String(index), key: ref }, objectInfo.name); - } - })) - )) - ]; + className: 'Col', + }, content) + ]); } renderHeader() { + const selector = e('select', { + onChange: this.selectItem.bind(this), + className: 'form-control' + }, this.props.items.map(({ label, ref, objectInfo }, index) => { + if (label) { + return e('option', { value: String(index), key: ref }, objectInfo.name, ' (', label, ')'); + } else { + return e('option', { value: String(index), key: ref }, objectInfo.name); + } + })); + + // NB the ...[] syntax is just to make eslint happier. return e('div', { className: 'HeaderTable', }, ...[ - e('div', { - className: 'Row', - }, ...[ - e('div', { - className: 'Col', - }, 'Description:'), - e('div', { - className: 'Col', - }, this.props.description) - ]), - e('div', { - className: 'Row', - }, ...[ - e('div', { - className: 'Col', - }, 'Alignment type:'), - e('div', { - className: 'Col', - }, this.renderItemType()) - ]), - e('div', { - className: 'Row', - }, ...this.renderSelector()), + this.renderRow('Description', this.props.description), + this.renderRow('Alignment Type', this.renderItemType()), + this.renderRow('Alignment', selector) ]); } renderNoItems() { return e('div', null, 'Sorry, no items'); } + render() { return e('div', { className: 'KBaseSets-SetViewer' From d1d796f670802103e13b51917a1651d82a97068f Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Fri, 22 Oct 2021 16:34:35 -0700 Subject: [PATCH 47/54] bootstrap select -> inline --- .../function_output/KBaseSets/SetViewer.js | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js index b08e34af94..61c4669ffb 100644 --- a/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js +++ b/kbase-extension/static/kbase/js/widgets/function_output/KBaseSets/SetViewer.js @@ -81,16 +81,20 @@ define([ } renderHeader() { - const selector = e('select', { - onChange: this.selectItem.bind(this), - className: 'form-control' - }, this.props.items.map(({ label, ref, objectInfo }, index) => { - if (label) { - return e('option', { value: String(index), key: ref }, objectInfo.name, ' (', label, ')'); - } else { - return e('option', { value: String(index), key: ref }, objectInfo.name); - } - })); + // All this boilerplate to is to get the select to auto-width in the official bootstrap way + // (rather than overriding styles) + const selector = e('form', { className: 'form-inline' }, + e('div', { className: 'form-group' }, + e('select', { + onChange: this.selectItem.bind(this), + className: 'form-control' + }, this.props.items.map(({ label, ref, objectInfo }, index) => { + if (label) { + return e('option', { value: String(index), key: ref }, objectInfo.name, ' (', label, ')'); + } else { + return e('option', { value: String(index), key: ref }, objectInfo.name); + } + })))); // NB the ...[] syntax is just to make eslint happier. return e('div', { From a690d54ab6e5389c15927428b75b10f238fee529 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Mon, 25 Oct 2021 15:25:40 -0700 Subject: [PATCH 48/54] add more information to "unknown error"; should never occur --- .../static/kbase/js/react_components/ErrorMessage.js | 2 +- test/unit/spec/react_components/ErrorMessage-spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kbase-extension/static/kbase/js/react_components/ErrorMessage.js b/kbase-extension/static/kbase/js/react_components/ErrorMessage.js index b2ffeb30e8..86f04b4933 100644 --- a/kbase-extension/static/kbase/js/react_components/ErrorMessage.js +++ b/kbase-extension/static/kbase/js/react_components/ErrorMessage.js @@ -32,7 +32,7 @@ define([ } else if (typeof error === 'string') { message = error; } else { - message = 'Unknown Error (incompatible type)'; + message = `Unknown Error (incompatible type ${typeof error})`; } return e('div', { diff --git a/test/unit/spec/react_components/ErrorMessage-spec.js b/test/unit/spec/react_components/ErrorMessage-spec.js index 30a299e296..ca9c916bde 100644 --- a/test/unit/spec/react_components/ErrorMessage-spec.js +++ b/test/unit/spec/react_components/ErrorMessage-spec.js @@ -67,7 +67,7 @@ define(['react_components/ErrorMessage', 'react', 'react-dom'], (ErrorMessage, R for (const unsupported of unsupportedTypes) { const el = createElement(ErrorMessage, { error: unsupported }); render(el, node); - expect(node.innerText).toContain('Unknown Error (incompatible type)'); + expect(node.innerText).toContain(`Unknown Error (incompatible type ${typeof unsupported})`); } }); From d2c482ce7aa4980747864b9817592a4446611011 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 26 Oct 2021 06:40:07 -0700 Subject: [PATCH 49/54] sync from origin, add back in what we need --- kbase-extension/static/narrative_paths.js | 15 +- package-lock.json | 1376 ++++----------------- package.json | 28 +- 3 files changed, 238 insertions(+), 1181 deletions(-) diff --git a/kbase-extension/static/narrative_paths.js b/kbase-extension/static/narrative_paths.js index a417f5384e..7d92e6ab19 100644 --- a/kbase-extension/static/narrative_paths.js +++ b/kbase-extension/static/narrative_paths.js @@ -381,12 +381,19 @@ require.config({ 'code-cell': 'kbase/js/widgets/function_output/codeCellLauncher', /* - React components - */ - + To support React components + */ react: 'ext_modules/react/react.development', 'react-dom': 'ext_modules/react-dom/react-dom.development', 'prop-types': 'ext_modules/prop-types/prop-types', + + /* + A home for shared React components + Note that we do not map individual react component modules; + by rooting at a directory when loading a module, that module + may use relative path module references, which is very handy + for loading isolated subcomponents, css files, and the like. + */ react_components: 'kbase/js/react_components', /*** @@ -536,4 +543,4 @@ require.config({ deps: ['jquery', 'css!bootstrap-slider-css'] } }, -}); +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cb0340dbe9..1b23247282 100644 --- a/package-lock.json +++ b/package-lock.json @@ -295,6 +295,25 @@ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", "dev": true }, + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", + "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", + "dev": true, + "requires": { + "core-js-pure": "^3.16.0", + "regenerator-runtime": "^0.13.4" + } + }, "@babel/template": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", @@ -483,25 +502,6 @@ "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", "dev": true }, - "@stylelint/postcss-css-in-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", - "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", - "dev": true, - "requires": { - "@babel/core": ">=7.9.0" - } - }, - "@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "dev": true, - "requires": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - } - }, "@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -587,13 +587,30 @@ "dev": true }, "@types/inquirer": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", - "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", "dev": true, "requires": { "@types/through": "*", - "rxjs": "^7.2.0" + "rxjs": "^6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "@types/istanbul-lib-coverage": { @@ -668,21 +685,6 @@ "@types/lodash": "*" } }, - "@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dev": true, - "requires": { - "@types/unist": "*" - } - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, "@types/mocha": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", @@ -695,12 +697,6 @@ "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", "dev": true }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, "@types/object-inspect": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@types/object-inspect/-/object-inspect-1.8.1.tgz", @@ -788,12 +784,6 @@ "@types/node": "*" } }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true - }, "@types/which": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz", @@ -832,17 +822,17 @@ "dev": true }, "@wdio/browserstack-service": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/browserstack-service/-/browserstack-service-7.14.1.tgz", - "integrity": "sha512-4MXOZN5rs+pOsOJ5JrYAGeKmi6zN8B2+ZZXCtC9C91JQSzgOtXVK0iseZeBLxLIKkNG/nPjTeFuNRkx8Si5Mhg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@wdio/browserstack-service/-/browserstack-service-7.11.1.tgz", + "integrity": "sha512-TC2g6Kor15uwBKvupD2GGyT3QZnYS2sQ8MSl5YZacrWXgGvYdp7JADS/gQrTVy4beH1MrN8Ae8KnalLCh/D2GQ==", "dev": true, "requires": { "@types/node": "^15.12.5", "@wdio/logger": "7.7.0", - "@wdio/types": "7.14.1", + "@wdio/types": "7.10.1", "browserstack-local": "^1.4.5", "got": "^11.0.2", - "webdriverio": "7.14.1" + "webdriverio": "7.11.1" }, "dependencies": { "@types/node": { @@ -854,36 +844,36 @@ } }, "@wdio/cli": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.14.1.tgz", - "integrity": "sha512-ydFsNlimP9W77NXRAYCn8xVtnS7/08UcaQT0iH0iCaaw+h9JJH4IIFhzIcPojG78g1ojEfBsQOqvD54elJpwzw==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.11.1.tgz", + "integrity": "sha512-CGFX7vy5U9i9ccsUNmcOv+LzFaoKNFPr1+mopELld/b0wUVN9yM70jfgmUMjpHQnAMl3lqxIjBQuDrxE8/qTEw==", "dev": true, "requires": { "@types/ejs": "^3.0.5", "@types/fs-extra": "^9.0.4", - "@types/inquirer": "^8.1.2", + "@types/inquirer": "^7.3.1", "@types/lodash.flattendeep": "^4.4.6", "@types/lodash.pickby": "^4.6.6", "@types/lodash.union": "^4.6.6", "@types/node": "^15.12.5", "@types/recursive-readdir": "^2.2.0", - "@wdio/config": "7.14.1", + "@wdio/config": "7.10.1", "@wdio/logger": "7.7.0", - "@wdio/types": "7.14.1", - "@wdio/utils": "7.14.1", + "@wdio/types": "7.10.1", + "@wdio/utils": "7.11.0", "async-exit-hook": "^2.0.1", "chalk": "^4.0.0", "chokidar": "^3.0.0", "cli-spinners": "^2.1.0", "ejs": "^3.0.1", "fs-extra": "^10.0.0", - "inquirer": "8.1.5", + "inquirer": "^8.0.0", "lodash.flattendeep": "^4.4.0", "lodash.pickby": "^4.6.0", "lodash.union": "^4.6.0", "mkdirp": "^1.0.4", "recursive-readdir": "^2.2.2", - "webdriverio": "7.14.1", + "webdriverio": "7.11.1", "yargs": "^17.0.0", "yarn-install": "^1.0.0" }, @@ -903,28 +893,28 @@ } }, "@wdio/config": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.14.1.tgz", - "integrity": "sha512-Moa5ea/0so50OX+xm4sX9ty9vbVcIowSnm/SINayzg+waAAVbjHi10hZke8TaTsQ/kmZGeJv6Qjq8PTOZeaNCw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.10.1.tgz", + "integrity": "sha512-EA+kJBNPeIxkkyilHcmiIwqjtOUcWx5FVp69kSBs4BN2fG+6CgpzoVecuTm/qPU6D0DT5KIfxVR4FRHCF99F/g==", "dev": true, "requires": { "@wdio/logger": "7.7.0", - "@wdio/types": "7.14.1", + "@wdio/types": "7.10.1", "deepmerge": "^4.0.0", "glob": "^7.1.2" } }, "@wdio/local-runner": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.14.1.tgz", - "integrity": "sha512-q/BXKN5hld1MpcABGTkurVKuNWy5GJNJvMamt0Fi5SLFDrTtndxaKFw9aciJiDqkJGCREVjYOOdMnsY+UmMKdg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.11.1.tgz", + "integrity": "sha512-aoRQg46RMfNdFCVqtHDYhIyhLoeXyOHLLv7Teyp+FJuqVNtpQT2eZACf8sZL2IfF7ZBP6JtvoV/MJ7sMXpOV2A==", "dev": true, "requires": { "@types/stream-buffers": "^3.0.3", "@wdio/logger": "7.7.0", - "@wdio/repl": "7.14.1", - "@wdio/runner": "7.14.1", - "@wdio/types": "7.14.1", + "@wdio/repl": "7.11.0", + "@wdio/runner": "7.11.1", + "@wdio/types": "7.10.1", "async-exit-hook": "^2.0.1", "split2": "^3.2.2", "stream-buffers": "^3.0.2" @@ -943,45 +933,45 @@ } }, "@wdio/mocha-framework": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.14.1.tgz", - "integrity": "sha512-VoFt8ziAH1KHDR7vKan0tT2I3new0Y/mU284nR/zHfUJyxrqi9P6pff6Y9wVTyjHYHsJfWstwk2v9wPKNUn6pQ==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.11.1.tgz", + "integrity": "sha512-66P2eTOso9W9Y0IMzhHmYZ98bfBDIkwswqJzGCrAbhuFpvOnqboF8wlrfUUADJ3b2rIVmsw02FCECNPS2EnQyQ==", "dev": true, "requires": { "@types/mocha": "^9.0.0", "@wdio/logger": "7.7.0", - "@wdio/types": "7.14.1", - "@wdio/utils": "7.14.1", + "@wdio/types": "7.10.1", + "@wdio/utils": "7.11.0", "expect-webdriverio": "^3.0.0", "mocha": "^9.0.0" } }, "@wdio/protocols": { - "version": "7.13.2", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.13.2.tgz", - "integrity": "sha512-GUbYbV2IjPlPhlz457nMD6C0GA9yPfVtZQAwgqaKXf9yR2cuNGHHkidWivfXJNG3zws2uFm/9I1+K9OaYIKVkQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.11.0.tgz", + "integrity": "sha512-yWKmCUmbHB1AH0U3lebXRh/G3+JtsD9Tx9fevgP9qA7Hq+rHj7KqUf15k1lPPodhOms8ncPj0J6ET1E13wh2qg==", "dev": true }, "@wdio/repl": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.14.1.tgz", - "integrity": "sha512-nD1RVihoEZaQ71eMyiPWMVUct40Wf8cp9Q6PZVn4MlIatRqB+X26C98qw6Bcjzfz72nEcmfkbN3tZpf9pY4saw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.11.0.tgz", + "integrity": "sha512-2GtWkUqepQ0QGvdo7fLWiZklf/O4eh3AB4vcafwGVKQhE8bpSh0l8/fkXOzYU7oK/PBGHJyWXxPOVf+H5DAViA==", "dev": true, "requires": { - "@wdio/utils": "7.14.1" + "@wdio/utils": "7.11.0" } }, "@wdio/reporter": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-7.14.1.tgz", - "integrity": "sha512-x/rV+aTTYf0Kj4Ti/6Yq/XEiA9k3StM6EnkMhaA3S/J6TeuQ8ZHZf6T4Lu/Izafg8F25ky0yH98HxZi2b2Fw1g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-7.10.1.tgz", + "integrity": "sha512-zgyHQc6j+GzlOnwlu3yhCQ8yAaTfo0MpNQG1GCiqtSKJ2c50J2HR5d9LYWrM7L8v13X4YWMxhW+3oYT+f35Gjw==", "dev": true, "requires": { "@types/diff": "^5.0.0", "@types/node": "^15.12.5", "@types/object-inspect": "^1.8.0", "@types/supports-color": "^8.1.0", - "@wdio/types": "7.14.1", + "@wdio/types": "7.10.1", "diff": "^5.0.0", "fs-extra": "^10.0.0", "object-inspect": "^1.10.3", @@ -1006,33 +996,33 @@ } }, "@wdio/runner": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.14.1.tgz", - "integrity": "sha512-wMnv4yQX24/kcINUPq+OcGWAlCL5NldMi45zzt2iOuCeMNEv/Scchahr0gNZ1Mc0zubyCGDzrERYsYHmYAK3Dw==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.11.1.tgz", + "integrity": "sha512-mPKqdpk/WTwpwlCg84J/Y+6ZURUSZ8jrSoBpCVsvs9NesdIkHtxLfvlA2btmXXRw5Al7VBtN/FFCBFBp5db+1Q==", "dev": true, "requires": { - "@wdio/config": "7.14.1", + "@wdio/config": "7.10.1", "@wdio/logger": "7.7.0", - "@wdio/types": "7.14.1", - "@wdio/utils": "7.14.1", + "@wdio/types": "7.10.1", + "@wdio/utils": "7.11.0", "deepmerge": "^4.0.0", "gaze": "^1.1.2", - "webdriver": "7.14.1", - "webdriverio": "7.14.1" + "webdriver": "7.11.0", + "webdriverio": "7.11.1" } }, "@wdio/selenium-standalone-service": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-7.14.1.tgz", - "integrity": "sha512-jciVimPFTopX/bnkU+8xPJGKFfOsqByLvXgTwJwc8jxHmK6MfkIHH8BO2Mij6FhycHvg17dH4panASDk6m10TA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-7.10.1.tgz", + "integrity": "sha512-25J1iqNpEdqhnNe6B016Mm5+38F8WTfZ5eIRttjLSACdtsWtW2DGgMMeWvwunqNSzhfK8S6jDZ+s2nOvg+gD6A==", "dev": true, "requires": { "@types/fs-extra": "^9.0.1", "@types/node": "^15.12.5", "@types/selenium-standalone": "^7.0.0", - "@wdio/config": "7.14.1", + "@wdio/config": "7.10.1", "@wdio/logger": "7.7.0", - "@wdio/types": "7.14.1", + "@wdio/types": "7.10.1", "fs-extra": "^10.0.0", "selenium-standalone": "^7.0.1" }, @@ -1046,23 +1036,23 @@ } }, "@wdio/spec-reporter": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-7.14.1.tgz", - "integrity": "sha512-vViWdv2ExsgyN04QZ0w+Kj1Qi03/WR2kriOJCrGmCVZFXpZKFFOscf6irLeGL6zMRy6k86mf+AwFxV6PZB9K/w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-7.10.1.tgz", + "integrity": "sha512-Yo/XvBY3OkOhs3m32KcbeilJowVO4Ii0ZeNtn4KPPV6Z4pYglV8vYdTDJ/BIinuBBJWJPbS6EFLZtrsaSuuFYg==", "dev": true, "requires": { "@types/easy-table": "^0.0.33", - "@wdio/reporter": "7.14.1", - "@wdio/types": "7.14.1", + "@wdio/reporter": "7.10.1", + "@wdio/types": "7.10.1", "chalk": "^4.0.0", "easy-table": "^1.1.1", "pretty-ms": "^7.0.0" } }, "@wdio/types": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.14.1.tgz", - "integrity": "sha512-W1ctBarjFuLz7wub6wNFd3sWfaENf1+thQL2YQW/cgFuTvhyK5hhUPoP2Q1suXBDE+qs90wWwx4z8XwDC6S8OA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.10.1.tgz", + "integrity": "sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==", "dev": true, "requires": { "@types/node": "^15.12.5", @@ -1078,13 +1068,13 @@ } }, "@wdio/utils": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.14.1.tgz", - "integrity": "sha512-2LMjTiCccohUKGaHWpodIz9eF+5HApT4NVFJjWYqGQFAUrLaBrSocie7NW5+moYolY5dESYSNVB6qJlSdMbQlA==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.11.0.tgz", + "integrity": "sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==", "dev": true, "requires": { "@wdio/logger": "7.7.0", - "@wdio/types": "7.14.1", + "@wdio/types": "7.10.1", "p-iteration": "^1.1.8" } }, @@ -1277,10 +1267,14 @@ "dev": true }, "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } }, "array-each": { "version": "1.0.1", @@ -1300,12 +1294,6 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -1336,29 +1324,6 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - } - } - }, "axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -1368,12 +1333,6 @@ "follow-redirects": "^1.14.0" } }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1666,24 +1625,6 @@ "supports-color": "^7.1.0" } }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true - }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -1849,23 +1790,6 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, - "clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "requires": { - "is-regexp": "^2.0.0" - }, - "dependencies": { - "is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true - } - } - }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -1891,9 +1815,9 @@ "dev": true }, "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "colors": { @@ -1982,6 +1906,12 @@ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", "dev": true }, + "core-js-pure": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.0.tgz", + "integrity": "sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ==", + "dev": true + }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -2084,12 +2014,6 @@ "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=", "dev": true }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", @@ -2133,24 +2057,6 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - } - } - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -2244,17 +2150,17 @@ "dev": true }, "devtools": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.14.1.tgz", - "integrity": "sha512-NpGjos9SMOZeDXnlmxKBVrbxJuPqFgLDUX/g9IlMtsjUKFq+ePcDNxTr1gRLax+boinc5UoFYPEpeFUKbBzR4Q==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.11.0.tgz", + "integrity": "sha512-V3mIskCVv+OrqgJf9EU4bvoOrEx+qQ+sNoyLxqzxkFgh0wwtYIhcMiqDluL8dBKlhToV16UsYDKoqa67ylNwOg==", "dev": true, "requires": { "@types/node": "^15.12.5", - "@wdio/config": "7.14.1", + "@wdio/config": "7.10.1", "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.13.2", - "@wdio/types": "7.14.1", - "@wdio/utils": "7.14.1", + "@wdio/protocols": "7.11.0", + "@wdio/types": "7.10.1", + "@wdio/utils": "7.11.0", "chrome-launcher": "^0.14.0", "edge-paths": "^2.1.0", "puppeteer-core": "^10.1.0", @@ -2272,9 +2178,9 @@ } }, "devtools-protocol": { - "version": "0.0.927104", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.927104.tgz", - "integrity": "sha512-5jfffjSuTOv0Lz53wTNNTcCUV8rv7d82AhYcapj28bC2B5tDxEZzVb7k51cNxZP2KHw24QE+sW7ZuSeD9NfMpA==", + "version": "0.0.915197", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.915197.tgz", + "integrity": "sha512-JXt4akUoL62CtxKLQBxcJlI7gsCZyAQ1Qb/0MZJOz8VETazoJB6+IjUwTkECrvye9AnNLDQyyV00kz/vWXVifQ==", "dev": true }, "di": { @@ -2333,55 +2239,6 @@ "void-elements": "^2.0.0" } }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -2489,12 +2346,6 @@ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2931,15 +2782,6 @@ } } }, - "execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "requires": { - "clone-regexp": "^2.1.0" - } - }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -3070,12 +2912,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -3381,12 +3217,6 @@ "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -3493,12 +3323,6 @@ "slash": "^3.0.0" } }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, "globule": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", @@ -3510,15 +3334,6 @@ "minimatch": "~3.0.2" } }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "got": { "version": "11.8.2", "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", @@ -3753,12 +3568,6 @@ "integrity": "sha1-SXO+vVSjF8tjCWSsKMmxcTAighw=", "dev": true }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3851,26 +3660,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -3978,12 +3767,6 @@ "resolve-from": "^4.0.0" } }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -4073,22 +3856,6 @@ "is-windows": "^1.0.1" } }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -4123,12 +3890,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -4153,12 +3914,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true - }, "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -4186,12 +3941,6 @@ "is-extglob": "^2.1.1" } }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true - }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -4331,12 +4080,6 @@ "has-symbols": "^1.0.2" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -5044,12 +4787,6 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "known-css-properties": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", - "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", - "dev": true - }, "ky": { "version": "0.28.6", "resolved": "https://registry.npmjs.org/ky/-/ky-0.28.6.tgz", @@ -5165,41 +4902,32 @@ "dev": true }, "lint-staged": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.0.tgz", - "integrity": "sha512-0KIcRuO4HQS2Su7qWtjrfTXgSklvyIb9Fk9qVWRZkGHa5S81Vj6WBbs+ogQBvHUwLJYq1eQ4R+H82GSak4OM7w==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", + "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", "dev": true, "requires": { - "cli-truncate": "2.1.0", - "colorette": "^1.4.0", - "commander": "^8.2.0", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", + "chalk": "^4.1.1", + "cli-truncate": "^2.1.0", + "commander": "^7.2.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.3.1", "enquirer": "^2.3.6", - "execa": "^5.1.1", - "listr2": "^3.12.2", + "execa": "^5.0.0", + "listr2": "^3.8.2", + "log-symbols": "^4.1.0", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", - "stringify-object": "3.3.0", - "supports-color": "8.1.1" + "stringify-object": "^3.3.0" }, "dependencies": { "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -5218,12 +4946,6 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -5415,12 +5137,6 @@ "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", "dev": true }, - "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -5505,45 +5221,6 @@ "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", "dev": true }, - "mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true - }, - "mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - } - }, - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5574,189 +5251,6 @@ } } }, - "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@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" - } - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5769,16 +5263,6 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, - "micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -5822,12 +5306,6 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -5843,25 +5321,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - } - } - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -6126,18 +5585,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "dev": true - }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -6153,12 +5600,6 @@ "path-key": "^3.0.0" } }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6384,20 +5825,6 @@ "callsites": "^3.0.0" } }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, "parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -6552,104 +5979,6 @@ "semver-compare": "^1.0.0" } }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - } - } - }, - "postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "dev": true, - "requires": { - "htmlparser2": "^3.10.0" - } - }, - "postcss-less": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - } - }, - "postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", - "dev": true - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "dev": true - }, - "postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-sass": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - } - }, - "postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "requires": { - "postcss": "^7.0.6" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -6657,9 +5986,9 @@ "dev": true }, "prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true }, "pretty-format": { @@ -7070,23 +6399,11 @@ "minimatch": "3.0.4" } }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } - } + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true }, "regexpp": { "version": "3.2.0", @@ -7094,35 +6411,6 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dev": true, - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - } - }, - "remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dev": true, - "requires": { - "mdast-util-from-markdown": "^0.8.0" - } - }, - "remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dev": true, - "requires": { - "mdast-util-to-markdown": "^0.6.0" - } - }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -7276,6 +6564,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, "scheduler": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", @@ -7340,33 +6634,24 @@ } }, "selenium-webdriver": { - "version": "4.0.0-rc-2", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-rc-2.tgz", - "integrity": "sha512-HT974l00r7wdZL+SPS0f8lBLVYe/aKGAFONMvVroL7z9mHm3PC30IirsYqrvSkw51Pom3XJiN5gjXBRkxuHAdw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { - "jszip": "^3.6.0", - "rimraf": "^3.0.2", - "tmp": "^0.2.1", - "ws": ">=7.4.6" + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" }, "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dev": true, "requires": { - "rimraf": "^3.0.0" + "os-tmpdir": "~1.0.1" } } } @@ -7550,12 +6835,6 @@ "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, - "specificity": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", - "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", - "dev": true - }, "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", @@ -7773,156 +7052,18 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "dev": true - }, - "stylelint": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", - "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", - "dev": true, - "requires": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", - "balanced-match": "^2.0.0", - "chalk": "^4.1.1", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "execall": "^2.0.0", - "fast-glob": "^3.2.5", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.0.3", - "globjoin": "^0.1.4", - "html-tags": "^3.1.0", - "ignore": "^5.1.8", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "known-css-properties": "^0.21.0", - "lodash": "^4.17.21", - "log-symbols": "^4.1.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.4", - "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.5", - "postcss-syntax": "^0.36.2", - "postcss-value-parser": "^4.1.0", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "specificity": "^0.4.1", - "string-width": "^4.2.2", - "strip-ansi": "^6.0.0", - "style-search": "^0.1.0", - "sugarss": "^2.0.0", - "svg-tags": "^1.0.0", - "table": "^6.6.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^3.0.3" - }, - "dependencies": { - "balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "stylelint-config-recommended": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", - "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", - "dev": true - }, - "stylelint-config-standard": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-22.0.0.tgz", - "integrity": "sha512-uQVNi87SHjqTm8+4NIP5NMAyY/arXrBgimaaT7skvRfE9u3JKXRK9KBkbr4pVmeciuCcs64kAdjlxfq6Rur7Hw==", - "dev": true, - "requires": { - "stylelint-config-recommended": "^5.0.0" - } - }, "suffix": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/suffix/-/suffix-0.1.1.tgz", "integrity": "sha1-zFgjFkag7xEC95R47zqSSP2chC8=", "dev": true }, - "sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7932,12 +7073,6 @@ "has-flag": "^4.0.0" } }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, "table": { "version": "6.7.2", "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", @@ -8034,14 +7169,14 @@ } }, "terser": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", - "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", + "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.20" + "source-map-support": "~0.5.19" }, "dependencies": { "commander": { @@ -8110,18 +7245,6 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true - }, "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", @@ -8159,15 +7282,6 @@ "mime-types": "~2.1.24" } }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "ua-parser-js": { "version": "0.7.30", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.30.tgz", @@ -8212,44 +7326,6 @@ "util-deprecate": "^1.0.2" } }, - "unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "dev": true, - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - } - }, - "unist-util-find-all-after": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "dev": true, - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "requires": { - "@types/unist": "^2.0.2" - } - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -8320,28 +7396,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - } - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -8358,9 +7412,9 @@ } }, "wdio-chromedriver-service": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.2.tgz", - "integrity": "sha512-fj1R6yTgcr52g1wANdBc1KH+aXjazN81WhweAc1Y6Cfm1KVehSDbrVj2BJImU+6R/7sQKRX6fqtuA4Nsc0HUXQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.0.tgz", + "integrity": "sha512-0N/mEE0Bk/aoc7YZNwS5sbzzGrPWb7Lo4nA+t/bF9BwQRAokeHl/70vD2JKe/D4Wo05J2X0C1RxRS7e4iwW6KQ==", "dev": true, "requires": { "@wdio/logger": "^7.5.3", @@ -8383,17 +7437,17 @@ } }, "webdriver": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.14.1.tgz", - "integrity": "sha512-YhnuVquRQBVDO4seFDSpKsT5VFTpNTK7YZIPB6MwDBsIiiXA5Lt8QJN4kBuE6zuHmRuGRFv1y1dONCxsumEtXQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.11.0.tgz", + "integrity": "sha512-Sd4n3Hxz/6WDa4Ay8cJj/ICDbf2ndlAzd7NMj+dmhfDsDF7L77eCZYB8zrrxs2hoK63E54eyKzyycK3BB3WoYQ==", "dev": true, "requires": { "@types/node": "^15.12.5", - "@wdio/config": "7.14.1", + "@wdio/config": "7.10.1", "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.13.2", - "@wdio/types": "7.14.1", - "@wdio/utils": "7.14.1", + "@wdio/protocols": "7.11.0", + "@wdio/types": "7.10.1", + "@wdio/utils": "7.11.0", "got": "^11.0.2", "ky": "^0.28.5", "lodash.merge": "^4.6.1" @@ -8408,26 +7462,26 @@ } }, "webdriverio": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.14.1.tgz", - "integrity": "sha512-LE3YbEkzqqpCt2lN4JIYSpfv1mOXUk2SCglUXHD1O/uNY/Z1hUM5iL0X7tW0Wg5QKvH5YYJ/YPmtqza1OrtNAg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.11.1.tgz", + "integrity": "sha512-N796qZIqkfIJJtSNBcAimnVr3SrnEjbwjYSBqAhVdGSidUKb1k6bxjC223WFwpANGkxABJUrVkx+qGNOtc+yGg==", "dev": true, "requires": { "@types/aria-query": "^4.2.1", "@types/node": "^15.12.5", - "@wdio/config": "7.14.1", + "@wdio/config": "7.10.1", "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.13.2", - "@wdio/repl": "7.14.1", - "@wdio/types": "7.14.1", - "@wdio/utils": "7.14.1", + "@wdio/protocols": "7.11.0", + "@wdio/repl": "7.11.0", + "@wdio/types": "7.10.1", + "@wdio/utils": "7.11.0", "archiver": "^5.0.0", - "aria-query": "^5.0.0", + "aria-query": "^4.2.2", "atob": "^2.1.2", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools": "7.14.1", - "devtools-protocol": "^0.0.927104", + "devtools": "7.11.0", + "devtools-protocol": "^0.0.915197", "fs-extra": "^10.0.0", "get-port": "^5.1.1", "grapheme-splitter": "^1.0.2", @@ -8441,7 +7495,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^8.0.0", - "webdriver": "7.14.1" + "webdriver": "7.11.0" }, "dependencies": { "@types/node": { @@ -8503,24 +7557,28 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -8665,12 +7723,6 @@ "compress-commons": "^4.1.0", "readable-stream": "^3.6.0" } - }, - "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true } } } diff --git a/package.json b/package.json index 57435676f5..b8e69d4242 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,12 @@ "repository": "github.com/kbase/narrative", "devDependencies": { "@types/puppeteer": "5.4.4", - "@wdio/browserstack-service": "7.14.1", - "@wdio/cli": "7.14.1", - "@wdio/local-runner": "7.14.1", - "@wdio/mocha-framework": "7.14.1", - "@wdio/selenium-standalone-service": "7.14.1", - "@wdio/spec-reporter": "7.14.1", + "@wdio/browserstack-service": "7.11.1", + "@wdio/cli": "7.11.1", + "@wdio/local-runner": "7.11.1", + "@wdio/mocha-framework": "7.11.1", + "@wdio/selenium-standalone-service": "7.10.1", + "@wdio/spec-reporter": "7.10.1", "bower": "1.8.12", "chrome-launcher": "0.14.1", "chromedriver": "93.0.1", @@ -41,23 +41,21 @@ "karma-mocha-reporter": "2.2.5", "karma-requirejs": "1.1.0", "karma-safari-launcher": "1.0.0", - "lint-staged": "11.2.0", + "lint-staged": "11.1.2", "msw": "0.35.0", - "prettier": "2.4.1", + "prettier": "2.3.2", "prop-types": "15.7.2", "puppeteer": "10.4.0", "requirejs": "2.3.6", "react": "16.14.0", "react-dom": "16.14.0", "selenium-standalone": "7.1.0", - "selenium-webdriver": "4.0.0-rc-2", + "selenium-webdriver": "3.6.0", "string.prototype.endswith": "1.0.0", "string.prototype.startswith": "1.0.0", - "stylelint": "13.13.1", - "stylelint-config-standard": "22.0.0", - "terser": "5.9.0", - "wdio-chromedriver-service": "7.2.2", - "webdriverio": "7.14.1" + "terser": "5.7.2", + "wdio-chromedriver-service": "7.2.0", + "webdriverio": "7.11.1" }, "browserslist": [ "defaults" @@ -89,7 +87,7 @@ "test": "karma start test/unit/karma.conf.js", "uglify": "terser kbase-extension/static/kbase-narrative.js -c --source-map --output kbase-extension/static/kbase-narrative-min.js", "prepare": "husky install", - "copy-node-modules-to-ext-modules": "node scripts/copy-node-modules-to-ext-modules.js" + "install-npm": "node scripts/install-npm.js" }, "lint-staged": { "*.js": [ From b07e84d95d892427556d07b8b659d2c85cd21654 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Tue, 26 Oct 2021 06:42:10 -0700 Subject: [PATCH 50/54] catch up dependencies post-merge; I don't trust package.json post merge and esp post merge-conflict resolution, and there are some out of date packages to boot. --- package-lock.json | 1903 +++++++++++++++++++++++++++++++++++++-------- package.json | 38 +- 2 files changed, 1580 insertions(+), 361 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1b23247282..3ab1c0292c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -295,25 +295,6 @@ "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", "dev": true }, - "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", - "dev": true, - "requires": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - } - }, "@babel/template": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", @@ -518,9 +499,9 @@ "dev": true }, "@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-P+dkdFu0n08PDIvw+9nT9ByQnd+Udc8DaWPb9HKfaPwCvWvQpC5XaMRx2xLWECm9x1VKNps6vEAlirjA6+uNrQ==", "dev": true }, "@types/cacheable-request": { @@ -587,30 +568,13 @@ "dev": true }, "@types/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", + "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", "dev": true, "requires": { "@types/through": "*", - "rxjs": "^6.4.0" - }, - "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "rxjs": "^7.2.0" } }, "@types/istanbul-lib-coverage": { @@ -685,6 +649,12 @@ "@types/lodash": "*" } }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, "@types/mocha": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", @@ -697,6 +667,12 @@ "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", "dev": true }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "@types/object-inspect": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@types/object-inspect/-/object-inspect-1.8.1.tgz", @@ -784,6 +760,18 @@ "@types/node": "*" } }, + "@types/tmp": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.2.tgz", + "integrity": "sha512-MhSa0yylXtVMsyT8qFpHA1DLHj4DvQGH5ntxrhHSh8PxUVNi35Wk+P5hVgqbO2qZqOotqr9jaoPRL+iRjWYm/A==", + "dev": true + }, + "@types/ua-parser-js": { + "version": "0.7.36", + "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz", + "integrity": "sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==", + "dev": true + }, "@types/which": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz", @@ -822,66 +810,312 @@ "dev": true }, "@wdio/browserstack-service": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/browserstack-service/-/browserstack-service-7.11.1.tgz", - "integrity": "sha512-TC2g6Kor15uwBKvupD2GGyT3QZnYS2sQ8MSl5YZacrWXgGvYdp7JADS/gQrTVy4beH1MrN8Ae8KnalLCh/D2GQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/browserstack-service/-/browserstack-service-7.16.3.tgz", + "integrity": "sha512-/SB2GVLH2Un/l4EUzwkjUbtV+6bPeJ2O4s9NWfShcDFZFZhPVLKa+uJW/oJgx9r2+xRISvhRn5twva5Z67frZw==", "dev": true, "requires": { - "@types/node": "^15.12.5", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@types/node": "^16.11.1", + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", "browserstack-local": "^1.4.5", "got": "^11.0.2", - "webdriverio": "7.11.1" + "webdriverio": "7.16.3" }, "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "@types/aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-P+dkdFu0n08PDIvw+9nT9ByQnd+Udc8DaWPb9HKfaPwCvWvQpC5XaMRx2xLWECm9x1VKNps6vEAlirjA6+uNrQ==", + "dev": true + }, + "@wdio/config": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.16.3.tgz", + "integrity": "sha512-YbpeZAeEncyJrsKxfAwjhNbDUf/ZrMB2Io3PYnH3RQjEEo5lYlO15aUt9uJx09W5h8hBPcrj7CfUC5yNkFZJhw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "deepmerge": "^4.0.0", + "glob": "^7.1.2" + } + }, + "@wdio/logger": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.16.0.tgz", + "integrity": "sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + } + }, + "@wdio/protocols": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.16.1.tgz", + "integrity": "sha512-Bxfqak67+/d/1c2c/eHWmVw5xAKhDU+5Ekqpka5Kt1VmW8Se7w9rFligrU0LrrgY9zzhYfVAL4sYkHfDPCOWbA==", + "dev": true + }, + "@wdio/repl": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.16.3.tgz", + "integrity": "sha512-aFpWyAIuPo6VVmkotZDWXMzd4qw3gD+xAhB6blNrMCZKWnz9+HqZnuGGc6pmiyuc5yFzb9wF22tnIxuyTyH7yA==", + "dev": true, + "requires": { + "@wdio/utils": "7.16.3" + } + }, + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } + }, + "@wdio/utils": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.16.3.tgz", + "integrity": "sha512-/662h5Z7B5TejHN6GiW96PAKuTPi/xcAGmtjA9ozRBI2/0eHSccDfNEaBgTTjLqqEgGAXylHcOuxHOrKx2ddJw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "p-iteration": "^1.1.8" + } + }, + "aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", "dev": true + }, + "devtools": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.16.3.tgz", + "integrity": "sha512-mRs1d1y9fT/hen/tGVj0bbgatgkaAsfrDOG2VECL/sKRYlP4An18W8BdSU1wXe+4dUC322VxrtScXfRL2bsb1g==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "@types/ua-parser-js": "^0.7.33", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "chrome-launcher": "^0.14.0", + "edge-paths": "^2.1.0", + "puppeteer-core": "^10.1.0", + "query-selector-shadow-dom": "^1.0.0", + "ua-parser-js": "^1.0.1", + "uuid": "^8.0.0" + } + }, + "devtools-protocol": { + "version": "0.0.933220", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.933220.tgz", + "integrity": "sha512-6BHFljAlcA4jG2L6gMJfyQLnIrtftCZkZL7AZC7SBTlnda4yN5TqFtd/ZcqvcFS5VHkrc7QZGT/VGWCmeeiHAg==", + "dev": true + }, + "ua-parser-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.1.tgz", + "integrity": "sha512-ZMu7XRN3M3R+g/YaFQKiVW0J42bzciF0+xAxP5uuO6VibE30MQvRRBctHuh22uS3yAe5jkru/i8QVOwRDJazIw==", + "dev": true + }, + "webdriver": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.16.3.tgz", + "integrity": "sha512-tZzkCS14RBa6EmC4jYbg9iHmZnPqI7Ui46chRRazFSG+9Wwr0Gu/UIuuPGw5h8IOotrFfkgFnPZbXWTtfTeu4Q==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "got": "^11.0.2", + "ky": "^0.28.5", + "lodash.merge": "^4.6.1" + } + }, + "webdriverio": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.16.3.tgz", + "integrity": "sha512-hXLXP8IDgA3DojDHJrI4j+V4YmikKpJ8UUhuIjgoNWNRJom+sHLihy3AF92O4Rnt/vEe+glbO8gNL+/i8vMLGQ==", + "dev": true, + "requires": { + "@types/aria-query": "^5.0.0", + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/repl": "7.16.3", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "archiver": "^5.0.0", + "aria-query": "^5.0.0", + "atob": "^2.1.2", + "css-shorthand-properties": "^1.1.1", + "css-value": "^0.0.1", + "devtools": "7.16.3", + "devtools-protocol": "^0.0.933220", + "fs-extra": "^10.0.0", + "get-port": "^5.1.1", + "grapheme-splitter": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "lodash.isobject": "^3.0.2", + "lodash.isplainobject": "^4.0.6", + "lodash.zip": "^4.2.0", + "minimatch": "^3.0.4", + "puppeteer-core": "^10.1.0", + "query-selector-shadow-dom": "^1.0.0", + "resq": "^1.9.1", + "rgb2hex": "0.2.5", + "serialize-error": "^8.0.0", + "webdriver": "7.16.3" + } } } }, "@wdio/cli": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.11.1.tgz", - "integrity": "sha512-CGFX7vy5U9i9ccsUNmcOv+LzFaoKNFPr1+mopELld/b0wUVN9yM70jfgmUMjpHQnAMl3lqxIjBQuDrxE8/qTEw==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.16.3.tgz", + "integrity": "sha512-0y1/tJ5rPAx98VcPBczxNk2TdxDFer3gfqOI/Cowrt2VarIm1HiL2m/tPxenIQiqFHJCba9TN5Iho9g1JQbCEg==", "dev": true, "requires": { "@types/ejs": "^3.0.5", "@types/fs-extra": "^9.0.4", - "@types/inquirer": "^7.3.1", + "@types/inquirer": "^8.1.2", "@types/lodash.flattendeep": "^4.4.6", "@types/lodash.pickby": "^4.6.6", "@types/lodash.union": "^4.6.6", - "@types/node": "^15.12.5", + "@types/node": "^16.11.1", "@types/recursive-readdir": "^2.2.0", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", "async-exit-hook": "^2.0.1", "chalk": "^4.0.0", "chokidar": "^3.0.0", "cli-spinners": "^2.1.0", "ejs": "^3.0.1", "fs-extra": "^10.0.0", - "inquirer": "^8.0.0", + "inquirer": "8.1.5", "lodash.flattendeep": "^4.4.0", "lodash.pickby": "^4.6.0", "lodash.union": "^4.6.0", "mkdirp": "^1.0.4", "recursive-readdir": "^2.2.2", - "webdriverio": "7.11.1", + "webdriverio": "7.16.3", "yargs": "^17.0.0", "yarn-install": "^1.0.0" }, "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "@types/aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-P+dkdFu0n08PDIvw+9nT9ByQnd+Udc8DaWPb9HKfaPwCvWvQpC5XaMRx2xLWECm9x1VKNps6vEAlirjA6+uNrQ==", + "dev": true + }, + "@wdio/config": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.16.3.tgz", + "integrity": "sha512-YbpeZAeEncyJrsKxfAwjhNbDUf/ZrMB2Io3PYnH3RQjEEo5lYlO15aUt9uJx09W5h8hBPcrj7CfUC5yNkFZJhw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "deepmerge": "^4.0.0", + "glob": "^7.1.2" + } + }, + "@wdio/logger": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.16.0.tgz", + "integrity": "sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + } + }, + "@wdio/protocols": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.16.1.tgz", + "integrity": "sha512-Bxfqak67+/d/1c2c/eHWmVw5xAKhDU+5Ekqpka5Kt1VmW8Se7w9rFligrU0LrrgY9zzhYfVAL4sYkHfDPCOWbA==", + "dev": true + }, + "@wdio/repl": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.16.3.tgz", + "integrity": "sha512-aFpWyAIuPo6VVmkotZDWXMzd4qw3gD+xAhB6blNrMCZKWnz9+HqZnuGGc6pmiyuc5yFzb9wF22tnIxuyTyH7yA==", + "dev": true, + "requires": { + "@wdio/utils": "7.16.3" + } + }, + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } + }, + "@wdio/utils": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.16.3.tgz", + "integrity": "sha512-/662h5Z7B5TejHN6GiW96PAKuTPi/xcAGmtjA9ozRBI2/0eHSccDfNEaBgTTjLqqEgGAXylHcOuxHOrKx2ddJw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "p-iteration": "^1.1.8" + } + }, + "aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true + }, + "devtools": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.16.3.tgz", + "integrity": "sha512-mRs1d1y9fT/hen/tGVj0bbgatgkaAsfrDOG2VECL/sKRYlP4An18W8BdSU1wXe+4dUC322VxrtScXfRL2bsb1g==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "@types/ua-parser-js": "^0.7.33", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "chrome-launcher": "^0.14.0", + "edge-paths": "^2.1.0", + "puppeteer-core": "^10.1.0", + "query-selector-shadow-dom": "^1.0.0", + "ua-parser-js": "^1.0.1", + "uuid": "^8.0.0" + } + }, + "devtools-protocol": { + "version": "0.0.933220", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.933220.tgz", + "integrity": "sha512-6BHFljAlcA4jG2L6gMJfyQLnIrtftCZkZL7AZC7SBTlnda4yN5TqFtd/ZcqvcFS5VHkrc7QZGT/VGWCmeeiHAg==", "dev": true }, "mkdirp": { @@ -889,41 +1123,151 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true + }, + "ua-parser-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.1.tgz", + "integrity": "sha512-ZMu7XRN3M3R+g/YaFQKiVW0J42bzciF0+xAxP5uuO6VibE30MQvRRBctHuh22uS3yAe5jkru/i8QVOwRDJazIw==", + "dev": true + }, + "webdriver": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.16.3.tgz", + "integrity": "sha512-tZzkCS14RBa6EmC4jYbg9iHmZnPqI7Ui46chRRazFSG+9Wwr0Gu/UIuuPGw5h8IOotrFfkgFnPZbXWTtfTeu4Q==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "got": "^11.0.2", + "ky": "^0.28.5", + "lodash.merge": "^4.6.1" + } + }, + "webdriverio": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.16.3.tgz", + "integrity": "sha512-hXLXP8IDgA3DojDHJrI4j+V4YmikKpJ8UUhuIjgoNWNRJom+sHLihy3AF92O4Rnt/vEe+glbO8gNL+/i8vMLGQ==", + "dev": true, + "requires": { + "@types/aria-query": "^5.0.0", + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/repl": "7.16.3", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "archiver": "^5.0.0", + "aria-query": "^5.0.0", + "atob": "^2.1.2", + "css-shorthand-properties": "^1.1.1", + "css-value": "^0.0.1", + "devtools": "7.16.3", + "devtools-protocol": "^0.0.933220", + "fs-extra": "^10.0.0", + "get-port": "^5.1.1", + "grapheme-splitter": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "lodash.isobject": "^3.0.2", + "lodash.isplainobject": "^4.0.6", + "lodash.zip": "^4.2.0", + "minimatch": "^3.0.4", + "puppeteer-core": "^10.1.0", + "query-selector-shadow-dom": "^1.0.0", + "resq": "^1.9.1", + "rgb2hex": "0.2.5", + "serialize-error": "^8.0.0", + "webdriver": "7.16.3" + } } } }, "@wdio/config": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.10.1.tgz", - "integrity": "sha512-EA+kJBNPeIxkkyilHcmiIwqjtOUcWx5FVp69kSBs4BN2fG+6CgpzoVecuTm/qPU6D0DT5KIfxVR4FRHCF99F/g==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.16.3.tgz", + "integrity": "sha512-YbpeZAeEncyJrsKxfAwjhNbDUf/ZrMB2Io3PYnH3RQjEEo5lYlO15aUt9uJx09W5h8hBPcrj7CfUC5yNkFZJhw==", "dev": true, "requires": { - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", "deepmerge": "^4.0.0", "glob": "^7.1.2" } }, "@wdio/local-runner": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.11.1.tgz", - "integrity": "sha512-aoRQg46RMfNdFCVqtHDYhIyhLoeXyOHLLv7Teyp+FJuqVNtpQT2eZACf8sZL2IfF7ZBP6JtvoV/MJ7sMXpOV2A==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-7.16.3.tgz", + "integrity": "sha512-1ZhD10IZSQ4Sj9Ap/xz2KT8ULUMfNPyeb5qaitU0q7Wv41lnr96+zRCdb87nQwUzho9cWkIy1LMJRjDjO/ZfHQ==", "dev": true, "requires": { "@types/stream-buffers": "^3.0.3", - "@wdio/logger": "7.7.0", - "@wdio/repl": "7.11.0", - "@wdio/runner": "7.11.1", - "@wdio/types": "7.10.1", + "@wdio/logger": "7.16.0", + "@wdio/repl": "7.16.3", + "@wdio/runner": "7.16.3", + "@wdio/types": "7.16.3", "async-exit-hook": "^2.0.1", - "split2": "^3.2.2", + "split2": "^4.0.0", "stream-buffers": "^3.0.2" + }, + "dependencies": { + "@wdio/logger": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.16.0.tgz", + "integrity": "sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + } + }, + "@wdio/repl": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.16.3.tgz", + "integrity": "sha512-aFpWyAIuPo6VVmkotZDWXMzd4qw3gD+xAhB6blNrMCZKWnz9+HqZnuGGc6pmiyuc5yFzb9wF22tnIxuyTyH7yA==", + "dev": true, + "requires": { + "@wdio/utils": "7.16.3" + } + }, + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } + }, + "@wdio/utils": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.16.3.tgz", + "integrity": "sha512-/662h5Z7B5TejHN6GiW96PAKuTPi/xcAGmtjA9ozRBI2/0eHSccDfNEaBgTTjLqqEgGAXylHcOuxHOrKx2ddJw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "p-iteration": "^1.1.8" + } + }, + "split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "dev": true + } } }, "@wdio/logger": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.7.0.tgz", - "integrity": "sha512-XX/OkC8NlvsBdhKsb9j7ZbuQtF/Vuo0xf38PXdqYtVezOrYbDuba0hPG++g/IGNuAF34ZbSi+49cvz4u5w92kQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.16.0.tgz", + "integrity": "sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==", "dev": true, "requires": { "chalk": "^4.0.0", @@ -933,56 +1277,96 @@ } }, "@wdio/mocha-framework": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.11.1.tgz", - "integrity": "sha512-66P2eTOso9W9Y0IMzhHmYZ98bfBDIkwswqJzGCrAbhuFpvOnqboF8wlrfUUADJ3b2rIVmsw02FCECNPS2EnQyQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-7.16.3.tgz", + "integrity": "sha512-vGm8KYfmI+1L+QniXsHdUvfWs3U4d3a6otfpBqFzS2LfSgsRbdUtIFz8NDqpIIm+HXr8noH1qMR8fe0Ay64Now==", "dev": true, "requires": { "@types/mocha": "^9.0.0", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", "expect-webdriverio": "^3.0.0", "mocha": "^9.0.0" + }, + "dependencies": { + "@wdio/logger": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.16.0.tgz", + "integrity": "sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + } + }, + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } + }, + "@wdio/utils": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.16.3.tgz", + "integrity": "sha512-/662h5Z7B5TejHN6GiW96PAKuTPi/xcAGmtjA9ozRBI2/0eHSccDfNEaBgTTjLqqEgGAXylHcOuxHOrKx2ddJw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "p-iteration": "^1.1.8" + } + } } }, "@wdio/protocols": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.11.0.tgz", - "integrity": "sha512-yWKmCUmbHB1AH0U3lebXRh/G3+JtsD9Tx9fevgP9qA7Hq+rHj7KqUf15k1lPPodhOms8ncPj0J6ET1E13wh2qg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.16.1.tgz", + "integrity": "sha512-Bxfqak67+/d/1c2c/eHWmVw5xAKhDU+5Ekqpka5Kt1VmW8Se7w9rFligrU0LrrgY9zzhYfVAL4sYkHfDPCOWbA==", "dev": true }, "@wdio/repl": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.11.0.tgz", - "integrity": "sha512-2GtWkUqepQ0QGvdo7fLWiZklf/O4eh3AB4vcafwGVKQhE8bpSh0l8/fkXOzYU7oK/PBGHJyWXxPOVf+H5DAViA==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.16.3.tgz", + "integrity": "sha512-aFpWyAIuPo6VVmkotZDWXMzd4qw3gD+xAhB6blNrMCZKWnz9+HqZnuGGc6pmiyuc5yFzb9wF22tnIxuyTyH7yA==", "dev": true, "requires": { - "@wdio/utils": "7.11.0" + "@wdio/utils": "7.16.3" } }, "@wdio/reporter": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-7.10.1.tgz", - "integrity": "sha512-zgyHQc6j+GzlOnwlu3yhCQ8yAaTfo0MpNQG1GCiqtSKJ2c50J2HR5d9LYWrM7L8v13X4YWMxhW+3oYT+f35Gjw==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-7.16.3.tgz", + "integrity": "sha512-DL6FaO8/ULHv4ET0ZVdg9+ZAP7ZzhZc8qP5slZTwMQ5vnXOHEO9JrALFtcEO8OkyZfaZKbI9oE2d96zli+wT9g==", "dev": true, "requires": { "@types/diff": "^5.0.0", - "@types/node": "^15.12.5", + "@types/node": "^16.11.1", "@types/object-inspect": "^1.8.0", "@types/supports-color": "^8.1.0", - "@wdio/types": "7.10.1", + "@types/tmp": "^0.2.0", + "@wdio/types": "7.16.3", "diff": "^5.0.0", "fs-extra": "^10.0.0", "object-inspect": "^1.10.3", "supports-color": "8.1.1" }, "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } }, "supports-color": { "version": "8.1.1", @@ -996,85 +1380,329 @@ } }, "@wdio/runner": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.11.1.tgz", - "integrity": "sha512-mPKqdpk/WTwpwlCg84J/Y+6ZURUSZ8jrSoBpCVsvs9NesdIkHtxLfvlA2btmXXRw5Al7VBtN/FFCBFBp5db+1Q==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-7.16.3.tgz", + "integrity": "sha512-5unQ6uNUL+dUehyy8bsBCOMqrgTK+Rykvde0ZQHkIUCwPx1Y40h4v6TFbefeLlyV9A0OmgWsbHKSfy7blBpqkQ==", "dev": true, "requires": { - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", "deepmerge": "^4.0.0", "gaze": "^1.1.2", - "webdriver": "7.11.0", - "webdriverio": "7.11.1" + "webdriver": "7.16.3", + "webdriverio": "7.16.3" + }, + "dependencies": { + "@types/aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-P+dkdFu0n08PDIvw+9nT9ByQnd+Udc8DaWPb9HKfaPwCvWvQpC5XaMRx2xLWECm9x1VKNps6vEAlirjA6+uNrQ==", + "dev": true + }, + "@wdio/config": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.16.3.tgz", + "integrity": "sha512-YbpeZAeEncyJrsKxfAwjhNbDUf/ZrMB2Io3PYnH3RQjEEo5lYlO15aUt9uJx09W5h8hBPcrj7CfUC5yNkFZJhw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "deepmerge": "^4.0.0", + "glob": "^7.1.2" + } + }, + "@wdio/logger": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.16.0.tgz", + "integrity": "sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + } + }, + "@wdio/protocols": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-7.16.1.tgz", + "integrity": "sha512-Bxfqak67+/d/1c2c/eHWmVw5xAKhDU+5Ekqpka5Kt1VmW8Se7w9rFligrU0LrrgY9zzhYfVAL4sYkHfDPCOWbA==", + "dev": true + }, + "@wdio/repl": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-7.16.3.tgz", + "integrity": "sha512-aFpWyAIuPo6VVmkotZDWXMzd4qw3gD+xAhB6blNrMCZKWnz9+HqZnuGGc6pmiyuc5yFzb9wF22tnIxuyTyH7yA==", + "dev": true, + "requires": { + "@wdio/utils": "7.16.3" + } + }, + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } + }, + "@wdio/utils": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.16.3.tgz", + "integrity": "sha512-/662h5Z7B5TejHN6GiW96PAKuTPi/xcAGmtjA9ozRBI2/0eHSccDfNEaBgTTjLqqEgGAXylHcOuxHOrKx2ddJw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "p-iteration": "^1.1.8" + } + }, + "aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true + }, + "devtools": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.16.3.tgz", + "integrity": "sha512-mRs1d1y9fT/hen/tGVj0bbgatgkaAsfrDOG2VECL/sKRYlP4An18W8BdSU1wXe+4dUC322VxrtScXfRL2bsb1g==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "@types/ua-parser-js": "^0.7.33", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "chrome-launcher": "^0.14.0", + "edge-paths": "^2.1.0", + "puppeteer-core": "^10.1.0", + "query-selector-shadow-dom": "^1.0.0", + "ua-parser-js": "^1.0.1", + "uuid": "^8.0.0" + } + }, + "devtools-protocol": { + "version": "0.0.933220", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.933220.tgz", + "integrity": "sha512-6BHFljAlcA4jG2L6gMJfyQLnIrtftCZkZL7AZC7SBTlnda4yN5TqFtd/ZcqvcFS5VHkrc7QZGT/VGWCmeeiHAg==", + "dev": true + }, + "ua-parser-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.1.tgz", + "integrity": "sha512-ZMu7XRN3M3R+g/YaFQKiVW0J42bzciF0+xAxP5uuO6VibE30MQvRRBctHuh22uS3yAe5jkru/i8QVOwRDJazIw==", + "dev": true + }, + "webdriver": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.16.3.tgz", + "integrity": "sha512-tZzkCS14RBa6EmC4jYbg9iHmZnPqI7Ui46chRRazFSG+9Wwr0Gu/UIuuPGw5h8IOotrFfkgFnPZbXWTtfTeu4Q==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "got": "^11.0.2", + "ky": "^0.28.5", + "lodash.merge": "^4.6.1" + } + }, + "webdriverio": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.16.3.tgz", + "integrity": "sha512-hXLXP8IDgA3DojDHJrI4j+V4YmikKpJ8UUhuIjgoNWNRJom+sHLihy3AF92O4Rnt/vEe+glbO8gNL+/i8vMLGQ==", + "dev": true, + "requires": { + "@types/aria-query": "^5.0.0", + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/repl": "7.16.3", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", + "archiver": "^5.0.0", + "aria-query": "^5.0.0", + "atob": "^2.1.2", + "css-shorthand-properties": "^1.1.1", + "css-value": "^0.0.1", + "devtools": "7.16.3", + "devtools-protocol": "^0.0.933220", + "fs-extra": "^10.0.0", + "get-port": "^5.1.1", + "grapheme-splitter": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "lodash.isobject": "^3.0.2", + "lodash.isplainobject": "^4.0.6", + "lodash.zip": "^4.2.0", + "minimatch": "^3.0.4", + "puppeteer-core": "^10.1.0", + "query-selector-shadow-dom": "^1.0.0", + "resq": "^1.9.1", + "rgb2hex": "0.2.5", + "serialize-error": "^8.0.0", + "webdriver": "7.16.3" + } + } } }, "@wdio/selenium-standalone-service": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-7.10.1.tgz", - "integrity": "sha512-25J1iqNpEdqhnNe6B016Mm5+38F8WTfZ5eIRttjLSACdtsWtW2DGgMMeWvwunqNSzhfK8S6jDZ+s2nOvg+gD6A==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-7.16.3.tgz", + "integrity": "sha512-yOz61/mcuUFMg7TPZMHRvGbxhze6xAg7da0mS9+oAGE1QD3CY9mDa03ELG5vXeW1Aw6XkSac6uxt39VrKkgfgw==", "dev": true, "requires": { "@types/fs-extra": "^9.0.1", - "@types/node": "^15.12.5", + "@types/node": "^16.11.1", "@types/selenium-standalone": "^7.0.0", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", "fs-extra": "^10.0.0", - "selenium-standalone": "^7.0.1" + "selenium-standalone": "^8.0.3" }, "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "@wdio/config": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-7.16.3.tgz", + "integrity": "sha512-YbpeZAeEncyJrsKxfAwjhNbDUf/ZrMB2Io3PYnH3RQjEEo5lYlO15aUt9uJx09W5h8hBPcrj7CfUC5yNkFZJhw==", + "dev": true, + "requires": { + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", + "deepmerge": "^4.0.0", + "glob": "^7.1.2" + } + }, + "@wdio/logger": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-7.16.0.tgz", + "integrity": "sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "loglevel": "^1.6.0", + "loglevel-plugin-prefix": "^0.8.4", + "strip-ansi": "^6.0.0" + } + }, + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true + }, + "selenium-standalone": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-8.0.3.tgz", + "integrity": "sha512-JoTEPrK9ICtZ6ReHgQ1HSdPraYzP3rjlSaA3+3u9Clp5VQFP9an0ko/S8EFKH4VcZi2OJYra/lZUk6ZFS+MTAw==", + "dev": true, + "requires": { + "commander": "^7.2.0", + "cross-spawn": "^7.0.3", + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "got": "^11.8.2", + "is-port-reachable": "^3.0.0", + "lodash.mapvalues": "^4.6.0", + "lodash.merge": "^4.6.2", + "minimist": "^1.2.5", + "mkdirp": "^1.0.4", + "progress": "2.0.3", + "tar-stream": "2.2.0", + "which": "^2.0.2", + "yauzl": "^2.10.0" + } } } }, "@wdio/spec-reporter": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-7.10.1.tgz", - "integrity": "sha512-Yo/XvBY3OkOhs3m32KcbeilJowVO4Ii0ZeNtn4KPPV6Z4pYglV8vYdTDJ/BIinuBBJWJPbS6EFLZtrsaSuuFYg==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-7.16.3.tgz", + "integrity": "sha512-MprsLcS36N0cfrY8D/1ya2nJTqtRNmT9LzUidFUSbMSLj0oL/uZUioMBk9IRXPdnrgfBUoNrijbLqqo5G+vKAQ==", "dev": true, "requires": { "@types/easy-table": "^0.0.33", - "@wdio/reporter": "7.10.1", - "@wdio/types": "7.10.1", + "@wdio/reporter": "7.16.3", + "@wdio/types": "7.16.3", "chalk": "^4.0.0", "easy-table": "^1.1.1", "pretty-ms": "^7.0.0" + }, + "dependencies": { + "@wdio/types": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "got": "^11.8.1" + } + } } }, "@wdio/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.10.1.tgz", - "integrity": "sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.16.3.tgz", + "integrity": "sha512-iJLtJrOJZSJrXR1zseCkVWUFs477FngjWz2HTMfGHR69LzfmxC0RNagemjZuLTfhTqWp/FBbqaA/F+7xJdNKag==", "dev": true, "requires": { - "@types/node": "^15.12.5", + "@types/node": "^16.11.1", "got": "^11.8.1" - }, - "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true - } } }, "@wdio/utils": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.11.0.tgz", - "integrity": "sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-7.16.3.tgz", + "integrity": "sha512-/662h5Z7B5TejHN6GiW96PAKuTPi/xcAGmtjA9ozRBI2/0eHSccDfNEaBgTTjLqqEgGAXylHcOuxHOrKx2ddJw==", "dev": true, "requires": { - "@wdio/logger": "7.7.0", - "@wdio/types": "7.10.1", + "@wdio/logger": "7.16.0", + "@wdio/types": "7.16.3", "p-iteration": "^1.1.8" } }, @@ -1267,14 +1895,10 @@ "dev": true }, "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true }, "array-each": { "version": "1.0.1", @@ -1294,6 +1918,12 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -1340,9 +1970,9 @@ "dev": true }, "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", + "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", "dev": true }, "base64-js": { @@ -1790,6 +2420,23 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "requires": { + "is-regexp": "^2.0.0" + }, + "dependencies": { + "is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true + } + } + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -1815,9 +2462,9 @@ "dev": true }, "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, "colors": { @@ -1827,9 +2474,9 @@ "dev": true }, "commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true }, "component-emitter": { @@ -1906,12 +2553,6 @@ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", "dev": true }, - "core-js-pure": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.0.tgz", - "integrity": "sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ==", - "dev": true - }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -2014,6 +2655,12 @@ "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=", "dev": true }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", @@ -2057,6 +2704,24 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + } + } + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -2150,37 +2815,38 @@ "dev": true }, "devtools": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.11.0.tgz", - "integrity": "sha512-V3mIskCVv+OrqgJf9EU4bvoOrEx+qQ+sNoyLxqzxkFgh0wwtYIhcMiqDluL8dBKlhToV16UsYDKoqa67ylNwOg==", - "dev": true, - "requires": { - "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/devtools/-/devtools-7.16.3.tgz", + "integrity": "sha512-mRs1d1y9fT/hen/tGVj0bbgatgkaAsfrDOG2VECL/sKRYlP4An18W8BdSU1wXe+4dUC322VxrtScXfRL2bsb1g==", + "dev": true, + "requires": { + "@types/node": "^16.11.1", + "@types/ua-parser-js": "^0.7.33", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", "chrome-launcher": "^0.14.0", "edge-paths": "^2.1.0", "puppeteer-core": "^10.1.0", "query-selector-shadow-dom": "^1.0.0", - "ua-parser-js": "^0.7.21", + "ua-parser-js": "^1.0.1", "uuid": "^8.0.0" }, "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", + "ua-parser-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.1.tgz", + "integrity": "sha512-ZMu7XRN3M3R+g/YaFQKiVW0J42bzciF0+xAxP5uuO6VibE30MQvRRBctHuh22uS3yAe5jkru/i8QVOwRDJazIw==", "dev": true } } }, "devtools-protocol": { - "version": "0.0.915197", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.915197.tgz", - "integrity": "sha512-JXt4akUoL62CtxKLQBxcJlI7gsCZyAQ1Qb/0MZJOz8VETazoJB6+IjUwTkECrvye9AnNLDQyyV00kz/vWXVifQ==", + "version": "0.0.933220", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.933220.tgz", + "integrity": "sha512-6BHFljAlcA4jG2L6gMJfyQLnIrtftCZkZL7AZC7SBTlnda4yN5TqFtd/ZcqvcFS5VHkrc7QZGT/VGWCmeeiHAg==", "dev": true }, "di": { @@ -2308,27 +2974,38 @@ } }, "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.0.0.tgz", + "integrity": "sha512-Ui7yl3JajEIaACg8MOUwWvuuwU7jepZqX3BKs1ho7NQRuP4LhN4XIykXhp8bEy+x/DhA0LBZZXYSCkZDqrwMMg==", "dev": true, "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" + "engine.io-parser": "~5.0.0", + "ws": "~8.2.3" + }, + "dependencies": { + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true + } } }, "engine.io-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz", - "integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.1.tgz", + "integrity": "sha512-j4p3WwJrG2k92VISM0op7wiq60vO92MlF3CRGxhKHy9ywG1/Dkc72g0dXeDQ+//hrcDn8gqQzoEkdO9FN0d9AA==", "dev": true, "requires": { - "base64-arraybuffer": "0.1.4" + "base64-arraybuffer": "~1.0.1" } }, "enquirer": { @@ -2782,6 +3459,15 @@ } } }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "requires": { + "clone-regexp": "^2.1.0" + } + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -2912,6 +3598,12 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -3217,6 +3909,12 @@ "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -3243,9 +3941,9 @@ "dev": true }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3323,6 +4021,12 @@ "slash": "^3.0.0" } }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, "globule": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", @@ -3332,6 +4036,22 @@ "glob": "~7.1.1", "lodash": "~4.17.10", "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "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" + } + } } }, "got": { @@ -3409,6 +4129,20 @@ "sprintf-js": "~1.0.2" } }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "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" + } + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -3568,6 +4302,12 @@ "integrity": "sha1-SXO+vVSjF8tjCWSsKMmxcTAighw=", "dev": true }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3660,6 +4400,12 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -3725,9 +4471,9 @@ "dev": true }, "husky": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.2.tgz", - "integrity": "sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true }, "iconv-lite": { @@ -3767,6 +4513,12 @@ "resolve-from": "^4.0.0" } }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -4080,6 +4832,12 @@ "has-symbols": "^1.0.2" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -4307,9 +5065,9 @@ "dev": true }, "jasmine-core": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.9.0.tgz", - "integrity": "sha512-Tv3kVbPCGVrjsnHBZ38NsPU3sDOtNa0XmbG2baiyJqdb5/SPpDO6GVwJYtUryl6KB4q1Ssckwg612ES9Z0dreQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.10.1.tgz", + "integrity": "sha512-ooZWSDVAdh79Rrj4/nnfklL3NQVra0BcuhcuWoAwwi+znLDoUeH87AFfeX8s+YeYi6xlv5nveRyaA1v7CintfA==", "dev": true }, "jasmine-expect": { @@ -4480,9 +5238,9 @@ } }, "karma": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.4.tgz", - "integrity": "sha512-hbhRogUYIulfkBTZT7xoPrCYhRBnBoqbbL4fszWD0ReFGUxU+LYBr3dwKdAluaDQ/ynT9/7C+Lf7pPNW4gSx4Q==", + "version": "6.3.6", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.6.tgz", + "integrity": "sha512-xsiu3D6AjCv6Uq0YKXJgC6TvXX2WloQ5+XtHXmC1lwiLVG617DDV3W2DdM4BxCMKHlmz6l3qESZHFQGHAKvrew==", "dev": true, "requires": { "body-parser": "^1.19.0", @@ -4503,10 +5261,10 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^3.1.0", + "socket.io": "^4.2.0", "source-map": "^0.6.1", "tmp": "^0.2.1", - "ua-parser-js": "^0.7.28", + "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" }, "dependencies": { @@ -4787,6 +5545,12 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "known-css-properties": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.23.0.tgz", + "integrity": "sha512-h9ivI88e1lFNmTT4HovBN33Ysn0OIJG7IPG2mkpx2uniQXFWqo35QdiX7w0TovlUFXfW8aPFblP5/q0jlOr2sA==", + "dev": true + }, "ky": { "version": "0.28.6", "resolved": "https://registry.npmjs.org/ky/-/ky-0.28.6.tgz", @@ -4895,6 +5659,12 @@ } } }, + "lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -4902,32 +5672,36 @@ "dev": true }, "lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.5.tgz", + "integrity": "sha512-bD6FeKyRtMA3jXcNg/J0fuJmwDN8yaoTdqliFcEl8pFTHiP9NYwQCeZwBoZ8FEXx4lj/pli3oFehr86XYvMNEA==", "dev": true, "requires": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", + "cli-truncate": "2.1.0", + "colorette": "^1.4.0", + "commander": "^8.2.0", + "debug": "^4.3.2", "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", + "execa": "^5.1.1", + "js-yaml": "^4.1.0", + "lilconfig": "^2.0.3", + "listr2": "^3.12.2", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "stringify-object": "3.3.0", + "supports-color": "8.1.1" }, "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -4946,6 +5720,12 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -5221,6 +6001,12 @@ "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", "dev": true }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5243,10 +6029,193 @@ "timers-ext": "^0.1.7" }, "dependencies": { - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + } + } + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@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" + } + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } @@ -5306,6 +6275,12 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -5321,6 +6296,25 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + } + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -5372,6 +6366,20 @@ "path-exists": "^4.0.0" } }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "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" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5585,6 +6593,12 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -5979,6 +6993,59 @@ "semver-compare": "^1.0.0" } }, + "postcss": { + "version": "8.3.11", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", + "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", + "dev": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^0.6.2" + }, + "dependencies": { + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true + } + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -5986,9 +7053,9 @@ "dev": true }, "prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", "dev": true }, "pretty-format": { @@ -6399,11 +7466,23 @@ "minimatch": "3.0.4" } }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } }, "regexpp": { "version": "3.2.0", @@ -6564,12 +7643,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, "scheduler": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", @@ -6581,9 +7654,9 @@ } }, "selenium-standalone": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-7.1.0.tgz", - "integrity": "sha512-Pc7U48qwB4LVy/XczBrPPXwUhEPl3XQSik8SjLfj2qzBEtZqrjyzOlnnXq4aVCdr5wH9FiFJm8LwheJbK2+/oQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-8.0.3.tgz", + "integrity": "sha512-JoTEPrK9ICtZ6ReHgQ1HSdPraYzP3rjlSaA3+3u9Clp5VQFP9an0ko/S8EFKH4VcZi2OJYra/lZUk6ZFS+MTAw==", "dev": true, "requires": { "commander": "^7.2.0", @@ -6634,24 +7707,33 @@ } }, "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0.tgz", + "integrity": "sha512-tOlu6FnTjPq2FKpd153pl8o2cB7H40Rvl/ogiD2sapMv4IDjQqpIxbd+swDJe9UDLdszeh5CDis6lgy4e9UG1w==", "dev": true, "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "jszip": "^3.6.0", + "rimraf": "^3.0.2", + "tmp": "^0.2.1", + "ws": ">=7.4.6" }, "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "os-tmpdir": "~1.0.1" + "rimraf": "^3.0.0" } } } @@ -6754,26 +7836,23 @@ } }, "socket.io": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.3.1.tgz", + "integrity": "sha512-HC5w5Olv2XZ0XJ4gOLGzzHEuOCfj3G0SmoW3jLHYYh34EVsIr3EkW9h6kgfW+K3TFEcmYy8JcPWe//KUkBp5jA==", "dev": true, "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" + "debug": "~4.3.2", + "engine.io": "~6.0.0", + "socket.io-adapter": "~2.3.2", + "socket.io-parser": "~4.0.4" } }, "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz", + "integrity": "sha512-PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg==", "dev": true }, "socket.io-parser": { @@ -6793,6 +7872,12 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + }, "source-map-support": { "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", @@ -6835,6 +7920,12 @@ "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, + "specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true + }, "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", @@ -7052,12 +8143,137 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "stylelint": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.0.0.tgz", + "integrity": "sha512-//4Po+WlWImVaro2BiNJZMamBo0Enekb+3fp5cYYN5r08kaPTHlxM8bCi/yvnPl7G+zqyLqjZU+O22vr/SDW0w==", + "dev": true, + "requires": { + "balanced-match": "^2.0.0", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", + "execall": "^2.0.0", + "fast-glob": "^3.2.7", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.0.3", + "globjoin": "^0.1.4", + "html-tags": "^3.1.0", + "ignore": "^5.1.8", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.23.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "normalize-selector": "^0.2.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0", + "resolve-from": "^5.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.2", + "strip-ansi": "^6.0.0", + "style-search": "^0.1.0", + "svg-tags": "^1.0.0", + "table": "^6.7.2", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^3.0.3" + }, + "dependencies": { + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "stylelint-config-recommended": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", + "dev": true + }, + "stylelint-config-standard": { + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-23.0.0.tgz", + "integrity": "sha512-8PDlk+nWuc1T66nVaODTdVodN0pjuE5TBlopi39Lt9EM36YJsRhqttMyUhnS78oc/59Q6n8iw2GJB4QcoFqtRg==", + "dev": true, + "requires": { + "stylelint-config-recommended": "^6.0.0" + } + }, "suffix": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/suffix/-/suffix-0.1.1.tgz", @@ -7073,6 +8289,12 @@ "has-flag": "^4.0.0" } }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, "table": { "version": "6.7.2", "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", @@ -7169,14 +8391,14 @@ } }, "terser": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", - "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "source-map-support": "~0.5.20" }, "dependencies": { "commander": { @@ -7245,6 +8467,12 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", @@ -7282,6 +8510,15 @@ "mime-types": "~2.1.24" } }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "ua-parser-js": { "version": "0.7.30", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.30.tgz", @@ -7412,9 +8649,9 @@ } }, "wdio-chromedriver-service": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.0.tgz", - "integrity": "sha512-0N/mEE0Bk/aoc7YZNwS5sbzzGrPWb7Lo4nA+t/bF9BwQRAokeHl/70vD2JKe/D4Wo05J2X0C1RxRS7e4iwW6KQ==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.2.tgz", + "integrity": "sha512-fj1R6yTgcr52g1wANdBc1KH+aXjazN81WhweAc1Y6Cfm1KVehSDbrVj2BJImU+6R/7sQKRX6fqtuA4Nsc0HUXQ==", "dev": true, "requires": { "@wdio/logger": "^7.5.3", @@ -7437,51 +8674,43 @@ } }, "webdriver": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.11.0.tgz", - "integrity": "sha512-Sd4n3Hxz/6WDa4Ay8cJj/ICDbf2ndlAzd7NMj+dmhfDsDF7L77eCZYB8zrrxs2hoK63E54eyKzyycK3BB3WoYQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-7.16.3.tgz", + "integrity": "sha512-tZzkCS14RBa6EmC4jYbg9iHmZnPqI7Ui46chRRazFSG+9Wwr0Gu/UIuuPGw5h8IOotrFfkgFnPZbXWTtfTeu4Q==", "dev": true, "requires": { - "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", "got": "^11.0.2", "ky": "^0.28.5", "lodash.merge": "^4.6.1" - }, - "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true - } } }, "webdriverio": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.11.1.tgz", - "integrity": "sha512-N796qZIqkfIJJtSNBcAimnVr3SrnEjbwjYSBqAhVdGSidUKb1k6bxjC223WFwpANGkxABJUrVkx+qGNOtc+yGg==", - "dev": true, - "requires": { - "@types/aria-query": "^4.2.1", - "@types/node": "^15.12.5", - "@wdio/config": "7.10.1", - "@wdio/logger": "7.7.0", - "@wdio/protocols": "7.11.0", - "@wdio/repl": "7.11.0", - "@wdio/types": "7.10.1", - "@wdio/utils": "7.11.0", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-7.16.3.tgz", + "integrity": "sha512-hXLXP8IDgA3DojDHJrI4j+V4YmikKpJ8UUhuIjgoNWNRJom+sHLihy3AF92O4Rnt/vEe+glbO8gNL+/i8vMLGQ==", + "dev": true, + "requires": { + "@types/aria-query": "^5.0.0", + "@types/node": "^16.11.1", + "@wdio/config": "7.16.3", + "@wdio/logger": "7.16.0", + "@wdio/protocols": "7.16.1", + "@wdio/repl": "7.16.3", + "@wdio/types": "7.16.3", + "@wdio/utils": "7.16.3", "archiver": "^5.0.0", - "aria-query": "^4.2.2", + "aria-query": "^5.0.0", "atob": "^2.1.2", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools": "7.11.0", - "devtools-protocol": "^0.0.915197", + "devtools": "7.16.3", + "devtools-protocol": "^0.0.933220", "fs-extra": "^10.0.0", "get-port": "^5.1.1", "grapheme-splitter": "^1.0.2", @@ -7495,15 +8724,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^8.0.0", - "webdriver": "7.11.0" - }, - "dependencies": { - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true - } + "webdriver": "7.16.3" } }, "which": { @@ -7557,26 +8778,22 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true }, "y18n": { diff --git a/package.json b/package.json index b8e69d4242..4cffb0b188 100644 --- a/package.json +++ b/package.json @@ -6,29 +6,29 @@ "repository": "github.com/kbase/narrative", "devDependencies": { "@types/puppeteer": "5.4.4", - "@wdio/browserstack-service": "7.11.1", - "@wdio/cli": "7.11.1", - "@wdio/local-runner": "7.11.1", - "@wdio/mocha-framework": "7.11.1", - "@wdio/selenium-standalone-service": "7.10.1", - "@wdio/spec-reporter": "7.10.1", + "@wdio/browserstack-service": "7.16.3", + "@wdio/cli": "7.16.3", + "@wdio/local-runner": "7.16.3", + "@wdio/mocha-framework": "7.16.3", + "@wdio/selenium-standalone-service": "7.16.3", + "@wdio/spec-reporter": "7.16.3", "bower": "1.8.12", "chrome-launcher": "0.14.1", "chromedriver": "93.0.1", - "commander": "8.1.0", + "commander": "8.3.0", "eslint": "7.32.0", "eslint-config-prettier": "8.3.0", "expect-webdriverio": "3.1.4", - "glob": "7.1.7", + "glob": "7.2.0", "grunt": "1.4.1", "grunt-cli": "1.4.3", "grunt-contrib-copy": "1.0.0", "grunt-regex-replace": "0.4.0", - "husky": "7.0.2", + "husky": "7.0.4", "jasmine-ajax": "4.0.0", - "jasmine-core": "3.9.0", + "jasmine-core": "3.10.1", "jasmine-jquery": "2.1.1", - "karma": "6.3.4", + "karma": "6.3.6", "karma-brief-reporter": "0.2.1", "karma-chrome-launcher": "3.1.0", "karma-coverage": "2.0.3", @@ -41,21 +41,23 @@ "karma-mocha-reporter": "2.2.5", "karma-requirejs": "1.1.0", "karma-safari-launcher": "1.0.0", - "lint-staged": "11.1.2", + "lint-staged": "11.2.5", "msw": "0.35.0", - "prettier": "2.3.2", + "prettier": "2.4.1", "prop-types": "15.7.2", "puppeteer": "10.4.0", "requirejs": "2.3.6", "react": "16.14.0", "react-dom": "16.14.0", - "selenium-standalone": "7.1.0", - "selenium-webdriver": "3.6.0", + "selenium-standalone": "8.0.3", + "selenium-webdriver": "4.0.0", "string.prototype.endswith": "1.0.0", "string.prototype.startswith": "1.0.0", - "terser": "5.7.2", - "wdio-chromedriver-service": "7.2.0", - "webdriverio": "7.11.1" + "stylelint": "14.0.0", + "stylelint-config-standard": "23.0.0", + "terser": "5.9.0", + "wdio-chromedriver-service": "7.2.2", + "webdriverio": "7.16.3" }, "browserslist": [ "defaults" From 5a01d4a8134a312cd8575510730a48208ff56a0f Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 27 Oct 2021 07:42:32 -0700 Subject: [PATCH 51/54] move unit test utils into main amd module file tree to remove warnings during testing; functionally equivalent otherwise. --- .../static/kbase/js/testUtils}/domUtils.js | 0 .../static/kbase/js/testUtils}/mswUtils.js | 0 kbase-extension/static/narrative_paths.js | 5 +++++ .../KBaseSets/SetElements/AssemblySetViewer-spec.js | 2 +- .../KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js | 2 +- .../function_output/kbaseSampleSet/kbaseSampleSet-spec.js | 2 +- test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js | 2 +- test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js | 2 +- test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js | 2 +- 9 files changed, 11 insertions(+), 6 deletions(-) rename {test/unit/utils => kbase-extension/static/kbase/js/testUtils}/domUtils.js (100%) rename {test/unit/utils => kbase-extension/static/kbase/js/testUtils}/mswUtils.js (100%) diff --git a/test/unit/utils/domUtils.js b/kbase-extension/static/kbase/js/testUtils/domUtils.js similarity index 100% rename from test/unit/utils/domUtils.js rename to kbase-extension/static/kbase/js/testUtils/domUtils.js diff --git a/test/unit/utils/mswUtils.js b/kbase-extension/static/kbase/js/testUtils/mswUtils.js similarity index 100% rename from test/unit/utils/mswUtils.js rename to kbase-extension/static/kbase/js/testUtils/mswUtils.js diff --git a/kbase-extension/static/narrative_paths.js b/kbase-extension/static/narrative_paths.js index 7d92e6ab19..16c1dc38b2 100644 --- a/kbase-extension/static/narrative_paths.js +++ b/kbase-extension/static/narrative_paths.js @@ -111,6 +111,11 @@ require.config({ narrativeDataWidgetIFrame: 'kbase/js/widgetApi/narrativeDataWidgetIFrame', widgetService2: 'kbase/js/widgetApi/widgetService2', + /** + * Unit test support + */ + testUtils: 'kbase/js/testUtils', + common: 'kbase/js/common', widgets: 'kbase/js/widgets', appWidgets: 'kbase/js/widgets/appWidgets2', diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js index 98bc7d1a3b..e43a8eed46 100644 --- a/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElements/AssemblySetViewer-spec.js @@ -1,5 +1,5 @@ define([ - 'test/unit/utils/domUtils', + 'testUtils/domUtils', 'widgets/function_output/KBaseSets/SetElements/AssemblySetViewer', 'json!../data/assemblyset_case_01_props.json', 'json!../data/assemblyset_case_01_expected.json', diff --git a/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js index 07008cc0dd..126f6d8fda 100644 --- a/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js +++ b/test/unit/spec/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer-spec.js @@ -1,5 +1,5 @@ define([ - 'test/unit/utils/domUtils', + 'testUtils/domUtils', 'widgets/function_output/KBaseSets/SetElements/ReadsAlignmentSetViewer', 'json!../data/readsalignmentset_case_01_props.json', 'json!../data/readsalignmentset_case_01_expected.json', diff --git a/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js b/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js index 826e5a8424..8b625150a3 100644 --- a/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js +++ b/test/unit/spec/function_output/kbaseSampleSet/kbaseSampleSet-spec.js @@ -1,7 +1,7 @@ define([ 'jquery', 'kbaseSampleSetView', - 'test/unit/utils/mswUtils', + 'testUtils/mswUtils', 'require', 'jsonrpc/1.1/ServiceClient', 'narrativeConfig', diff --git a/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js b/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js index aa5c4059d9..d830dba279 100644 --- a/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/DynamicServiceClient-spec.js @@ -1,5 +1,5 @@ define([ - 'test/unit/utils/mswUtils', + 'testUtils/mswUtils', 'jsonrpc/1.1/DynamicServiceClient', 'jsonrpc/1.1/errors', './helpers', diff --git a/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js b/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js index 78e5061e21..7e0838376b 100644 --- a/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/JSONRPCClient-spec.js @@ -1,5 +1,5 @@ define([ - 'test/unit/utils/mswUtils', + 'testUtils/mswUtils', 'jsonrpc/1.1/JSONRPCClient', 'jsonrpc/1.1/errors', 'jsonrpc/1.1/jsonrpcErrors', diff --git a/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js b/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js index 580ab295e3..a9bd0f097c 100644 --- a/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js +++ b/test/unit/spec/jsonrpc/1.1/ServiceClient-spec.js @@ -1,4 +1,4 @@ -define(['test/unit/utils/mswUtils', 'jsonrpc/1.1/ServiceClient', './helpers'], ( +define(['testUtils/mswUtils', 'jsonrpc/1.1/ServiceClient', './helpers'], ( mswUtils, ServiceClient, helpers From 152e8a6dbd62ef8ace7e2583625adcf00ed6d15a Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 27 Oct 2021 07:44:48 -0700 Subject: [PATCH 52/54] remove unit test utils pattern --- test/unit/karma.conf.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/unit/karma.conf.js b/test/unit/karma.conf.js index b28788904a..5cf7978598 100644 --- a/test/unit/karma.conf.js +++ b/test/unit/karma.conf.js @@ -42,7 +42,6 @@ module.exports = function (config) { 'test/unit/testUtil.js', 'test/unit/mocks.js', 'test/unit/test-main.js', - { pattern: 'test/unit/utils/**/*.js', included: false }, { pattern: 'test/unit/spec/**/*.js', included: false }, { pattern: 'test/unit/spec/**/*.json', included: false }, { pattern: 'test/testConfig.json', included: false, nocache: true }, From 4ce8d5281fcbd0c348ee711449019f8b8ea48cb2 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 27 Oct 2021 08:58:33 -0700 Subject: [PATCH 53/54] restore script name changed in sync from origin --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4cffb0b188..77b8af2248 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "test": "karma start test/unit/karma.conf.js", "uglify": "terser kbase-extension/static/kbase-narrative.js -c --source-map --output kbase-extension/static/kbase-narrative-min.js", "prepare": "husky install", - "install-npm": "node scripts/install-npm.js" + "copy-node-modules-to-ext-modules": "node scripts/copy-node-modules-to-ext-modules.js" }, "lint-staged": { "*.js": [ From a904655c8cc4810279bd8ba395db162462ea5a65 Mon Sep 17 00:00:00 2001 From: Erik Pearson Date: Wed, 27 Oct 2021 09:18:37 -0700 Subject: [PATCH 54/54] make tab test more reliable --- test/integration/specs/kbaseNarrativeDataPanel_test.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/integration/specs/kbaseNarrativeDataPanel_test.js b/test/integration/specs/kbaseNarrativeDataPanel_test.js index ee0fe40ae5..17344a41a9 100644 --- a/test/integration/specs/kbaseNarrativeDataPanel_test.js +++ b/test/integration/specs/kbaseNarrativeDataPanel_test.js @@ -1,6 +1,6 @@ 'use strict'; -const { login, openNarrative, clickWhenReady, waitForClass } = require('../wdioUtils.js'); +const { login, openNarrative, clickWhenReady, waitForClass, waitForText } = require('../wdioUtils.js'); // Ideally the test data should be the same, except for narrative id, in each env. // But currently CI and prod are indexed differently. @@ -174,8 +174,7 @@ async function selectTabByLabel(slideoutPanel, name, label) { const tabLabelElement = await slideoutPanel.$( `[data-test-id="tab-${name}"] [data-test-id="label"]` ); - const tabLabel = await tabLabelElement.getText(); - expect(tabLabel).toEqual(label); + await waitForText(tabLabelElement, label); await clickWhenReady(tabLabelElement); return ensureTabIsActive(slideoutPanel, name); }