From d9a80b198683e187f61ddf88368eaa2dbed4d7d4 Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 12 May 2020 14:27:25 +0200 Subject: [PATCH 001/184] check is ast present --- src/app/compiler/compiler-abstract.js | 4 ++++ src/lib/offsetToLineColumnConverter.js | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/app/compiler/compiler-abstract.js b/src/app/compiler/compiler-abstract.js index aa3b1cfaa7..1e18ec1470 100644 --- a/src/app/compiler/compiler-abstract.js +++ b/src/app/compiler/compiler-abstract.js @@ -32,6 +32,10 @@ module.exports = class CompilerAbstract { getSourceName (fileIndex) { if (this.data && this.data.sources) { return Object.keys(this.data.sources)[fileIndex] + } else if (Object.keys(this.source.sources).length === 1) { + // if we don't have ast, we return the only one filename present. + const sourcesArray = Object.keys(this.source.sources) + return sourcesArray[0] } return null } diff --git a/src/lib/offsetToLineColumnConverter.js b/src/lib/offsetToLineColumnConverter.js index 46e192b120..8436706484 100644 --- a/src/lib/offsetToLineColumnConverter.js +++ b/src/lib/offsetToLineColumnConverter.js @@ -19,11 +19,17 @@ export class OffsetToLineColumnConverter extends Plugin { offsetToLineColumn (rawLocation, file, sources, asts) { if (!this.lineBreakPositionsByContent[file]) { - for (var filename in asts) { - var source = asts[filename] - if (source.id === file) { - this.lineBreakPositionsByContent[file] = this.sourceMappingDecoder.getLinebreakPositions(sources[filename].content) - break + const sourcesArray = Object.keys(sources) + if (!asts && file === 0 && sourcesArray.length === 1) { + // if we don't have ast, we process the only one available content + this.lineBreakPositionsByContent[file] = this.sourceMappingDecoder.getLinebreakPositions(sources[sourcesArray[0]].content) + } else { + for (var filename in asts) { + var source = asts[filename] + if (source.id === file) { + this.lineBreakPositionsByContent[file] = this.sourceMappingDecoder.getLinebreakPositions(sources[filename].content) + break + } } } } From 8f203b1f32e58593eae06b1aad3dca1142a1437d Mon Sep 17 00:00:00 2001 From: LianaHus Date: Mon, 25 May 2020 17:13:48 +0200 Subject: [PATCH 002/184] new light theme --- src/app/tabs/theme-module.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/tabs/theme-module.js b/src/app/tabs/theme-module.js index 36ee8df523..0535941bad 100644 --- a/src/app/tabs/theme-module.js +++ b/src/app/tabs/theme-module.js @@ -5,7 +5,7 @@ import yo from 'yo-yo' const themes = [ {name: 'Dark', quality: 'dark', url: 'https://res.cloudinary.com/dvtmp0niu/raw/upload/v1584965247/remix-dark_tmkdla.css'}, - {name: 'Light', quality: 'light', url: 'https://res.cloudinary.com/dvtmp0niu/raw/upload/v1584966540/remix-light_t0c780.css'}, + {name: 'Light', quality: 'light', url: 'https://res.cloudinary.com/lianahus/raw/upload/v1590154457/remix-themes/remix-light_lg1arb.css'}, {name: 'Cerulean', quality: 'light', url: 'https://bootswatch.com/4/cerulean/bootstrap.min.css'}, {name: 'Flatly', quality: 'light', url: 'https://bootswatch.com/4/flatly/bootstrap.min.css'}, From ac6f3a84b5cdfc487cd04117a37adf47639c89c4 Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Mon, 25 May 2020 16:21:10 +0000 Subject: [PATCH 003/184] Changes to package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 062a9cfa16..8b83e696b6 100644 --- a/package.json +++ b/package.json @@ -185,7 +185,6 @@ "nightwatch_local_fileExplorer": "nightwatch ./test-browser/tests/fileExplorer.test.js --config nightwatch.js --env chrome ", "nightwatch_local_debugger": "nightwatch ./test-browser/tests/debugger.test.js --config nightwatch.js --env chrome ", "nightwatch_local_editor": "nightwatch ./test-browser/tests/editor.test.js --config nightwatch.js --env chrome ", - "nightwatch_local_runAndDeploy": "nightwatch ./test-browser/tests/runAndDeploy.js --config nightwatch.js --env chrome-runAndDeploy ", "onchange": "onchange build/app.js -- npm-run-all lint", "prepublish": "mkdirp build; npm-run-all -ls downloadsolc_root build", From 75d5b540149fb31ae03085942827bfe1abaa0613 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 27 May 2020 11:36:16 +0200 Subject: [PATCH 004/184] collapse terminal and side panel --- src/app.js | 5 ++++- src/app/panels/main-view.js | 11 ++++++++++- src/framingService.js | 5 +++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/app.js b/src/app.js index d19af373e6..2659ddb82f 100644 --- a/src/app.js +++ b/src/app.js @@ -412,7 +412,8 @@ Please make a backup of your contracts and start using http://remix.ethereum.org // get the file from gist const gistHandler = new GistHandler() const queryParams = new QueryParams() - const loadedFromGist = gistHandler.loadFromGist(queryParams.get(), fileManager) + const params = queryParams.get() + const loadedFromGist = gistHandler.loadFromGist(params, fileManager) if (!loadedFromGist) { // insert example contracts if there are no files to show self._components.filesProviders['browser'].resolveDirectory('/', (error, filesList) => { @@ -428,4 +429,6 @@ Please make a backup of your contracts and start using http://remix.ethereum.org if (isElectron()) { appManager.activatePlugin('remixd') } + + if (params.embed) framingService.embed() } diff --git a/src/app/panels/main-view.js b/src/app/panels/main-view.js index 6e9e2a4f54..38d8c0f388 100644 --- a/src/app/panels/main-view.js +++ b/src/app/panels/main-view.js @@ -80,7 +80,7 @@ export class MainView { self.data = { _layout: { top: { - offset: self._deps.config.get('terminal-top-offset') || 150, + offset: self._terminalTopOffset(), show: true } } @@ -97,6 +97,9 @@ export class MainView { }) } } + _terminalTopOffset () { + return this._deps.config.get('terminal-top-offset') || 150 + } _adjustLayout (direction, delta) { var limitUp = 0 var limitDown = 32 @@ -126,6 +129,12 @@ export class MainView { self._components.terminal.scroll2bottom() } } + minimizeTerminal () { + this._adjustLayout('top') + } + showTerminal (offset) { + this._adjustLayout('top', offset || this._terminalTopOffset()) + } getTerminal () { return this._components.terminal } diff --git a/src/framingService.js b/src/framingService.js index fa8a0d3237..1d59cf822b 100644 --- a/src/framingService.js +++ b/src/framingService.js @@ -34,4 +34,9 @@ export class FramingService { } }) } + + embed () { + this.mainView.minimizeTerminal() + this.resizeFeature.hidePanel() + } } From 0d8c7f1ac7a474ec209abb5056827d78614a0710 Mon Sep 17 00:00:00 2001 From: LianaHus Date: Thu, 28 May 2020 01:12:54 +0200 Subject: [PATCH 005/184] new Ace editor dark theme --- assets/js/editor/darkTheme.js | 180 ++++++++++++++++++++++++++++++++++ src/app/editor/editor.js | 2 +- 2 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 assets/js/editor/darkTheme.js diff --git a/assets/js/editor/darkTheme.js b/assets/js/editor/darkTheme.js new file mode 100644 index 0000000000..9c7e68f0be --- /dev/null +++ b/assets/js/editor/darkTheme.js @@ -0,0 +1,180 @@ +ace.define("ace/theme/chaos",["require","exports","module","ace/lib/dom"], function(acequire, exports, module) { + + exports.isDark = true; + exports.cssClass = "ace-chaos"; + exports.cssText = ".ace-chaos .ace_gutter {\ + background: #2a2c3f;\ + color: #8789a1;\ + border-right: 1px solid #282828;\ + }\ + .ace-chaos .ace_gutter-cell.ace_warning {\ + background-image: none;\ + background: #FC0;\ + border-left: none;\ + padding-left: 0;\ + color: #000;\ + }\ + .ace-chaos .ace_gutter-cell.ace_error {\ + background-position: -6px center;\ + background-image: none;\ + background: #F10;\ + border-left: none;\ + padding-left: 0;\ + color: #000;\ + }\ + .ace-chaos .ace_print-margin {\ + border-left: 1px solid #555;\ + right: 0;\ + background: #1D1D1D;\ + }\ + .ace-chaos {\ + background-color: #222336;\ + color: #a2a3bd;\ + }\ + .ace-chaos .ace_cursor {\ + border-left: 2px solid #FFFFFF;\ + }\ + .ace-chaos .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FFFFFF;\ + }\ + .ace-chaos .ace_marker-layer .ace_selection {\ + background: #494836;\ + }\ + .ace-chaos .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ + }\ + .ace-chaos .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #FCE94F;\ + }\ + .ace-chaos .ace_marker-layer .ace_active-line {\ + background: #363950;\ + }\ + .ace-chaos .ace_gutter-active-line {\ + background-color: #363950;\ + }\ + .ace-chaos .ace_invisible {\ + color: #404040;\ + }\ + .ace-chaos .ace_rparen {\ + color: #d4d7ed;\ + }\ + .ace-chaos .ace_lparen {\ + color: #d4d7ed;\ + }\ + .ace-chaos .ace_keyword {\ + color:#ffa76d;\ + }\ + .ace-chaos .ace_keyword.ace_operator {\ + color:#eceeff;\ + }\ + .ace-chaos .ace_constant {\ + color:#1EDAFB;\ + }\ + .ace-chaos .ace_constant.ace_language {\ + color:#FDC251;\ + }\ + .ace-chaos .ace_constant.ace_library {\ + color:#8DFF0A;\ + }\ + .ace-chaos .ace_constant.ace_numeric {\ + color:#eceeff;\ + }\ + .ace-chaos .ace_invalid {\ + color:#FFFFFF;\ + background-color:#990000;\ + }\ + .ace-chaos .ace_invalid.ace_deprecated {\ + color:#FFFFFF;\ + background-color:#990000;\ + }\ + .ace-chaos .ace_support {\ + color: #999;\ + }\ + .ace-chaos .ace_support.ace_function {\ + color:#3fe2a7;\ + }\ + .ace-chaos .ace_function {\ + color:#3fe2a7;\ + }\ + .ace-chaos .ace_string {\ + color:#eceeff;\ + }\ + .ace-chaos .ace_comment {\ + color:#a7a7a7;\ + font-style:italic;\ + padding-bottom: 0px;\ + }\ + .ace-chaos .ace_type {\ + color:#75ceef;\ + }]\ + .ace-chaos .ace_visibility (\ + color:#f7d777;\ + )\ + .ace-chaos .ace_identifier {\ + color:#bec1dd;\ + }\ + .ace-chaos .ace_modifier {\ + color:#efff2f;\ + }\ + .ace-chaos .ace-boolean {\ + color:#ff86ac;\ + }\ + .ace-chaos .ace_statemutability {\ + color:#ff8181;\ + }\ + .ace-chaos .ace_variable {\ + color:#e0bb83;\ + }\ + .ace-chaos .ace_meta.ace_tag {\ + color:#BE53E6;\ + }\ + .ace-chaos .ace_entity.ace_other.ace_attribute-name {\ + color:#4aa8fd;\ + }\ + .ace-chaos .ace_markup.ace_underline {\ + text-decoration: underline;\ + }\ + .ace-chaos .ace_fold-widget {\ + text-align: center;\ + }\ + .ace-chaos .ace_fold-widget:hover {\ + color: #777;\ + }\ + .ace-chaos .ace_fold-widget.ace_start,\ + .ace-chaos .ace_fold-widget.ace_end,\ + .ace-chaos .ace_fold-widget.ace_closed{\ + background: none;\ + border: none;\ + box-shadow: none;\ + }\ + .ace-chaos .ace_fold-widget.ace_start:after {\ + content: '▾'\ + }\ + .ace-chaos .ace_fold-widget.ace_end:after {\ + content: '▴'\ + }\ + .ace-chaos .ace_fold-widget.ace_closed:after {\ + content: '‣'\ + }\ + .ace-chaos .ace_indent-guide {\ + border-right:1px dotted #333;\ + margin-right:-1px;\ + }\ + .ace-chaos .ace_fold { \ + background: #222; \ + border-radius: 3px; \ + color: #7AF; \ + border: none; \ + }\ + .ace-chaos .ace_fold:hover {\ + background: #CCC; \ + color: #000;\ + }\ + "; + + var dom = acequire("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); + + }); \ No newline at end of file diff --git a/src/app/editor/editor.js b/src/app/editor/editor.js index ea1a3fa4b8..ecfa4d40b4 100644 --- a/src/app/editor/editor.js +++ b/src/app/editor/editor.js @@ -20,8 +20,8 @@ require('brace/mode/javascript') require('brace/mode/python') require('brace/mode/json') require('brace/mode/rust') -require('brace/theme/chaos') require('brace/theme/chrome') +require('../../../assets/js/editor/darkTheme') const css = csjs` .ace-editor { From f089853b9c0e94cacd30ee9219a8b1cfb68b26f7 Mon Sep 17 00:00:00 2001 From: LianaHus Date: Thu, 28 May 2020 02:31:59 +0200 Subject: [PATCH 006/184] converted base64 formats to webp --- assets/img/deployAndRun.webp | Bin 0 -> 32324 bytes assets/img/fileManager.webp | Bin 0 -> 12312 bytes assets/img/ipfs.webp | Bin 0 -> 22016 bytes assets/img/localPlugin.webp | Bin 0 -> 44272 bytes assets/img/pluginManager.webp | Bin 0 -> 16914 bytes assets/img/remixLogo.webp | Bin 0 -> 4520 bytes assets/img/settings.webp | Bin 0 -> 23508 bytes assets/img/solidity.webp | Bin 0 -> 9248 bytes assets/img/staticAnalysis.webp | Bin 0 -> 15158 bytes assets/img/swarm.webp | Bin 0 -> 28736 bytes assets/img/unitTesting.webp | Bin 0 -> 408 bytes assets/js/editor/darkTheme.js | 2 +- src/app/components/local-plugin.js | 2 +- src/app/components/plugin-manager-component.js | 2 +- src/app/files/fileManager.js | 2 +- src/app/panels/file-panel.js | 2 +- src/app/panels/styles/terminal-styles.js | 1 - src/app/tabs/analysis-tab.js | 2 +- src/app/tabs/compile-tab.js | 9 +++------ src/app/tabs/debugger-tab.js | 2 +- src/app/tabs/settings-tab.js | 2 +- src/app/tabs/test-tab.js | 2 +- src/app/udapp/run-tab.js | 2 +- src/app/ui/landing-page/landing-page.js | 2 +- 24 files changed, 14 insertions(+), 18 deletions(-) create mode 100644 assets/img/deployAndRun.webp create mode 100644 assets/img/fileManager.webp create mode 100644 assets/img/ipfs.webp create mode 100644 assets/img/localPlugin.webp create mode 100644 assets/img/pluginManager.webp create mode 100644 assets/img/remixLogo.webp create mode 100644 assets/img/settings.webp create mode 100644 assets/img/solidity.webp create mode 100644 assets/img/staticAnalysis.webp create mode 100644 assets/img/swarm.webp create mode 100644 assets/img/unitTesting.webp diff --git a/assets/img/deployAndRun.webp b/assets/img/deployAndRun.webp new file mode 100644 index 0000000000000000000000000000000000000000..c652f89ee215922980341fb64a8977e5e9996a8c GIT binary patch literal 32324 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 literal 0 HcmV?d00001 diff --git a/assets/img/fileManager.webp b/assets/img/fileManager.webp new file mode 100644 index 0000000000000000000000000000000000000000..185d3acc1abb936fa118a86c6c8fe6e1a506a99e GIT binary patch literal 12312 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 literal 0 HcmV?d00001 diff --git a/assets/img/ipfs.webp b/assets/img/ipfs.webp new file mode 100644 index 0000000000000000000000000000000000000000..9cdfa7380c503f4ccfed36563f44cef6c5f1b082 GIT binary patch literal 22016 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�T=PP<FI&jl+3$<__DXK**Wc5bdQBwosO_oHf%J4W zBjas%|4ut{)(bVL>qZaV+qZYG{Gf)gpVrd3og-wg_Gv>z>~vJXub3Sd{M&{9rAP6D z6CHE!`Ps<`T{k_{Hf^a~95#PwM}W7Cfx zH6v#_FK@EF(dXj*5MS(G_$@VbjtMkf9w&2hbejmR zFij*%y;nm@BhTh}=&~8fS)Rj93u=S@{16~y+KutVO|s+8x=C2_=F>&pbI;>c4D(2Ful;x8I^L*TSj+@QOVtk*x)Z5C}ZJ^1e=TyfsB~7PyRJIdD8Xxb!`v7{_d1M!|&Nm_aJ{2`Z~WP5pqEF zVivUvsp~x;^?fhzTVJ=XIbKJ; z_#SfZT-d$rIP^g2(!ct?%3bvw`ksEreE(anzF&8q_zt{BeDc3zufRTpUY=j{F7*z- zkH3@u9ezINTkLs`efz%sHtGg^3w=#}yMAI`mrU}#=f3&w^DO$>ek*;eee(4pJ>*_~ zzw|7AeS9Ch{VxDxK%Bpl|Fi$M+?)4f*bn*F`VaX(pZ_f1?Z5N?t^NQ1v-VZ}EB$}} z5BDGN|NsB?`wjke{j>hx?T7#W{+~b}@qhpO0DsW`|L$%41NYb6Kde9Bzry~xd7l0Q z{7>ZP_^%@0ZT>g%tJvp9_Zjuw`JdxG9{+v*fAVM2|Czdkdk6jx_Kzl=vfGE4U$!5F z^Je;g`(NjOz{L|NpsT;3m{FSFl`7Xf~#_8&g^hsjUXo)`MzmLA5oWu0`}yPsH<+DqHwIb0wAt{Z|c;j)A0%hQdvvn__X~kB+*iLM4SHD=%a0&|4COGOF z)xT7Bm`ah1)gZ#GghB5z9n2HHW!WJ(atA$!lN(mdYgin&t1bSDk612BtH;hN8-jZ^ zj&aI=WALL~>Wbmb@EY&|(rh9J*yVke|9<~R`-7qnz#abXZ$hLrT?Do5gGqep@D0tY zaltzQu-O!E)94T&R(p!0srdhrvUpm~y{#Ks-a9-2g3i?;8WIIvc_|cmqs+MCX!%9w zpd-|*v`(Iax<~kCyWd6?Y*y`s!PO26|3{B_BA+6;MM)s3(%1UEtHW$gtQ1z+`ly4v zKnL6UcNER0Er=4}b^_;i6r7zsee$cwE3Hs9iDHZS7`Z-;phAbapYIFwL*2#y8{hGL z$BMZgyvJ)%vGl zbtkJU45`&gj#=r*zO~eAu_1``47b4@(jT=Q!?aRlcqE_M*e_R||LTS8okhL6QozTD z=gANb48r$9G;PJwbHZQYi~_SzwkA2bqrko*w7!$4f>o<0UMO3J8c2d_rM~a&zvj`o zp+JJ^oaYl=X?+YY%+2R)B+M3t{Q?YMiJ>tlOJ?V(2zCWr4hy=2s?k@uz2{*X4%2`) zZOAmUn>`=k)uh4YosZw*>~>61efg{5xpx(T8&%>}N&Ec_d*|^(v@^@!_}Wl7otEwJ zN`9e0nDUkl)g|Z&F0~3yFy#6S4#ZEX&rt!Mh9mx;nM*5C7haqBJbj4K-xpgye6#`7 zZ2^u87SRk5AmbvXEcB2}17Y>tL-HH>KZB3=>pVK6n&Kkn`U(*#icF;u>w*=W88wff zm-7c!pz&Gk1`e+&FV`m@{oQQ$$cyFflu<+5kj9Ur9^Osho>g3OAWUxF(`lsl6*o7g)}*5GRm1Vhoa*h0VR&6t(*aj9L7TinKG+`A5LN@ z#P@eNlxR$LGN47G1Joy{dn9skaL;kjtG2K9G0B{n14X%a+LP?z;L-4*BY8T zQ&&W*SXujkg~&l&Nty3Qd2UKsyEcN8jUd8e<}>Zly&tR& z#sfO75q}UmEWAP>>W&CeUpc_2Q_5s%dc;q@ZIxlSGC1B+=Fu+3_b zw4;H%({YKTd8{fKh?Fy0oLk!JovJOF(UpK4L4FvtIcu(o`imbtU;^rj{!%olc9uE+ zGV{6F-w^-_t7&~`qkkzuD~gDbcA>K}?T05ES5xHmM*VkF1eE75-OrZM zU?bee?o7|bwK0ZEZ{_Llp7w}L;>!TZeJ5pxTe=9cstAr-9jPce*9MscuJE$xp~->aE>0dpLJeP^6Os% zfYD)YX90@Zo(vZUm3Aj4*j%JcX$q4vWW5g>q7wXem)9Y|22-fblnGj#A9m>4eXenP zC_f8aqcP+ns}s6o4)E5d3@a8IC@(<9INznCeYTa;vY){chQJnTKYx@_)Z@Ql>9Y6}b;k@{D|i(WUsz`w^x zn8oxIhenN!FVON*fuFNR1HyCveldhCK3I(BObhK3JpJNLqR*G;ONg0f;}fWCRHcir zRt69pM)aJSpg1mK#joMka=%UA!p29{yL`HwUv32qnX(RGK{9CMhxN^8Pa98rAv^BA zRd^wAg`4$Vz0!WQxeQDJ>A$UkfvCt5y(=bes}=SJ)j* zIWU;c;iGpx{@sDwA=(RU^0BCJzuI)A=_8eKvYv;1^aBjuylXHsNsBWE*%r5(gjryx zy2kSg?Fx~&jZ*4kY*?H)+?>-+a`^^5-THf^k|1zxm5d7GabHe0yo0z&lCivl^H)}8 zF!~ju*E&tEe;QDYKy z7gk3gszT6l|fdMVYt&Iox>m0vDEl9 z5cCCa~r=b@YHM1Ar7hVX-d}q+qs*dp3&FmtsDUDWtg12t^Jx= zh&l#4_=MEs_8SyAy|-L6U<0nT?OI}34s~k!%GO777|gb9ICe9Nk19&C5+BXF%naRW z;?S-*RD+InW-s;W1rURdrKvdi|0~T;fv6FJBcv!@o{T*djSAIM3B>I01pUt1a>$5& z2$z*bhBo!5CyBsa*)uri=T8Hxz8@;e>+ayTn_g4-H2nHP@+XaIqjPsZwLiLQhdFsA z#u9$BxKE`r1fLOY#i^*Y?97~Bv;{{!Y;~^WESGa1S9(NEO9Xo$rw=9v6VJW2 z^o?2F+tuXzpM8#+aybqfDCL)TJRSij&x}oULk`y<*8YdKM|1!;OV6gi2Oi4bU*{~> z(Y^FHlgDllg}Ml_tcR%5bQmCu=yKazj~RnaSxyc(GD}(!Fr2-E6eW{Ce))9vmQ60| zV=h)Or&1pf;g9zy;uW03xflw(s3i02u5PB9U2RNj}YRB4#Z z)j(J5&lB~){51~d#0P7mQl%2pP3E7lbx$` zzTB+|qJNT;IWvna(R@0eBv4eZAXl8Z;L$tKpQ^fF^>b6;{^Nsqr&kLJ zJoKJKs|>o#uboRCu4?N=G2^vE5(it_dhHU^oNT4GewSYxmSUgS&@= z!T4_bT>YGh3t^N>EJgI z>K{MIwb2{*B7oF!EqN#Y{v z=2Fp&Q4H0&dUy=gaWwLjD@T7Le*yY|DpU;{PW63+_*8UFV2+_Bk5b^ zn8Njnp`)7H#b9}Tj1Sc)6_3;Oy|1|5XAmr1(p<>K88U;9+p;_!myK*!s{Z_bt;e|C zn5nz_ezs^1ciL;K0AY3q^caqFVTn^vC?lH;N}7Q|8$bu&Hc-wH>yLHP1PB$L;;8C= zMvt-Tcwt^2YVx0jm+B|DMtp)!+Dl*$Tl#N{>gI;wVGhF@thnlAuhC+nN)f~!Q0jA> z=Q++Mc>~`_M|92O#T8L$Y#Tn(o13c?@Uf5C(+g0n>^Q7mdvvX_RLO*B9bUqezVM+` z-B9{=a$PhS)A!ER1192WnDBROcAr56Pb^8J}THkCsP!Z{J^!cFmLPb~`ja;NvWR_Ci&TIN z!BDAqrh3bc-8{ILR|Q)*$ENV3v3gaHOllE{&~0zmhl@|kL|xkI4MOsVQ=I2H&U2jS zInHyO=Q+-EoaZ^tbDZZn&U2jSInE#e0R6x800000&>_HrDv$H-0Uz=UcGsPWnY-Wi zQk?ba^Ont47R8H(ij_~Ub@u)w5*deksY56%0Wn7OI7&FI*}cnyKV<6MoOgWq^wyo% z38zd0GBtbqO+o-3rQ~wN;@2geBr&p5^*F#;3-DgKuH5dzAP{4t0O;~}2*ydFy0*K2 zN@aAHKPBLiU|n1T?4PtHKl2aP9xhw+h*CHVU!oZSEXlvFA}4#|m6NO*njZztk;ye+ zMOQJ?HLv+k@uaW$r0Nr*il668J6oxaoi<4LBDu~&XTDnF>aU256!njkkFGVNvSF)-`m$^#sV=Kq z%;?3*z>w>)DNSu+aPL(Y75f7}XL2;0PRHf3X7#>0wOA+dFdh^pE4|_&$=o9sQ{GL@ zFIov!Ox+j`R#dR$Zk7Gf3;CG5U;g2kq69(?X(Ixs74$`B-ppU}<4~Te;CAoSSV0Xh zrGYVvSUx1MW~icFVq!1c0`|*4_(&U^)Hrlc%XA5daL>0(I2@t&JK3G;lL{lIXNp#>r)*jcuh+r4aw>#tOZ`uo7(ELvyW#Q#E`lNskMKk)-XVS%h;qojX zQU(ZMxmnIgAArNMfj|zjEZECQXGsputIm{jwwG?u#E7byzAMX)i26b!-az?zyKBDrO#hcA4D!O zB>Rfl*eHi8o2##@F7-E?1Ks~9M#1|hR)3-})9Z(gR&b;qg#~?~{$eoFLm5TyVlE?q zyqgx=JjqZW2vL^Pq=jbTmG1zEdFgiomvek26AX0k3@SWFk}aNRjMGiuCA(GJo!BbR zlFAEgFE$6e{!S#JItb90qbPLp3&w~3#>}e|{Y8A+95Sv?=uT$6EE#h-wZ>=J<*9a< zf#Hal>}W!A4Q3qaHzx@trINO^z9`nrnIYcT32#p~G$5WzH~7ez-1cxevd#Wf!%h#& zyWQ&m2(B?uj4e)AkS30IEq&o!XB z>XzoZcN3Rd8gZn~Fsy=33ZLn5u2!qJspF&DFOk%Y5>GFmfZuW9ZC zja^f*dP2Z5bhf6tHu)p9eEXil&ksRTurp=#)5PTf5P@K+VuI|dunCEjzAxjwQMY+~ z790iBeNtl(`QXXJT^^7+L{n&bo7N9D z@Tr;T@B2IMagk7ChP7oXE)Ta0@GtJ7CdvwbpY^xmXqBU;vZ~8)Z|L7KzdSDdpWuEf zl<2R?9ycud{5Z`Cu`g!2ord8=Z{EGqH}g?pFQZuXy5)h~_jnv4aOL-nUV^|6ab{Y= zx>?2V&u8}kcofXb8M19wnx500l%65^+a(kLsjA91M$GyGGX@T0YUWo6002j6K;k$P zS*m)~|Lg~w&FlFF;`v`FO#n{q8kvj7FJ^gz-s#Dtanh7R9=&*YWT?x7JL4&;ax^36 zM8ozO+~NyAk&MeZlR-iF6k%*r?+!*Gigf_! zGyPXf6-XVc8yi_CD6AZUrN+Jq)L9Dm|HO8#a4Df3CG#JQDbL^6ZNbHcU+2>o=9Z-n zn@lHR3QX@@k`_HbQ3cqGwI6^0008D6wF@dJ^S}9pX~tPnKM#&S!ei#RiK?FiNEHuJ zCE*NmZWG-)Y+HLhSgigjs2rbD?_i{`e%go3@vV4;8KafKN;mp|m>Uv64`7jnSm5N^ z`?7W#1(#&dkbBSA$Sv>4yTY(z_~SORYteA+!O;(NQDap`p5HMMxhb3LK-#04jSugg zp0M+302U3$rn?U2qRGJsytKi|+kR0QI0px&8t4FGs#LmHq$aJck1K1*I$3=Ih^jG0 z)sBHB&r>g!@^2=}LysM%garezfor(Q#El}Jp2ID#u7ys%ecR%~F-QpM!!Y-Eh*9v* zQhDTO`Pf4iuk~@A4CM%pZlFTtwBLH{+U85WO^#DJxF)U>_Yr@sIcuU%3~@^E0eyPc zkyNw~yQU+9inpysE1Zy1Zh#oixg&Uy_vBnddBwpQ5v}+=cn>k(ipYLM0kTV-`xME)8No_J$*t-9!4Rhvm$0^oqMb=95!rgg%9lwe#!d5Ot`!EH z@k}g18P%K&S#d&r)mLst?fvQaanVa1qnaG_jmg3F1lWw{N}O z4nqiusMEBDusuj=#lb?U>{ex?cxj6e1=M(}0s{vrZD9fsccAJ(L-R(}uGo}R z7$D_i)25f>A0e5HZTH<7AY(#~u)s3(7d9rR%7B~LkWB2Z=+sdqdtzF&zzcJgrX>Z4 z;Leuk-D)JpX47Da@dh~!CytQ(+Xi0sYqJ}3z8)E=g>!G$y3a%mW1oR zYswKL>?4UDe2QYg_6$NUN&JY%nMHh?E_-*t)?j>frkW+$)s+D5XB(5UVHMq!L%X~} zBJ2IT(RK|k?8zMECS6P3I5=~&U(6I$!z{P0gTdFV$k7=IIZpH)Ppx78G*GYqian%B ziUL_MLie@;E_eb5#@>9P+|B@zxxjb|U(+UW9ZO%H%#T4d?Zf74BV@SkOG1GDnqO~l zg02*Tbm4rd{VtEXxt*T-uQ`QY#%7P3-bZeT#hyD%U}417N8x{((*m2lLGhjFxQsga zo)%Rh0fRr32={| z&GRnpke=^gvY^qwVUrAV2m23;Fwpem;oLe^QFJ{M<9mtflXs62r&aW90Slhw4%GX z?f{T*T)kQC+J{u)m-vqxq%<*wiGX2wYYcBByGyl#Sj5NFWT*jE1>04p55?}UPF`+l z5c`(tLSNt<0R(><=cRmbrp{simM}Yd#?=jQpn|F~!|D8=$_b0O7O#Ii#k__vrSjFD7GKq>dg|qXAr?cGlal9<{$3o>ZLpM0hN#OOy#%XOaFCDLv(axtv zP5SN7IDx6q530HvO8Opv`%LROu8H4JngIu=AX*!+Moz3i$8ZkIo0)@U{ z>Y*Xof1|tqL;)xBMi~h2gh5OY@!yit_SJyb7eHADRNQb{iXaEvC=d?l0Gy#5s2tMdHw@Y?x0z58U?lCB|q=uW6YWpstI|F6Df^p1c`uK3-~o8Ej!{dcxHi?JT6_2bBrtj=xz_W=7{NtG66*rHB|y92NiW6K7uW}0)iOXb;e)g2MByR{s{-l3DZe$!y5Wc& zwD)O&*^NpHy8M~9ND2Q?O6R+RH{H?xLg)T@JW9>*V8f~imZ=@-+{vSLpEgQY|A!&8 zE&|n*Uwncjo+A_oiULjemmCpGidS>a!Qi2CBPp^H{_mixRn-o=L_iO|44A8sA#;3h zMa6dtCa`E68Ej%QUYh|1`hbe-JeC8>D6h;aC7tOBI?l9eUpOvIwA)$DnhWgDff&Xb z{0cK4K>4Ac;&Zf6)Q$7=K?wlNAfa2m+L$#h@S===8W({D_DTSY1t;DUrNv{sM69TRA>H2C{-F*JT;w!B$^Y@JE!8rwuD^3zNHq+dN7L zBz~SNB=f^7$3Ai*RZiF4bY=CD{Iv8N4%|>;A0RAq|LnPVtY;a*9&t?KdRULEY+-Hz z9PGd1gw=dVgGB+SMyxTS-ArA+K0=woj8U4JiK3_+wZ$8DBu?s_^RQnuL36=$7QiFk?!Tm8i;iv^ks+O8V(@#kAI(6hJ$`ZX-M|G zaJ_Hj4~4p4w2e=Hf3D-3v5X_{p%}ioH+zln^p+uTMrpH4m<^<^xZJYW6C^SEDQ;HB zg%3~|{Oki-=)v~+u}-Scz(?eUqDe{resv8OF_TCM+xiqW;;@mTHc~n{Rw*~-t^liY zt4)#zK#2DGiLm+8|NT`sX%-LDw}d%hbg?-PAIIUVg2X>x>dZs<13R7}tn}KNqXY{$ z11R3JeeELzCa?H<B ztYVFZU2W?fM%Dq&E3rZUnPwZ0=0GRW9nsRg3B#<>)Lw}bN}uP*RR-X8)2lPhKDo9{ zesGzbWn0qT?7K_f-^C1}ROBb-#1L6>Z9ZcnJ=WT%vWs;ngUAZn#HI0QCO86zjq)`Q ztn0`pk*bAtGmF*isc;xGG5jgo>_Ua^N>9PWQ6M{qmO_!jqF`x-gvPXYM-@2zGvA+jC=yoVBcmiY!!*OY%-0&Tm$@wups0YLX zi}yJ3=iQLBr2p{w10&CQJxse4t?Ryri>{sH-XB}>A%(_zazn6Tuls0r|41{b<@~aw zh{EOF+h(B`gzB4nIgv^Sp)^; zhi8*9x{92MAC~dw6%BYT&QyIM^XhcXaJyAEo>LMlTDSX04T~XYuM=04W#TTEjYR$X znDCED&q&zcIT^2UYVQhA)jN-jMWnASv^JxBkpv{@vF3%0ahC~?HYVKf8yAAnD z>J16WwWxSU=}kO(%(x9tc*G2odR|`JR+b!iy&f}-g0G!QgO6OY993$ryGsm zT1xBfF4#S6!1Xl5DdG8Wbtg<51*nRk61NIdz-@?y>CHcH6&rKlsES`LrJ)l}`4_IC z&U8=u%(sX~+9|B-Z%<^w0Vx@N@WemA;#XDkzTp>czne=y&@c;_Dq+-HwzXwaR%+@l z3X=g{Srj)o!k1(4VO;GH+y?corB_&`NJe0cKqEdTa3_IFU+EB^K$p@oy1E*hkc?J5 zlxC_1TEI!{A6`3uftJbcbyUX^#377}kdZL^FBpiJtK~1m?^QwWxbMiWW!8Azx-m`e z$QRKJwW{9&(F(z&$OK~*0GP^o+M40RdP!}!hi!lbm+VynGO?@pt=7XE!0x`i`B2IR z@3*R5&$jBX0uq=c(qiA19WEHF1@|8FQoc*=&d-YFRB;kUvlUqAtQyK9k(cLfJ|pXL zZ1$t&zTgJJUCDm$N}%Hubj{1;Rc)Q#Dh z#*M!HzA8SElyRr2KfH+Lei<*+r#-L)J3nM2rmjQ;>%T{ytf`2>3J}I1{{F0B6LDUW zW!z*xfImYXlolrA%AwMSX4n5JoKN#!aPe|oeb563i@)p_g6oXSV~>`A0yz~R^yaX$ z3H7G#jTfA?cSsFOMb*}dqROZ-buINhNms_K6|iIeu}H9;()|0DQud4Yb{T{yxw>Dw z(}zX{u=YrLK;t>iUl-N*ZsCXxn&181Z~G+D1gmCVrTI{M5ysyWS-uH(r4vd6EBKoY z+2^ccC;1L?UV~H+iXJ0yyLENH`7@W>ocM*Q7Y6XS`3ikFJOl}KM4P?SEfX%ybwZ*$EMCX z6RaG&zN+0EB4hLI5OJbBEznS{pKua>D3Be&Qz1Yo`d*dD+%Z6;c&~-x8)qn_0&i{r z7C_1x^=u)Iwn}9>Xv*bQ^IYDNCrh@F1$GAxxFB){>nRMwrI16UnQ-xl|)2N}t1XTZt2o@|QFtt0zr~xkcZ@q-+@dV3tt@qA# z;3f=|u>AHs6rf26E)%{TuP1s#s=knP)AN62ABu%{97~4(0kEp!=~{yB0-k{b zq<_y85_vQbs1i?Y+`d83_dHTf6wZRDY0w0ISvnfhaJToL3A5xWtr%9+)<%LZr5v~) z0gkgVisR|>ZV)=e8U_I0jqOWSr$o7#$&jeQK(k-k@U8pL{S5J}SKf)%z5-7eb?2>zM@!y1;a@)e=UZcwCwlezPPL= z%mcG*35xxio`V-%eG*py007w(bqC5T)3$zEg@)uYOQWXSksfBo^J2_}@BJ(^dNGH# zR0uI?iPBirG0HSGP&2K;v9Rf5#S|wcrd9%k?dGW zLXl@(M$5CG6?cB0$YO7>H!e6Z=mBII$0}{cJWZ+z;Q~5CU`+kMa`i=XYF(&UZQ#$T z&S_>3Llh1K%>*aPFTEiY901R^K;V3-g(7vH9?aqXqnZCFu1z(GrO6nI54f!WwvHhB z2Z|Q2eT8TLFm*r%k#K$x}p>*p6Z?{#R z_y!O6hLGF9OBoX%e3O#9Ul@hF*Nh-G5-b9)O+}mulAF5^g?e*9Ywa4~Qf<5nEM|7$ zO0b)z9=I)5@LYwoy6`|4n*VO_ zMDPIY;N1}ogwmtOOqYUtT&eW(|0_;ET;jJ@=!`9T-Rj9?3QWn49IXUKtiV$yLjf#{ zMH#`oyC-k`r1e0e%1T}n)x4d0^_a!RH&jE{r_dr$HcK`Pagf?qCIT!aA|3-&mA@O* zuq9eW)#X6Pg0$#&(;pW@W;$!w8e=9z8=DQ@t;^e-1y7l0FWz*O`STL(wc^56x!ga(tZ~rkiJ6 z7e6^Wjh&aso##vo8h~apR;|pa)vL*uVaJ7MkzROx?`lB#IBS{sbq}4Vl`}1b)&~4D zC!ofUbjSWG5R4P`m6hhPn+JqbI|H3 zAV2sbblCm6Y>Tu7=(!c`?f|1FSVi3Wi|@QhJ~~Y&JZvdo#IEiDB${P^=Lo3mB67|6 zZpvgU+?8|^`&zuhk{MN{Z{4~YL(!ruVRY28xv`o~e200}tSD5{ku}9WQp-HXvLG>| zwW%fY@<15Bu9%PZ_zI;P5R=!BM`Qd;=u~kAXI!nyclsreI`QUD-;8?0vjJWmgtDCU z$0+>X3S&maO$U29WF2)O3n!gCptyte$GjC(H4z}H#mIUZuJ(mDs>gf%YR%|<0#d4h z<5o7s6uxdfWs=ytaURTZ3=Pf?i_88j?nj<)FRf_D&U>Y>aJ;uvGub%x5>cT_sAF=dvqp%{9!TbzMQHiJQ7|1sb zsVDQqq1PZyz(&&E@Nk()6jdrD%PnzTo}y?efrg}JiY+Z-@-{lqWOAS+LFi);IHUF6 zGydjXZF|CRF%`;Xa%ISmF;DWcV$>GTssNjhx(tThj$e}kZJEXzMPpk&PjgrGI>A5U zuDt&nK8SI_Bu~9H1vbW(1Q7>CMdA~wSFBnu)(;f1pQIh?a?KR64S{WR|H+<#?%66q z%Wsyt6wa@rQs`dC)U^ZgTizw#&g=_BJA`oGE$ZK(DJQq$f65H52IOf6nY8k*4q!13 zN+%mjWX1C5E;^xbl%6pQPBZ4<)4dHc<2csL5mdV)3T+vtjRW7cjqfij(x5w z*t+md94t{p6PCfM5XcR(y7>8%60R@~{*`~LJoY`;Ug$uRGAZ`P2%nG;kqp+<7;hFA z6tEuCYPeWv30PmcWiLe@yU?2BFAKjyCRiz?zSJ`^Mb+!z_Sr~e8y|9m)ArXkozNz! zs}%|=x=#LXW}|6$Hp^MnLk?pCDzx8(?y;r=u-omED06gA?iazYLqEYhaH$r8lsH1= zM+4}ZL19UXt&x@m!A2Bj^iP}c%cq}icu#ZS@GBrkORJQPTHwl+3b*IwmSWQpz|NV! ztexj_&w1tL988i*Y3@D zTkgEv&25Fh@uBjo%r9&;LJoo|9I4ImVJENE+c4G(Y)m8FX26hRVX-F=cIGB9=PDha zY&{bjK4Vu&(6#YymKqoPSpGLrU#d03!=abWs!Q5{M}Yvtk3QUb_SajeSSL%(SPP!X{M3Ae|5 z3eaKt5n@&EZe#@4@%MIME~4Z2*3g6__~wKIj+|%P;nOumYq)yNktN)s0QU7@I!0&@IsF&XIs6B785BM6g|A`+&AB;|OWxA{mDNq8>ymLq#d2o# zxU-;C(IMO)ocQZacWo~jE%c5$K*v7&q>&70ay(?$-Q}3Nl|U@ni}VLG8f@S6Y5yyS z^&&n-B%rNjjFXiqKmZ$av&SQoYZC`@UcoD>6#-!qkE}FVV$S_m5i#LTQRD+>9-o+1 zyCTzph;ZN;mqn1bLwnJHuB!O}M*$Blv0Js=D~^3a$DK;5Im7H&z4ML2Q^Rf&$;VG8RHE|EbxD zN*a*sWtD1#rg7209OaT9{Fx)Qk8WdX2vbCqIz!FB3tMlKbdqMr%SJpp9s-^6R6t+( zgl527!?8JlAw-R@#MdR8P1YP^Or{aB!)~wD^dSWALUvfu#i$VDZXAnod3)DV9r{PHp-2~TH8_M^pvNw_Q+)Vf%TUk~WQ;4Sm;m7X z?NuP>a-yPu3mHBw@w|+pA2q;OH3gYjDABT|1ljK@GwGa4xRc(~wvvgNmc>FJFw$5g zs{jbovKqvRPQX%?oBLvd+JB=Ouxce@pq=C--KQws^26Nbj$9Ik=Pce+Jy;o5R%P4& z^jg2cl(w56$9H}r+Yp(p+;j1M{;m-drmMfe2L!(*eE~gXn0sI=yH9=hbkLx6MpA#> zFZE(RJB=c^3S;;)QBPLeG-+lDhk=VUoy6{kVcp}FDE;yhk7A;Ry;g2)w-&muu`B`` z?*M(R>p@DVOL7b8y?dcYmP7mCsq6E+p>%0RBO_@!z_zo~1h(@dkEexJB5|D+;f<2P zn1Q5#@yGa|D5if%2P2}mqM?0vab6$OOGOnhE<3%2`dJAE`P!HiBX7yW*wx`k5yh36 zt7=FAH^6#WxBt(jDo+3pvA=f*LguK^q;@zsr^T~Rf#DqZR+)y;g#|Y=4{wH!;5kZ|7Ydea4Qc-LAjZIR$>8 zj=^FYNZB%IoL3#H$MC^D_OH+ULF+BlCHd&PZLFtL>FscbMV#A!>@k`7C4r))v*e29 zc*6$ZTE=1Y0GYQ05meC)WeV!V)HWY;kkf46Mi4Ta_f|xj?WNZ#DTouL48L@y6D1vG zEqW!WjEWXkKcF%1cfVD+*qx^c-$G5(eZGF`y)Y~3kA7Mc|Ei@=Z%JzJ1CC4^zkR@< z3L&iXpyc^T0L0c6|6vVutpEjkL6WD|$k^Byn6f(jAiCMGYMFAwzg9K(E!&1hSU(4A zid3gvk?un}4NMANoa05Rx{xy)tCGt%jRVy}Cg4E7oL}`H^z4J%iPIskG}&}-9Az&Z z66v^t4ZFF?&5+qLipfVjinVQM(6&6qPf+3df$v%yywPIW$f68P>835PIjx>Z$=`vq zmR>q1JJ*y-wR_g+p$Py$N%hQu9qy0?rjL-6T6jN5ZZRzzPL&<`DbS!C+T0?Cx;5nit8C+EUy|Bz;CB>|{O!E$J zqbq>mIcItkS^-Hvv2;J>G>~WI!-F|i@Vx>AZoFt?!Gyg1a|h|#B`HtsK5|7 z%}H>)#Y5wGTve{K<7@~(^Ywq_?*=@LX;x)JRnX_G1oH}Egpq@o&FK|@7~{6OWsz+| z-;V7KUT=LApQN=-e3tG~aTm>5rHw4-lu{KP#H5EnN`|rxn+5*e{Xc)nbK%m%YtlVd zREUl40 zVHrh~l)rr%UwGKT$qXD%+S8s=ZrxkO)_?sW;DO7FxLiA?7yHq_@;xdFekVCEsxt&| z5o|Q8&t36g4LTO?_xS?0FPhOPS1*8n>m!>^Kw(YJh2wzhOorK0fpy z`hFdiGBFNdea3^wf~MdyeXh))a>YnRYyY-G+k8HqqIasawon?suRBbeO3VsQHtYzI zgIB+PlzttCF#0^gB9m}K|7p(@@j$zwN%+IQfG;^#t9s~H+hOgU5P0heE}Uu!1LFK} z40!cuTOC%O`7#p+zdp{wO686ao#gH zW0h0W!wl-emAgYp&Z=1(edw3vJVz7~J8iooz?$~N&BpuNVZT_&Vx`cg{cQa`tG46` zk<_V)u!gA7CnTTI)q28(bOIy19Jr1X$}BBLo*+JN1Ak7P)Z;a{R~g?4{|P7G1M_N2n3~Z9@&qBfQaz z7>;O4+(aNLnYRYCWjX7|JU>^OmG&_Yo!qsX_J;{FJTY5&A9#HLHe+!nNtR8llbJvG zit2MG&x)fzU;o9Bh-rAq+1&MMZCEFT?TJuK)gWKaRE2K}%uR1C33&bweKaY4vN+O> zF+^76cRB$i001T=951pQKp1&^{dpJg27oYYa*R5339R0yx8!=S-g+Z$epWE%xJ+Vr z$&N%fPP|b{c$62nEP&CkVJej!py^M%l-~Egp>=}2h_=$hE|5fXTdepdxvxz;MN|lL zMCLiyBZzsr^C2V&-CP=PX3#%8 zX(C`U%`gQnRI{_~A@naC+DoNB>nvLMU0&S`#Vt*4b{JpY7^b8poBy8_rmZFR*@!GM zmc*R8Nr+7-yX106-sA-B3@JzG-Tr)68e-mOItI~QAJRLpCs(>iSa>12Ke=pT)^S?1 z_VTo0?wklT(K9m507%PblObK|8e$=AX)vJlyO7M4_plgTY$U5^fjo3G48tx!jnQ_j zJD_n)*SWVeIAxiG1BWn2RvMNyTx3l zhlKgZp z;+*rH@`LH1qb{zN;9KVqZkE28x=EToA{el6T%0Q zcw_gM_}pMXwjL*km6NbxR7c5Bd`BfSJK-;!Ti73IcG3 z;+UOq0+BMLS92eWt!5yp~3=ULz?TTy)07RF!1Kx9f6I zrC@^tUzp2fXuY|+^FcTI^?Cv!wga>y>*^H6w6}Gg(E3mOR$+Q<2sywG%!MFR3T8J_ ztp)-)NreOVjc`(Nhh9Q*rOCx_O|xX~2F8?nVK^BC-GjU9ivCUrB4^dnp}4|3)i)z0 zB--AxQzt*XRi#^25-x!pq3W-io*2C;Thn&%UF zXbC)@jSPa~awwwR=oEZnbXS`G%rng_zl=!zt|IY_2v6k>MucaF-bFmaLjfp%FGoN* z7v_x0a}|}PCmb~tA-}I}1@l6wdPwqLM3xitCov`Ampvb9X#dL& z3=2>syaW&suijJCQK1qr_V3zQ;MN+*JNOb)+zJ zfosNS|69Bx8t=pK8E|ff0Gd2d6(z90?}OS@Z!FbSWge+)be5M_KyoLwoV~uS$^fAn z)Oa!G$O4yow`(tZNdhn+K?bAT(;Pzkpai!AUmMLYYBA}lxG9r>%|l%Vy#ALjI+e_$ z^37bwz-cZ*Q92sZ5JN;xoq?O>8J$nVc8-=?Y-miO=U|PS<2mu60~Fr{$LEKpRGGr1 z3;C>Sm-XQ6uXg=qgpQ7)4l{%=^5X@&)}FgPq}O8%YPgd7))%g>CP`S;yNviX#Yw=z z8JT5K2BUIs;i-$-DU!DB+5e02?PlPAoO6@4@V-jlKYSdQwq~`bt2e7WL4*7GKAzEt z$=Yb@AVbBZHBZQTF=|d8vV9q4WPREx!q3y%4ilv&hZQ+l?}xuJ2uhCByBQt@JKMDd z#0@<-L{B;HKc(%#o17_2HRM-Bbs*tTE4$_;H~-dm{LZs4d?VNAyf|X=_f#S|9#_Xh zL+MTyS}GR7bVLJ>=@?TI+For$^aY~QWA`bFsiQ>B`b~mA8}jTXBt6!Cnro_V+!zckDzypID)bJ zlVSTf@wEpEL@Gxj&KNV7$b5}UQFts>-XII4!fRM`6d?h(2_0@iC>vxxy9?0k#T&N- zWx&;;UZyqdS?|}sSSE~iXM4~o`#8A9VU6&Pw)V}xosq8%BuCI>5Fiqgg^?|V0};s$ z9cX5r5iBMJUy*6&3dPln(b}2aXBowm|6tNsivbG^w4&90b8;OajMEv3UNl1(6K0_J zj>^NL3o9;gam8TO!x8;582f~#aa<|DE_WFt{y)L6kvHfAZ)&`rqDzo6Pvyp7KLg7Zv*i7i03+vwGhm zW^sX#3`R(B;KH-^3@rI723>=eVZ@M&>`6p z5)RKXE*>y@6g#hhGr(!=p=;@bUHyzmpRZ<5-^Z#g+UH6|R-cQo)v3CPSwnw+i?*`vk>I}x~4A>hifkI3^k$_Hsm=5~OP@PgbcKH{>(tAHvRr@n)bG^jca?Q;u~DbyL2>bo zNh4YgKN3d|YbIc5Thl=NqD@36R0Q>UdqIE2C!tw@#n7B&#%rD}|66G3PZET061CmU znmPoKFhTn-W1<^V=uAqS=nAL*v35cz^gfF&V@cNlePPdRkv4 zM(8z#>LKsW+E8ptF2>d~k^sANl5E7&xb=~xxm!h~B@XVVpLPZXQ;EZ7d&ZOl=xdU< z#*2?=Y#V@mEc9*FLOe_{sNpaXKqRS~wdJ8YwMAJrX0L|;rJ|WRiMV#gpX$4Q9CvH2 z#Z1yN+Ef#2*VbIfXT|M*hL2+m9B_cJXsT;xib+j$E-6f)^Xe{sL-3y+mV8jE9@zq6 zY%B^2FSOAF0<}N8XM>qyT5>4sw)l-$%vhqKWg(FIlqF#dbPIb&3JLaCPU>+Q0_K$2 zfn0RAanj*n6P|2Vaw}~Qz~lZ%FX{kmi#8Y(Fpp}eOSr#j{8$qok+n7Bko5C*OB@D} z(XW%f(9&lT5b$n*M3aKIns?yXJ@x4BWo37VtZyAhP8s0UUo~N4nl1X|h{!Z&A<*<$ z4KjRlSl`y)12A3uWW673>H_%N8OvelQXrHe%rJOn{&GH^!f^Pi!vJa*GCyX~AgsE! z6=CH_NI7m&Ybjqp!WAnkH}Gi?*H7ZU@0FIUdB{PE^|MCH8SWQ;3-!Hb>0GX;5C9cf z4Z|i<(;a0QbsN=J@DHJ018M;6bW002!)C=h%tMnh*OeeY}Do4~o=Y&Q62!#?6O#{*dHpwDgDo zm-;du%;#(M6#{LZOY_DY5n%AG?*Lu9|0uWANbm^PiRm|~2&PWykn?93uevQgg>j6% zc_7}%Btsd&k^}mBAd$y-ZILUZ3J`te1Z?Sp|ZN^#CRG z;kv80*hngw$dhVjdu%b`&$GpSpt8Tfl`bCkLR=-%rx1TeS#63)mBL+Ye6|VdZKWp3e{+}+Sg4e67wUv(!iGKnTvAp8%l03$q3BswcwBp~Z^m4Ef z+V3xMQO+VHp&z54Z;bD;iH-ZiJ^Bai`c6;tSS<_4gyZ+sFLt+#tcUrOI;{M?mKWdm zxJQ98So@mp2tiWfh_X(r9!CATZ(~D4qf?qz{}-i+1>u_@GBFv`!ZO-I98*!${6KZd zRbcU%Fr?k>$NWs%v1aYP$3!6>zBbP(WG7&})fZkv!!9^&b}; z@pZfrUTLv!85eOMx}Y26_O?0(VdQR%8UG$s^Lh}4lHS&4V;Y3FOzGujbzMGS2r^QA zB;mz)q6Wza%^0*^$peHW;k)rapJrktQ~cQG;?on&pOqPu{7GH!SUUotVkU&?$5gmk z3uE>ZpYQWTvU%$g62!i1uLJ6}Y3MkZU@3rLFE}oLY6q9|btx)7y-YzwU=Ue+pnX*%l5&!hVaCcfHUpU5;psprI zw(*d~OQA?~P!CXozE0;PS#Cg?9ZHy*;Jhe`Suu)Znzb4037XNpC_n@YU`Gz`)LFMt z|6Arot{(Z3#r(hf9(cfZ2>NBS1ZoJcuAOihhhKEls4EP{6gBSs3dP7G;qeEENDJ_G zlM3)z!0C&t))3U;L&8)scK6pMMtqo?@vbU}Qd}!{!0QGmnAA2?-*|=TP*{fV)QA1{ zG!nwat*F-W5bmRxEL~IdZJr5&^0-7!7(@OnQ)Hs98x0)V4R4H{)`DSTNLtRCfff+e zhL|lm9Qr*X-KAYXmVu#fBOegykDM2e?{@nOr%c(hSfla<=1OePAb+Lq zY9lOFyVKg(m446f@*3s6l-byL)xDz_++XrD<(;{g10>6?E96@nKMQ0;W~_74g?kD^ zUTlUuzr=FQIsz;B0vRi(>_TK2raA8N37n1WhlG~I^1mg6&eq~2NG>Z_^DGC0Nk!?1 zvfHW4@DQ;f5S-wumGsPGF#Q~{U;XsCPN@Xl5D?;vBQhsq&a0Jp(J-*p8sE6e>VLrf zsOI>xtxtBof39~sh30+c8L8b!yF=2NVf~+SoRtCYkI0LsXtE+HC}vKidPr!VeF>fZ z2Dg%&8^*Je`hx3C0*<#Y;4Rn_ckh@*s(1`PNFfU=eMb^WP4M5QtL_w3Aq(tBDQ>%VvK+r5>fW6|(_vOw4QqW^UIY!so?0N?y*0hU6vj}ssM$7gr&9ll zog29y6o7EFvw{4%tm{A9>R_`PBJA7PE+mKg&i!D%AD4YGkC0(j1+VdXvrdgZd_|>q zW=MD&5(<+(hVwJ$(&r@AAh=k9*bsJs;&o`V#%!hbnzCYcWqu4C#?{QO5G>xE)k)76 zx~@!2($_F~xNVxPxx21>Kb{l4e}N!rtVP}mYkj_mCVm6TJoz$=Y#{@fnS!H177!(= z2;t|-^JrAF9^(HnNoZ!mUbrv}YO77CyK2srRKgd#Z%OE8piiD)8(5*j9n9qDq|YyT zX%1#)(HS<8!M1iP9xh7D4f=rE!pyfrJ~KFV-(~*06mdo}zw2TAcu@`AzHp81B{F6b zc$<@y)z?Wb+!wUnqbMr&xa|bXHw&p|jkR8x6k|+6c+DqM*tKq4=D@aE)e+UQ!kK(1u^^Cyg+Z`Bm^k7DFoJX0|qGL_9?=CN;N6j8CN?br@i@XtBEAT*p zY`&Y!{Tb4y+f8eIZFP!1`D@?dO=!Z;*s%)MHMjrWWyiLba0xFM%vj5P#_T=_Yb|CS zqhPZ~E!u)0jGSStnrZj|3(v#=>CP4%z>@}bm()!Y|C zl~Y9jB5+QDG2oxpSntaEYDpYoc2Zm_2+k%ZIFlz-H$J-;0H@wf?04rq`bQTRuSy3d ziB3=odE-VSvoyBOpAnagL#Z)AgNynW`3=Fe3I7r?pdBJ7nenO}G>Vh_;J*6pwk`x~ zwa#Vt;YYi1G|Pelhr8`bU;rbXskjHaA0}1(IiVXyaw@BU^cY=T+S2JYz|ke5CQ(8- ztIdoH8lS-3N4aCDHp}D!yaquP^3{(kI+t}@wUbq=MsmCQ7qn^vVp4zJO}al%wAGw5K~;OZbDLkI(7U1cQ$>a@v$?`f z=z2I^g9$}t@bQjM8{=(UzfzzdjD|3eGDwGMFz!&VeCApHi#O6K(h=up_?K&boPYFrfH5SOJm&}?xtjfqa9t=JZr zp?a5<1!<}+{v7fGgln5)Lw(v`-S+UD=&um_#eE=NkEhN96*WWt~&LXz;ghc5slxp-bljA*b`Tcee1cDnt}d z-)x!n3*`_s!L-ji%bfa=m?)syzSNpqUJXKgLA^J}um(Q3rCv1BGTy2ufYoSX`g5iV*+8GnW&3xCtU!;xkzybwszHa<#q)*5bS!Fq7+ z#f~89x2MrwA4rK}&MSE!J;hJ{(Y9v4nkm{W#s8L&h%a$G2wf-wV`36LuiX@Fx@iJK z?O)cis|>0;k-61Ebh+T^{urF52k3FHVjGF*=ix6VtVc>Yjkbm@SFM)89rGy~0G&Y^ zI4JMtvm+U+dk8ZY{Eqy%JVvIy`58g|mdUlyKA>8I>`(mEZFHd0bL!zrh_;5rWfXt+ z>ti^2>xJqrdQ#F8y-;##H;*X!YG^3^WP-3Z(rOR6%f1UhIBM5*eG{DQ;f%z_!#mr z>27&sucxHj3T_JkM*$84Hpgs#Cdr%qvvALrCNa0KKrkJGNp-eOI<3&VK$AP496P&X ziHlvHwO@_JxkBDJ1J?gWfRfUUe(*2__y zH_3lk;s_LWr@J#~1c$l`GL3+P{)rtcjN$bWY^GtZ@_c;anV>`?+A=cC9kAY(=s-Xz z_d~{2EA`|Yz25A`X>L-x&hYE6Em&yMQ#KX32ORgVPODe!DB7;KT4feqt)^rNh-Y8(LEUZ`Is@x`4LPURtt`jIcdU|%~pq2bHGxwhc(WzLHq zi*G*Lkjj+n!Hz&g!J^5+Hz_G`<{3PzFNkY-Xsrjsa;GMPq#L*Zxqu8MGAOOrIAZeQ zd<|9xToadn^K&0;F@NN7LI?uQ3f8 z`1+H4`<*Ae>Vt)#$S(Yzg`MG(dA#ylHH|~{>_}(k^6TNZMj=jLZD{DPC!WWYg&N~R zk?$4s_8T7t0hvYbPc8T@6*zOayk-_qEYbhbz*-W%f}Cb<6agI~(|CjoOPz}GX20@K zIH%k(?BGVI5kR?+2oz*=eSv_@E5NiXIpP^ZG!X=ADd~bp-YULKLSyLM-L1S#XrKTt zybt<`jaO6|&E#64F6myfabslq7K(|zb?#=ABPx}586V@osQr3Q(ccJyh+lWQGGv{4 z6oo0yONFPr`EMEVasZd7)E(h4*JMe#90Ib6<5`>`{3iXifXB105XA__a+xo<)B2ik zY)*~V@D4qJqQCn^rtSMa7$`-#gsEVF1DlvUDynr4au=2yE^cyLei0D?jJ!S?8VWG7L!3k$$0Div+ck{O_0!s^Se`G0e}#zDXcW4%$ZaeO&1G!( zjjZ-5tgW7|Z=42FOer}<4nrjp%{@X)IJK~Y9wuiNLc9GRHW-ay{Ox7i@3JaG1Wq;f z9U-$Jh$l-=_|UXLfcVH&$wzY1^GD&IeUu+fWq+OH80m4XwZ(Vgl#$ITAOa9ve5WcH zn<#J}{Zgy!n$ki%s#~ML6uva5NAjTL)doK{R27dWJW+dLt=7Xtm@~_QXvAE9>MR7& zT8PqFA7jbmEYsce071;>M@LNcL-5nT7Z6xauK6HshBnEE@cl!`N_HN)>S>QXHVOOr zgZsE2V6MMdrOfC(uslQw|DBvjV*EcyPAP!c5Hjne+u*S%d>ktj>~9HfF2%36_PTSD z4yEi*A;X1Mt&N?=il?T=$apm64V5r7a9t1m^Nxtec_#E%F~DE$d>Wt%CjqvSKz85H zD$&x~Dwl$NRlGZbrb2qtrkGygKzya!m;;z}ene5KG9Fly{HTB1&QEO31aNB;k9Qi- z{>aCBGcKW5sc>hh{*=}&5ou_4Qu45Oq6K5bz9nrgVZDz4U=s>Db77+j+H0lI&T6lA zF_QCOd%xwH1XTH&v$rwA3&w@QgC+zBOWpwOg*_x0M zm3)8@>^R@5A_o&7;75Z=?K{vTZE9E6fe5YPC3Z{_9%D>8oA z^P$|eCOf`~>0QE75R%c%s(_b(YvB>Vxt~@**(^EwQ$JmEM-2AGOJKm zR+v9?%=VRTW1XAdVADdMHOFnrCs*GFPKSiOM5uR?`>u8JWWWjmNPuW1_VE!o@5(>OfuGALcnkCM~i;?hQsjhTa z%?s^Sua!;Y>vV<14K;KiVnpM05oRbl<*vS|Pt;Kyd>^x)S93)UHK*0$@`)~hx=*8< z`H8#w1Em*S)n<5q3~|Zy-i4|+r2s0TQ)H#M43F$AyD-m8fJi-a2mf((&e~d;= zv^5BojAdnhsxB+`2$S{o7R+ZcnqJ)oU63oq3}8T%yJNBF5x`5ejF$V82v7)!7I0w% zbyf@aci9R4V5C?%F>PrmI0#`!jb7GyvikTpc0KaiJ`5&%4e#D!JAEakmvk~;EsJdx z?d8?(X-VzLS2Sq9;^YFSgnk(F5TtTF=z+&n2!k?6odGf{hQkb^*hUYLNgapvCQjhv z_m3fgxsorIppxs#yyEL@so%@SoN@EpUsG%Rvp9K&`<|uyl?H2yadEXWu8v)EkqObm z9yu6#FFN}qE(rI*aOD))J~C%B;Zlp5b?fS7oBjBUA`dY1;*cwJB;G|_<7gA6hvg#S); z6WMV#E3az9KH9wQN6iy*D!{G%1AWDr%y>?_M3&fvi%#8lRGBnx&KwtA&Y|Osw8dWF z`A>r2+_=SDQatBs$<#o-%f2`$#skYef-^rx%Lf%qK79iaJr5P{tcJ$;uE$i5=<6Z^ zsXYg7jo_c+x@Z6Z007uvBh}^-a)%naVV_Is?5}*`Vp1-ho_lEKZ}(E~VAg>#VdX&* zO%fl6TZ)>(U&Mg^BvYY@jgECii@s8N!6{!bg=U)}jm?&1M z9!KFJ`JTZc5+QhWF?nlI{eCZFRTBD)CGTVe1=Ut3#7zmnij*1xZY7;4w`;Lz{aH8D8*gX%v&gfvW zx6fFspzub(FxX{+AN90LG_% z&|Kyf$;3=tVRij-Wg;-Gu8>e7wVN(6%&Gh}VFl$Oq$ib-%$`HMzq3>)| zD2E*I;h;*9i`~q#P{k9Sb0k7>^Q*hcOE30w|56-~yTZG6ZT|YhU0oOOO~3z^k@h$lnL-d;TN%U&aRR@!ILYDHz$MWjW`f$s_K1JaRx7jJF(HX#l`^ zsGc}`s3yE-{m^CioD$a}<*1AVcB#S5dBTmOAA6Dj*wDnGuI-vjKPb*KjOND!qcRem z)lxK4cz>ZG8p&e5GM!307y+#|^-H-3f4z-(83FG^7C91g-6~o8_nAKte$8}T>|rV6+;7~+>QCIH_m36sjKEF6n}1@u7jfCd-#RvSDtCl?Ec@hMDX5|ifZ;e!e`2Y8 z8*CSfSoAOz6H!yg4S9^1V5gW!#2Q%@v2@Z z5GqVFw#K54dD3p&$=}_3G|5thS-%7}!oEjudrooZcrqM(Pg2QL7JD7F78$L|lNe;E z9C2;N9SVhaFlYW0^`*F{tX>d{)|h8E#0G%QZ^wK|!~X@>KX|!7B%={Ea#AqiNj}+{ lpH1}gvl{@Teo-S`$+?mvzhdZa0qbZ4r3G;S000000010iQ5XOK literal 0 HcmV?d00001 diff --git a/assets/img/pluginManager.webp b/assets/img/pluginManager.webp new file mode 100644 index 0000000000000000000000000000000000000000..4c4b316cca505a5780912227e6639a3c176e729a GIT binary patch literal 16914 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 literal 0 HcmV?d00001 diff --git a/assets/img/remixLogo.webp b/assets/img/remixLogo.webp new file mode 100644 index 0000000000000000000000000000000000000000..90e38ad58637da1d389f1ace8eb61aa536cc93b4 GIT binary patch literal 4520 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 G0000f7NcJP literal 0 HcmV?d00001 diff --git a/assets/img/settings.webp b/assets/img/settings.webp new file mode 100644 index 0000000000000000000000000000000000000000..207745c4b627d7abd214e8cb838d7f96f576609a GIT binary patch literal 23508 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%0D4Tpc>ufn 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 literal 0 HcmV?d00001 diff --git a/assets/img/solidity.webp b/assets/img/solidity.webp new file mode 100644 index 0000000000000000000000000000000000000000..7328dd2fd235cc7d8f366d54092488480ea6712b GIT binary patch literal 9248 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 Z|4EYnACiQNYxU3f?MdkWQqsIUM literal 0 HcmV?d00001 diff --git a/assets/img/staticAnalysis.webp b/assets/img/staticAnalysis.webp new file mode 100644 index 0000000000000000000000000000000000000000..1ef7294dfdd59d764aae96c4ebc42c19d611ebb1 GIT binary patch literal 15158 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 IpL*cG0N8y=NdN!< literal 0 HcmV?d00001 diff --git a/assets/img/swarm.webp b/assets/img/swarm.webp new file mode 100644 index 0000000000000000000000000000000000000000..c11e1a648194a028e61c2462a335ae7ccb02a720 GIT binary patch literal 28736 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 PH)kSgz^nZJM?e1u^E9-} literal 0 HcmV?d00001 diff --git a/assets/img/unitTesting.webp b/assets/img/unitTesting.webp new file mode 100644 index 0000000000000000000000000000000000000000..29488e3f72b30c58a28f2dc3a40fcd971ca0e0ce GIT binary patch literal 408 zcmV;J0cZYFNk&GH0RRA3MM6+kP&il$0000G0000V0018V06|PpNJIeu00EF=+qP+2 z^O?CF+P01GmBT8J?H4k)ZQJ~RwYKltI5mg}2X5Oql4NbUe&2wRac5H=uwv{T(Y&Vx z5*|o6?QTrcBQe`eNq*ve=O`(ubCO7r`l?V?`%C?Nsn61Nl`f(_M?sogrLu~D?6-6| zAmfGiSqwqw!WDaa6LC9oUWxHh2tmj((NB%QX;9jKV!Riyj@Tcp0N^~#k;=0b%p$sk zZ6hk)av%sgB+fGUbk_m<#JLKCW^cKyJ*n$(K-wsO)~Le0xd6a*is(6wr+K#clW5Oh zZ1_AC0{>mjb%BUz*AJ3@iXzzWI3wncpVW@j4G$Z{-S)NNyDb+9PSh=Nw|qrg#JP=v zZ1k<-(rcYK5AjeLb4T3GP2$|e0J>>>OaQdgln5BiVnFP@%u^CzI7Oz$-LsMb^F3G$ zNZ#8s306=zASM6+0I&i8odGH!03ZN9Ef9u6p`i`>01N?QT0j6RfW!a*{{E#l0001` C)wU}D literal 0 HcmV?d00001 diff --git a/assets/js/editor/darkTheme.js b/assets/js/editor/darkTheme.js index 9c7e68f0be..2195596d54 100644 --- a/assets/js/editor/darkTheme.js +++ b/assets/js/editor/darkTheme.js @@ -122,7 +122,7 @@ ace.define("ace/theme/chaos",["require","exports","module","ace/lib/dom"], funct color:#ff86ac;\ }\ .ace-chaos .ace_statemutability {\ - color:#ff8181;\ + color:#FFCC00;\ }\ .ace-chaos .ace_variable {\ color:#e0bb83;\ diff --git a/src/app/components/local-plugin.js b/src/app/components/local-plugin.js index f71e10d7bb..39d8c5fc68 100644 --- a/src/app/components/local-plugin.js +++ b/src/app/components/local-plugin.js @@ -37,7 +37,7 @@ module.exports = class LocalPlugin { */ create () { const profile = { - icon: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMjYyIDEwNzVxLTM3IDEyMS0xMzggMTk1dC0yMjggNzQtMjI4LTc0LTEzOC0xOTVxLTgtMjUgNC00OC41dDM4LTMxLjVxMjUtOCA0OC41IDR0MzEuNSAzOHEyNSA4MCA5Mi41IDEyOS41dDE1MS41IDQ5LjUgMTUxLjUtNDkuNSA5Mi41LTEyOS41cTgtMjYgMzItMzh0NDktNCAzNyAzMS41IDQgNDguNXptLTQ5NC00MzVxMCA1My0zNy41IDkwLjV0LTkwLjUgMzcuNS05MC41LTM3LjUtMzcuNS05MC41IDM3LjUtOTAuNSA5MC41LTM3LjUgOTAuNSAzNy41IDM3LjUgOTAuNXptNTEyIDBxMCA1My0zNy41IDkwLjV0LTkwLjUgMzcuNS05MC41LTM3LjUtMzcuNS05MC41IDM3LjUtOTAuNSA5MC41LTM3LjUgOTAuNSAzNy41IDM3LjUgOTAuNXptMjU2IDI1NnEwLTEzMC01MS0yNDguNXQtMTM2LjUtMjA0LTIwNC0xMzYuNS0yNDguNS01MS0yNDguNSA1MS0yMDQgMTM2LjUtMTM2LjUgMjA0LTUxIDI0OC41IDUxIDI0OC41IDEzNi41IDIwNCAyMDQgMTM2LjUgMjQ4LjUgNTEgMjQ4LjUtNTEgMjA0LTEzNi41IDEzNi41LTIwNCA1MS0yNDguNXptMTI4IDBxMCAyMDktMTAzIDM4NS41dC0yNzkuNSAyNzkuNS0zODUuNSAxMDMtMzg1LjUtMTAzLTI3OS41LTI3OS41LTEwMy0zODUuNSAxMDMtMzg1LjUgMjc5LjUtMjc5LjUgMzg1LjUtMTAzIDM4NS41IDEwMyAyNzkuNSAyNzkuNSAxMDMgMzg1LjV6Ii8+PC9zdmc+', + icon: 'assets/img/localPlugin.webp', methods: [], location: 'sidePanel', type: 'iframe', diff --git a/src/app/components/plugin-manager-component.js b/src/app/components/plugin-manager-component.js index 2b95d250e7..3772b55a9b 100644 --- a/src/app/components/plugin-manager-component.js +++ b/src/app/components/plugin-manager-component.js @@ -62,7 +62,7 @@ const profile = { displayName: 'Plugin manager', methods: [], events: [], - icon: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzU1IDQ1M3EzNyAzOCAzNyA5MC41dC0zNyA5MC41bC00MDEgNDAwIDE1MCAxNTAtMTYwIDE2MHEtMTYzIDE2My0zODkuNSAxODYuNXQtNDExLjUtMTAwLjVsLTM2MiAzNjJoLTE4MXYtMTgxbDM2Mi0zNjJxLTEyNC0xODUtMTAwLjUtNDExLjV0MTg2LjUtMzg5LjVsMTYwLTE2MCAxNTAgMTUwIDQwMC00MDFxMzgtMzcgOTEtMzd0OTAgMzcgMzcgOTAuNS0zNyA5MC41bC00MDAgNDAxIDIzNCAyMzQgNDAxLTQwMHEzOC0zNyA5MS0zN3Q5MCAzN3oiLz48L3N2Zz4=', + icon: 'assets/img/pluginManager.webp', description: 'Start/stop services, modules and plugins', kind: 'settings', location: 'sidePanel', diff --git a/src/app/files/fileManager.js b/src/app/files/fileManager.js index 88de90bed1..092f29c591 100644 --- a/src/app/files/fileManager.js +++ b/src/app/files/fileManager.js @@ -20,7 +20,7 @@ const profile = { name: 'fileManager', displayName: 'File manager', description: 'Service - read/write to any files or folders, require giving permissions', - icon: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjk2IDM4NHE0MCAwIDY4IDI4dDI4IDY4djEyMTZxMCA0MC0yOCA2OHQtNjggMjhoLTk2MHEtNDAgMC02OC0yOHQtMjgtNjh2LTI4OGgtNTQ0cS00MCAwLTY4LTI4dC0yOC02OHYtNjcycTAtNDAgMjAtODh0NDgtNzZsNDA4LTQwOHEyOC0yOCA3Ni00OHQ4OC0yMGg0MTZxNDAgMCA2OCAyOHQyOCA2OHYzMjhxNjgtNDAgMTI4LTQwaDQxNnptLTU0NCAyMTNsLTI5OSAyOTloMjk5di0yOTl6bS02NDAtMzg0bC0yOTkgMjk5aDI5OXYtMjk5em0xOTYgNjQ3bDMxNi0zMTZ2LTQxNmgtMzg0djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djY0MGg1MTJ2LTI1NnEwLTQwIDIwLTg4dDQ4LTc2em05NTYgODA0di0xMTUyaC0zODR2NDE2cTAgNDAtMjggNjh0LTY4IDI4aC00MTZ2NjQwaDg5NnoiLz48L3N2Zz4=', + icon: 'assets/img/fileManager.webp', permission: true, version: packageJson.version, methods: ['file', 'exists', 'open', 'writeFile', 'readFile', 'copyFile', 'rename', 'readdir', 'remove', 'getCurrentFile', 'getFile', 'getFolder', 'setFile', 'switchFile'], diff --git a/src/app/panels/file-panel.js b/src/app/panels/file-panel.js index 9ded1bcaac..e0c42c749e 100644 --- a/src/app/panels/file-panel.js +++ b/src/app/panels/file-panel.js @@ -32,7 +32,7 @@ const profile = { displayName: 'File explorers', methods: [], events: [], - icon: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjk2IDM4NHE0MCAwIDY4IDI4dDI4IDY4djEyMTZxMCA0MC0yOCA2OHQtNjggMjhoLTk2MHEtNDAgMC02OC0yOHQtMjgtNjh2LTI4OGgtNTQ0cS00MCAwLTY4LTI4dC0yOC02OHYtNjcycTAtNDAgMjAtODh0NDgtNzZsNDA4LTQwOHEyOC0yOCA3Ni00OHQ4OC0yMGg0MTZxNDAgMCA2OCAyOHQyOCA2OHYzMjhxNjgtNDAgMTI4LTQwaDQxNnptLTU0NCAyMTNsLTI5OSAyOTloMjk5di0yOTl6bS02NDAtMzg0bC0yOTkgMjk5aDI5OXYtMjk5em0xOTYgNjQ3bDMxNi0zMTZ2LTQxNmgtMzg0djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djY0MGg1MTJ2LTI1NnEwLTQwIDIwLTg4dDQ4LTc2em05NTYgODA0di0xMTUyaC0zODR2NDE2cTAgNDAtMjggNjh0LTY4IDI4aC00MTZ2NjQwaDg5NnoiLz48L3N2Zz4=', + icon: 'assets/img/fileManager.webp', description: ' - ', kind: 'fileexplorer', location: 'sidePanel', diff --git a/src/app/panels/styles/terminal-styles.js b/src/app/panels/styles/terminal-styles.js index 46dd30cf22..1aed65852b 100644 --- a/src/app/panels/styles/terminal-styles.js +++ b/src/app/panels/styles/terminal-styles.js @@ -46,7 +46,6 @@ var css = csjs` overflow-y : auto; font-family : monospace; margin : 0px; - background-image : url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBvcGFjaXR5PSIwLjEiPg0KCQk8Zz4NCgkJCTxwYXRoIGZpbGw9IiM0MTQwNDIiIGQ9Ik03MC41ODIsNDI4LjkwNGMwLjgxMSwwLDEuNjIyLDAuMjg1LDIuNDM3LDAuODUzYzAuODExLDAuNTcxLDEuMjE4LDEuMzQsMS4yMTgsMi4zMTQNCgkJCQljMCwyLjI3Ny0xLjA1OSwzLjQ5Ni0zLjE2OCwzLjY1NmMtNS4wMzgsMC44MTQtOS4zODEsMi4zNTYtMTMuMDM3LDQuNjNjLTMuNjU1LDIuMjc2LTYuNjYzLDUuMTE3LTkuMDE2LDguNTI4DQoJCQkJYy0yLjM1NywzLjQxMS00LjEwNCw3LjI3Mi01LjIzOSwxMS41NzVjLTEuMTM5LDQuMzA3LTEuNzA2LDguODE0LTEuNzA2LDEzLjUyNHYzMi42NTNjMCwyLjI3My0xLjEzOSwzLjQxMS0zLjQxMiwzLjQxMQ0KCQkJCWMtMi4yNzcsMC0zLjQxMi0xLjEzOC0zLjQxMi0zLjQxMXYtNzQuMzIzYzAtMi4yNzMsMS4xMzUtMy40MTEsMy40MTItMy40MTFjMi4yNzMsMCwzLjQxMiwxLjEzOCwzLjQxMiwzLjQxMXYxNS4xMDgNCgkJCQljMS40NjItMi40MzcsMy4yMDYtNC43NTIsNS4yMzktNi45NDVjMi4wMjktMi4xOTMsNC4yNjQtNC4xNDMsNi43MDEtNS44NDhjMi40MzctMS43MDYsNS4wNzYtMy4wODUsNy45MTktNC4xNDMNCgkJCQlDNjQuNzcxLDQyOS40MzMsNjcuNjU4LDQyOC45MDQsNzAuNTgyLDQyOC45MDR6Ii8+DQoJCQk8cGF0aCBmaWxsPSIjNDE0MDQyIiBkPSJNMTM3Ljc3Myw0MjcuMTk4YzUuNjg1LDAsMTAuOTY2LDEuMTgxLDE1LjgzOSwzLjUzNGM0Ljg3NCwyLjM1Niw5LjA1NSw1LjQ4MiwxMi41NSw5LjM4MQ0KCQkJCWMzLjQ5MiwzLjg5OSw2LjIxNCw4LjQwNyw4LjE2NCwxMy41MjRjMS45NDksNS4xMTcsMi45MjQsMTAuNDQsMi45MjQsMTUuOTYxYzAsMC45NzYtMC4zNjYsMS43OS0xLjA5NywyLjQzOA0KCQkJCWMtMC43MzEsMC42NS0xLjU4MywwLjk3NS0yLjU1OSwwLjk3NWgtNjcuOTg3YzAuNDg3LDQuMjI2LDEuNTg0LDguMjg1LDMuMjksMTIuMTg0YzEuNzA2LDMuODk5LDMuOTM3LDcuMzEyLDYuNzAxLDEwLjIzNA0KCQkJCWMyLjc2MSwyLjkyNSw2LjAwOCw1LjI4MSw5Ljc0OCw3LjA2N2MzLjczNSwxLjc4OSw3Ljg3NywyLjY4MSwxMi40MjgsMi42ODFjMTIuMDIxLDAsMjEuMzYtNC43OSwyOC4wMjMtMTQuMzc3DQoJCQkJYzAuNjQ3LTEuMTM2LDEuNjIyLTEuNzA2LDIuOTI0LTEuNzA2YzIuMjczLDAsMy40MTIsMS4xMzksMy40MTIsMy40MTJjMCwwLjE2My0wLjE2NCwwLjczLTAuNDg3LDEuNzA1DQoJCQkJYy0zLjQxMiw2LjAxMy04LjIwNSwxMC40NzktMTQuMzc3LDEzLjQwMmMtNi4xNzYsMi45MjQtMTIuNjcxLDQuMzg3LTE5LjQ5NSw0LjM4N2MtNS42ODksMC0xMC45MjgtMS4xODEtMTUuNzE4LTMuNTMzDQoJCQkJYy00Ljc5My0yLjM1NC04LjkzNi01LjQ4My0xMi40MjgtOS4zODJjLTMuNDk1LTMuODk5LTYuMjE0LTguNDA3LTguMTYzLTEzLjUyNGMtMS45NS01LjExOC0yLjkyNC0xMC40MzctMi45MjQtMTUuOTYyDQoJCQkJYzAtNS41MjEsMC45NzUtMTAuODQ0LDIuOTI0LTE1Ljk2MWMxLjk0OS01LjExNyw0LjY2OC05LjYyNSw4LjE2My0xMy41MjRjMy40OTItMy44OTgsNy42MzQtNy4wMjQsMTIuNDI4LTkuMzgxDQoJCQkJQzEyNi44NDYsNDI4LjM3OSwxMzIuMDg0LDQyNy4xOTgsMTM3Ljc3Myw0MjcuMTk4eiBNMTY5Ljk0LDQ2Ni4xODhjLTAuMzI4LTQuMjIzLTEuMzQxLTguMjg1LTMuMDQ2LTEyLjE4NA0KCQkJCWMtMS43MDYtMy44OTktMy45ODItNy4zMTItNi44MjMtMTAuMjM1Yy0yLjg0NC0yLjkyNC02LjE3NS01LjI3Ny05Ljk5MS03LjA2N2MtMy44MTktMS43ODUtNy45Mi0yLjY4LTEyLjMwNi0yLjY4DQoJCQkJYy00LjU1LDAtOC42OTIsMC44OTUtMTIuNDI4LDIuNjhjLTMuNzM5LDEuNzktNi45ODcsNC4xNDQtOS43NDgsNy4wNjdjLTIuNzY0LDIuOTI0LTQuOTk1LDYuMzM2LTYuNzAxLDEwLjIzNQ0KCQkJCWMtMS43MDYsMy44OTgtMi44MDIsNy45NjEtMy4yOSwxMi4xODRIMTY5Ljk0eiIvPg0KCQkJPHBhdGggZmlsbD0iIzQxNDA0MiIgZD0iTTMwNC42OSw0MjcuNDQxYzUuMDM0LDAsOS41MDQsMS4wMTgsMTMuNDAyLDMuMDQ3YzMuODk5LDIuMDMzLDcuMTg5LDQuNjcyLDkuODcsNy45Mg0KCQkJCWMyLjY4LDMuMjUxLDQuNzA5LDcuMDY2LDYuMDkyLDExLjQ1MmMxLjM3OSw0LjM4NywyLjA3LDguODU2LDIuMDcsMTMuNDAydjQzLjYyYzAsMC45NzUtMC4zNjUsMS43ODktMS4wOTcsMi40MzgNCgkJCQljLTAuNzMsMC42NDYtMS41MDMsMC45NzUtMi4zMTMsMC45NzVjLTIuMjc2LDAtMy40MTItMS4xNC0zLjQxMi0zLjQxMnYtNDMuNjJjMC0zLjU3MS0wLjUyOS03LjEwNC0xLjU4NC0xMC42DQoJCQkJYy0xLjA1OS0zLjQ5MS0yLjYwMi02LjYxOC00LjYzLTkuMzgyYy0yLjAzMy0yLjc2MS00LjU5Mi00Ljk1My03LjY3Ny02LjU4Yy0zLjA4OC0xLjYyMS02LjY2Mi0yLjQzNi0xMC43MjItMi40MzYNCgkJCQljLTUuMiwwLTkuNTg3LDEuMjE4LTEzLjE1OSwzLjY1NGMtMy41NzQsMi40MzgtNi40NTcsNS41NjYtOC42NSw5LjM4MmMtMi4xOTMsMy44MTktMy44MTgsOC4wNDItNC44NzQsMTIuNjcyDQoJCQkJYy0xLjA1OSw0LjYzLTEuNTg0LDkuMDU4LTEuNTg0LDEzLjI4djMzLjYyOWMwLDAuOTc1LTAuMzY1LDEuNzg5LTEuMDk2LDIuNDM4Yy0wLjczMSwwLjY0Ni0xLjUwNSwwLjk3NS0yLjMxNSwwLjk3NQ0KCQkJCWMtMi4yNzYsMC0zLjQxMS0xLjE0LTMuNDExLTMuNDEydi00My42MmMwLTMuNTcxLTAuNTMtNy4xMDQtMS41ODUtMTAuNmMtMS4wNTgtMy40OTEtMi42MDEtNi42MTgtNC42MjktOS4zODINCgkJCQljLTIuMDM0LTIuNzYxLTQuNTkyLTQuOTUzLTcuNjc3LTYuNThjLTMuMDg3LTEuNjIxLTYuNjYzLTIuNDM2LTEwLjcyMi0yLjQzNmMtNS4wMzcsMC05LjM0NCwwLjg5NS0xMi45MTUsMi42OA0KCQkJCWMtMy41NzUsMS43OS02LjU0Miw0LjI2Ni04Ljg5NSw3LjQzM2MtMi4zNTcsMy4xNjctNC4wNjMsNi45NDQtNS4xMTcsMTEuMzMxYy0xLjA1OSw0LjM4Ni0xLjU4NCw5LjEtMS41ODQsMTQuMTM0djMuODk5djAuMjQzDQoJCQkJdjMyLjg5N2MwLDIuMjcyLTEuMTM4LDMuNDEyLTMuNDEyLDMuNDEyYy0yLjI3NiwwLTMuNDExLTEuMTQtMy40MTEtMy40MTJ2LTc0LjU2N2MwLTIuMjczLDEuMTM1LTMuNDExLDMuNDExLTMuNDExDQoJCQkJYzIuMjczLDAsMy40MTIsMS4xMzgsMy40MTIsMy40MTF2MTIuNDI4YzIuOTI0LTUuMTk3LDYuODYxLTkuMzgyLDExLjgxOS0xMi41NWM0Ljk1NC0zLjE2NywxMC41MTctNC43NTIsMTYuNjkyLTQuNzUyDQoJCQkJYzYuOTgzLDAsMTIuOTk1LDEuOTkxLDE4LjAzMiw1Ljk3YzUuMDMzLDMuOTgzLDguNjg4LDkuMjIzLDEwLjk2NiwxNS43MTljMi43Ni02LjMzNiw2LjczOS0xMS41MzMsMTEuOTQtMTUuNTk2DQoJCQkJQzI5MS4xMjUsNDI5LjQ3NSwyOTcuMzgsNDI3LjQ0MSwzMDQuNjksNDI3LjQ0MXoiLz4NCgkJCTxwYXRoIGZpbGw9IiM0MTQwNDIiIGQ9Ik0zNzguNzUzLDQyOS4zOTJjMC44MTEsMCwxLjU4NCwwLjM2NSwyLjMxNCwxLjA5N2MwLjczMSwwLjczLDEuMDk3LDEuNTA0LDEuMDk3LDIuMzE0djc0LjA4DQoJCQkJYzAsMC44MTQtMC4zNjUsMS41ODQtMS4wOTcsMi4zMTVjLTAuNzMsMC43My0xLjUwNCwxLjA5Ny0yLjMxNCwxLjA5N2MtMC45NzUsMC0xLjc5LTAuMzY2LTIuNDM4LTEuMDk3DQoJCQkJYy0wLjY1LTAuNzMxLTAuOTc1LTEuNTAxLTAuOTc1LTIuMzE1di03NC4wOGMwLTAuODExLDAuMzI0LTEuNTg0LDAuOTc1LTIuMzE0QzM3Ni45NjMsNDI5Ljc1NywzNzcuNzc4LDQyOS4zOTIsMzc4Ljc1Myw0MjkuMzkyeiINCgkJCQkvPg0KCQkJPHBhdGggZmlsbD0iIzQxNDA0MiIgZD0iTTQ3My4zNCw0MjguNjZjMi4yNzMsMCwzLjQxMiwxLjEzOSwzLjQxMiwzLjQxMWwtMC40ODcsMS45NWwtMjQuMzY4LDM1LjMzNGwyNC4zNjgsMzUuNTc3DQoJCQkJYzAuMzIzLDAuOTc2LDAuNDg3LDEuNjI2LDAuNDg3LDEuOTVjMCwyLjI3Mi0xLjEzOSwzLjQxMi0zLjQxMiwzLjQxMmMtMS4zMDIsMC0yLjE5My0wLjQ4OC0yLjY4LTEuNDYzbC0yMi45MDYtMzMuMzg0DQoJCQkJbC0yMi42NjMsMzMuMzg0Yy0wLjgxNCwwLjk3NS0xLjc5LDEuNDYzLTIuOTI0LDEuNDYzYy0yLjI3NywwLTMuNDExLTEuMTQtMy40MTEtMy40MTJjMC0wLjMyNCwwLjE1OS0wLjk3NSwwLjQ4Ni0xLjk1DQoJCQkJbDI0LjM2OS0zNS41NzdsLTI0LjM2OS0zNS4zMzRsLTAuNDg2LTEuOTVjMC0yLjI3MiwxLjEzNC0zLjQxMSwzLjQxMS0zLjQxMWMxLjEzNCwwLDIuMTA5LDAuNDg3LDIuOTI0LDEuNDYybDIyLjY2MywzMy4xNDENCgkJCQlsMjIuOTA2LTMzLjE0MUM0NzEuMTQ2LDQyOS4xNDcsNDcyLjAzOCw0MjguNjYsNDczLjM0LDQyOC42NnoiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxnIG9wYWNpdHk9IjAuNDUiPg0KCQkJCQk8Zz4NCgkJCQkJCTxwb2x5Z29uIGZpbGw9IiMwMTAxMDEiIHBvaW50cz0iMTUwLjczNCwxOTYuMjEyIDI1NS45NjksMzQ0LjUwOCAyNTUuOTY5LDI1OC4zODciLz4NCgkJCQkJPC9nPg0KCQkJCTwvZz4NCgkJCQk8ZyBvcGFjaXR5PSIwLjgiPg0KCQkJCQk8Zz4NCgkJCQkJCTxwb2x5Z29uIGZpbGw9IiMwMTAxMDEiIHBvaW50cz0iMjU1Ljk2OSwyNTguMzg3IDI1NS45NjksMzQ0LjUwOCAzNjEuMjY3LDE5Ni4yMTIiLz4NCgkJCQkJPC9nPg0KCQkJCTwvZz4NCgkJCQk8ZyBvcGFjaXR5PSIwLjYiPg0KCQkJCQk8Zz4NCgkJCQkJCTxwb2x5Z29uIGZpbGw9IiMwMTAxMDEiIHBvaW50cz0iMjU1Ljk2OSwxMjYuNzgxIDE1MC43MzMsMTc0LjYxMSAyNTUuOTY5LDIzNi44MTggMzYxLjIwNCwxNzQuNjExIi8+DQoJCQkJCTwvZz4NCgkJCQk8L2c+DQoJCQkJPGcgb3BhY2l0eT0iMC40NSI+DQoJCQkJCTxnPg0KCQkJCQkJPHBvbHlnb24gZmlsbD0iIzAxMDEwMSIgcG9pbnRzPSIxNTAuNzM0LDE3NC42MTIgMjU1Ljk2OSwyMzYuODE4IDI1NS45NjksMTI2Ljc4MiAyNTUuOTY5LDAuMDAxIi8+DQoJCQkJCTwvZz4NCgkJCQk8L2c+DQoJCQkJPGcgb3BhY2l0eT0iMC44Ij4NCgkJCQkJPGc+DQoJCQkJCQk8cG9seWdvbiBmaWxsPSIjMDEwMTAxIiBwb2ludHM9IjI1NS45NjksMCAyNTUuOTY5LDEyNi43ODEgMjU1Ljk2OSwyMzYuODE4IDM2MS4yMDQsMTc0LjYxMSIvPg0KCQkJCQk8L2c+DQoJCQkJPC9nPg0KCQkJPC9nPg0KCQk8L2c+DQoJPC9nPg0KPC9zdmc+DQo=') background-repeat : no-repeat; background-position : center 15%; background-size : auto calc(75% - 1.7em); diff --git a/src/app/tabs/analysis-tab.js b/src/app/tabs/analysis-tab.js index e1cec92d26..78b45b9c20 100644 --- a/src/app/tabs/analysis-tab.js +++ b/src/app/tabs/analysis-tab.js @@ -11,7 +11,7 @@ const profile = { displayName: 'Solidity static analysis', methods: [], events: [], - icon: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMjA0OCIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMjA0OCAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMDQ4IDE1MzZ2MTI4aC0yMDQ4di0xNTM2aDEyOHYxNDA4aDE5MjB6bS0xMjgtMTI0OHY0MzVxMCAyMS0xOS41IDI5LjV0LTM1LjUtNy41bC0xMjEtMTIxLTYzMyA2MzNxLTEwIDEwLTIzIDEwdC0yMy0xMGwtMjMzLTIzMy00MTYgNDE2LTE5Mi0xOTIgNTg1LTU4NXExMC0xMCAyMy0xMHQyMyAxMGwyMzMgMjMzIDQ2NC00NjQtMTIxLTEyMXEtMTYtMTYtNy41LTM1LjV0MjkuNS0xOS41aDQzNXExNCAwIDIzIDl0OSAyM3oiLz48L3N2Zz4=', + icon: 'assets/img/staticAnalysis.webp', description: 'Checks the contract code for security vulnerabilities and bad practices.', kind: 'analysis', location: 'sidePanel', diff --git a/src/app/tabs/compile-tab.js b/src/app/tabs/compile-tab.js index 1efb67415d..a5d8e4de10 100644 --- a/src/app/tabs/compile-tab.js +++ b/src/app/tabs/compile-tab.js @@ -24,7 +24,7 @@ import publishToStorage from '../../publishToStorage' const profile = { name: 'solidity', displayName: 'Solidity compiler', - icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAASdAAAEnQF8NGuhAAAAB3RJTUUH4wQMDx84DVYryQAAAjBJREFUSMe1102ITmEUB/DfO4aZRuM7otQgqSlCFmIhSRaSJClWs9BY2RAba1tLZTGxmbJWImFsWBhhZONzpJSEaJhhPl6bM/V2ux/vnTtz6untPvc857z/8/E/z61pXnZjHeoFejcwUWSs1qTTFjzHOP7l2PqCAVxuxmAzcgbLsSQH8SQ+YxM6igzOa8LpMvSH4dYI43iK3nDs17AND6oiPt+Qs3qgTso4fjU8r0Z3Fcfd6E0505nYe52olyn0VAn1FaxM2W/HSETgN76l6HREet6URbwPe3LeLw5k73OK7UDZdmrBIJYWROse3hak8gluJ1+0ZhyYwlNsLyCMHjOUvFCfij+Q19vmwjFcy9D5gUdVHDdDmY8xP3HmULDUnCGGswmnL3Oc7sBxsygDUeVDaMvR68fDnKItPSROBNo+/M3QOYwtwWq9s4n6ajBWltyJqAziVQbjlZpO03IzZ8CfDpab7vmJGKP3q14E8mQR7qaAaMdJvKiS4zw5lxG5MVyoWlxZshFHI8RpazP2lgl1DRdjAmVxdR070VVAUIM4Uqa4PuFg6LSlrFVRQJ3hIG2NY1fZUH/Asxy0a+L3a07H9M20nYZjmE8mnK5omNWTWJgCYhTHZup4BAuwPjHDNyT0/iTuYbXo7XdVqvpWA/fWI7dpF4exhufvwWSVmGv66ro10HdlVPpokEkd+/FzNobEQKBY23AuuWpx4xzCxyKDrSXI4nrkPO+DrA2XmjH2H8KUd4MWwdIJAAAAAElFTkSuQmCC', + icon: 'assets/img/solidity.webp', description: 'Compile solidity contracts', kind: 'compiler', permission: true, @@ -243,9 +243,6 @@ class CompileTab extends ViewPlugin { ` // define swarm logo - const swarmImg = 'data:image/png;base64,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' - - const ipfsImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAYAAAB/HSuDAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAA6xpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNS0wMy0yOVQyMDowMzowMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjMuMTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpDb21wcmVzc2lvbj41PC90aWZmOkNvbXByZXNzaW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzI8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMDI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3Bh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AggggAACCCCAAAIJFyAAkHBSdogAAggggAACCCCAAAIIIICA/wQIAPivT6gRAggggAACCCCAAAIIIIAAAgkXIACQcFJ2iAACCCCAAAIIIIAAAggggID/BAgA+K9PqBECCCCAAAIIIIAAAggggAACCRcgAJBwUnaIAAIIIIAAAggggAACCCCAgP8ECAD4r0+oEQIIIIAAAggggAACCCCAAAIJFyAAkHBSdogAAggggAACCCCAAAIIIICA/wQIAPivT6gRAggggAACCCCAAAIIIIAAAgkXIACQcFJ2iAACCCCAAAIIIIAAAggggID/BAgA+K9PqBECCCCAAAIIIIAAAggggAACCRcgAJBwUnaIAAIIIIAAAggggAACCCCAgP8ECAD4r0+oEQIIIIAAAggggAACCCCAAAIJFyAAkHBSdogAAggggAACCCCAAAIIIICA/wQIAPivT6gRAggggAACCCCAAAIIIIAAAgkXIACQcFJ2iAACCCCAAAIIIIAAAggggID/BAgA+K9PqBECCCCAAAIIIIAAAggggAACCRcgAJBw0mHusH+Y7+NtCCCAAAIIIIAAAggggAACCMQhQAAgDqRUvKS/nwhAKpw5BgIIIIAAAggggAACCCAQVgECAH7p+b5ev9SEeiCAAAIIIIAAAggggAACCDgoQADAJ53a293jk5pQDQQQQAABBBBAAAEEEEAAARcFCAD4pFd7O9olq6/PJ7WhGggggAACCCCAAAIIIIAAAq4JEADwSY/2dHVJZ2OjZPaRC8AnXUI1EEAAAQQQQAABBBBAIAECXUeOCDnPEgCZgF1kJ2Af7CJBAs21tRLp6JC88nLJjEYTtFd2gwACCCCAAAIIIIAAAgikXqDz8GFpa2tL/YE54qACBAAGpUnPE10tLdLT2SmRwkLJLSmRjJyc9FSEoyKAAAIIIIAAAggggAACwxDgxH8YaCl6CwGAFEEP5TB93d3SUV8v3a2tkmOBgGILBNBVQzHktQgggAACCCCAAAIIIJBage6jR6VVz2EY7p9a96EcjbPKoWil+LW9mhegt65OevSXKFJULNGSYpFM0jakuBs4HAIIIIAAAggggAACCFxAoO/ECWlqauLE/wJGfnmKAIBfeuIC9bApAT2dJ6W7rVVyS8skuyD/Aq/mKQQQQAABBBBAAAEEEEAgNQIt+/ZJt45gpgRDgABA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' let result = contractList.length ? yo`
@@ -257,11 +254,11 @@ class CompileTab extends ViewPlugin {
- diff --git a/src/app/tabs/compileTab/compilerContainer.js b/src/app/tabs/compileTab/compilerContainer.js index b91f933bf3..9c3fbfb50a 100644 --- a/src/app/tabs/compileTab/compilerContainer.js +++ b/src/app/tabs/compileTab/compilerContainer.js @@ -318,17 +318,21 @@ class CompilerContainer { this.compileIfAutoCompileOn() } + /* + The following functions are handlers for internal events. + */ + onchangeOptimize () { this.compileTabLogic.setOptimize(!!this._view.optimize.checked) this.compileIfAutoCompileOn() } - onchangeLanguage (event) { - this.compileTabLogic.setLanguage(event.target.value) + onchangeLanguage () { + this.compileTabLogic.setLanguage(this._view.languageSelector.value) this.compileIfAutoCompileOn() } - onchangeEvmVersion (_) { + onchangeEvmVersion () { let s = this._view.evmVersionSelector let v = s.value if (v === 'default') { @@ -338,12 +342,37 @@ class CompilerContainer { this.compileIfAutoCompileOn() } - onchangeLoadVersion (event) { + onchangeLoadVersion () { this.data.selectedVersion = this._view.versionSelector.value this._updateVersionSelector() this._updateLanguageSelector() } + /* + The following functions map with the above event handlers. + They are an external API for modifying the compiler configuration. + */ + + setOptimize (enabled) { + this._view.optimize.checked = enabled + this.onchangeOptimize() + } + + setLanguage (lang) { + this._view.languageSelector.value = lang + this.onchangeLanguage() + } + + setEvmVersion (version) { + this._view.evmVersionSelector.value = version || 'default' + this.onchangeEvmVersion() + } + + setVersion (version) { + this._view.versionSelector.value = `soljson-v${version}.js` + this.onchangeLoadVersion() + } + _shouldBeAdded (version) { return !version.includes('nightly') || (version.includes('nightly') && this._view.includeNightlies.checked) diff --git a/test-browser/commands/verifyContracts.js b/test-browser/commands/verifyContracts.js index 14f006504e..3275cfb65a 100644 --- a/test-browser/commands/verifyContracts.js +++ b/test-browser/commands/verifyContracts.js @@ -1,7 +1,7 @@ const EventEmitter = require('events') class VerifyContracts extends EventEmitter { - command (compiledContractNames, opts = { wait: 1000 }) { + command (compiledContractNames, opts = { wait: 1000, version: null }) { this.api.perform((done) => { verifyContracts(this.api, compiledContractNames, opts, () => { done() @@ -17,6 +17,17 @@ function getCompiledContracts (browser, opts, callback) { .clickLaunchIcon('solidity') .pause(opts.wait) .waitForElementPresent('*[data-id="compiledContracts"] option') + .perform((done) => { + if (opts.version) { + browser + .click('*[data-id="compilation-details"]') + .waitForElementPresent('*[data-id="treeViewLicompiler"]') + .click('*[data-id="treeViewLicompiler"]') + .waitForElementPresent('*[data-id="treeViewTogglecompiler/version"]') + .assert.containsText('*[data-id="treeViewLicompiler/version"]', `version: ${opts.version}`) + .perform(done) + } else done() + }) .execute(function () { var contracts = document.querySelectorAll('*[data-id="compiledContracts"] option') if (!contracts) { diff --git a/test-browser/tests/compiler_api.test.js b/test-browser/tests/compiler_api.test.js new file mode 100644 index 0000000000..2c267b8177 --- /dev/null +++ b/test-browser/tests/compiler_api.test.js @@ -0,0 +1,101 @@ +'use strict' +var examples = require('../../src/app/editor/example-contracts') +var init = require('../helpers/init') +var sauce = require('./sauce') + +var sources = [ + {'browser/Untitled.sol': {content: examples.ballot.content}} +] + +module.exports = { + before: function (browser, done) { + init(browser, done) + }, + '@sources': function () { + return sources + }, + + 'Should compile using "compileWithParamaters" API': function (browser) { + browser + .addFile('test_jsCompile.js', { content: jsCompile }) + .executeScript('remix.exeCurrent()') + .pause(5000) + .journalChildIncludes('"languageversion": "0.6.8+commit.0bbfe453"') + }, + + 'Should update the compiler configuration with "setCompilerConfig" API': function (browser) { + browser + .addFile('test_updateConfiguration.js', { content: updateConfiguration }) + .executeScript('remix.exeCurrent()') + .pause(5000) + .addFile('test_updateConfiguration.sol', { content: simpleContract }) + .verifyContracts(['StorageTestUpdateConfiguration'], {wait: 5000, version: '0.6.8+commit.0bbfe453'}) + .end() + }, + + tearDown: sauce +} + +const simpleContract = `pragma solidity >=0.4.22 <0.7.0; + +/** +* @title Storage +* @dev Store & retreive value in a variable +*/ +contract StorageTestUpdateConfiguration { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retreive() public view returns (uint256){ + return number; + } +} + + ` + +const jsCompile = `(async () => { + + try { + const contract = { + "storage.sol": {content : \`${simpleContract}\` } + } + console.log('compile') + const params = { + optimize: false, + evmVersion: null, + language: 'Solidity', + version: '0.6.8+commit.0bbfe453', + compilerUrl: 'https://solc-bin.ethereum.org/bin/soljson-v0.6.8+commit.0bbfe453.js' + } + const result = await remix.call('solidity', 'compileWithParameters', contract, params) + console.log('result ', result) + } catch (e) { + console.log(e.message) + } +})()` + +const updateConfiguration = `(async () => { + try { + const params = { + optimize: false, + evmVersion: null, + language: 'Solidity', + version: '0.6.8+commit.0bbfe453' + } + await remix.call('solidity', 'setCompilerConfig', params) + } catch (e) { + console.log(e.message) + } +})()` From ab6793d3bb555b3c76a53ae056c3abedc60fc29f Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 3 Jun 2020 11:36:08 +0200 Subject: [PATCH 060/184] run tab listen on yulp --- src/app/compiler/compiler-artefacts.js | 4 ++++ src/app/compiler/compiler-helpers.js | 1 - src/app/tabs/runTab/model/dropdownlogic.js | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/compiler/compiler-artefacts.js b/src/app/compiler/compiler-artefacts.js index ecc25cbe93..f0f88bb069 100644 --- a/src/app/compiler/compiler-artefacts.js +++ b/src/app/compiler/compiler-artefacts.js @@ -32,6 +32,10 @@ module.exports = class CompilerArtefacts extends Plugin { this.on('lexon', 'compilationFinished', (file, source, languageVersion, data) => { this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) }) + + this.on('yupl', 'compilationFinished', (file, source, languageVersion, data) => { + this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) + }) } addResolvedContract (address, compilerData) { diff --git a/src/app/compiler/compiler-helpers.js b/src/app/compiler/compiler-helpers.js index c4ca22c001..d0c7e13fdd 100644 --- a/src/app/compiler/compiler-helpers.js +++ b/src/app/compiler/compiler-helpers.js @@ -12,7 +12,6 @@ export const compile = async (compilationTargets, settings) => { compiler.set('language', settings.language) compiler.loadVersion(canUseWorker(settings.version), urlFromVersion(settings.version)) compiler.event.register('compilationFinished', (success, compilationData, source) => { - console.log(success, compilationData) if (!success) return reject(compilationData) resolve(new CompilerAbstract(settings.version, compilationData, source)) }) diff --git a/src/app/tabs/runTab/model/dropdownlogic.js b/src/app/tabs/runTab/model/dropdownlogic.js index c2dc932aa1..0a42977a40 100644 --- a/src/app/tabs/runTab/model/dropdownlogic.js +++ b/src/app/tabs/runTab/model/dropdownlogic.js @@ -34,6 +34,9 @@ class DropdownLogic { this.runView.on('lexon', 'compilationFinished', (file, source, languageVersion, data) => broadcastCompilationResult(file, source, languageVersion, data) ) + this.runView.on('yulp', 'compilationFinished', (file, source, languageVersion, data) => + broadcastCompilationResult(file, source, languageVersion, data) + ) } loadContractFromAddress (address, confirmCb, cb) { From 7baac839333f6ba618210335d2d47ff512f381be Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 3 Jun 2020 11:50:15 +0200 Subject: [PATCH 061/184] fix e2e test --- test-browser/commands/verifyContracts.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test-browser/commands/verifyContracts.js b/test-browser/commands/verifyContracts.js index 3275cfb65a..c16dbfabe0 100644 --- a/test-browser/commands/verifyContracts.js +++ b/test-browser/commands/verifyContracts.js @@ -21,9 +21,10 @@ function getCompiledContracts (browser, opts, callback) { if (opts.version) { browser .click('*[data-id="compilation-details"]') - .waitForElementPresent('*[data-id="treeViewLicompiler"]') - .click('*[data-id="treeViewLicompiler"]') - .waitForElementPresent('*[data-id="treeViewTogglecompiler/version"]') + .waitForElementVisible('*[data-id="treeViewDivcompiler"]') + .pause(2000) + .click('*[data-id="treeViewDivcompiler"]') + .waitForElementVisible('*[data-id="treeViewLicompiler/version"]') .assert.containsText('*[data-id="treeViewLicompiler/version"]', `version: ${opts.version}`) .perform(done) } else done() From 3115d202f48c61f67eeb3b0d6ddfb1e7a489857a Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 9 Jun 2020 15:27:47 +0200 Subject: [PATCH 062/184] typo --- src/app/compiler/compiler-artefacts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/compiler/compiler-artefacts.js b/src/app/compiler/compiler-artefacts.js index f0f88bb069..3fcc312c2b 100644 --- a/src/app/compiler/compiler-artefacts.js +++ b/src/app/compiler/compiler-artefacts.js @@ -33,7 +33,7 @@ module.exports = class CompilerArtefacts extends Plugin { this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) }) - this.on('yupl', 'compilationFinished', (file, source, languageVersion, data) => { + this.on('yulp', 'compilationFinished', (file, source, languageVersion, data) => { this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) }) } From 30243b3a921ce2131ec27d5b409b92e198800b10 Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 9 Jun 2020 15:31:53 +0200 Subject: [PATCH 063/184] refactor to setConfiguration --- src/app/tabs/compile-tab.js | 5 +---- src/app/tabs/compileTab/compilerContainer.js | 7 +++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/app/tabs/compile-tab.js b/src/app/tabs/compile-tab.js index e027e1e5ce..b41dec9bbf 100644 --- a/src/app/tabs/compile-tab.js +++ b/src/app/tabs/compile-tab.js @@ -246,10 +246,7 @@ class CompileTab extends ViewPlugin { setCompilerConfig (settings) { return new Promise((resolve, reject) => { addTooltip(yo`
${this.currentRequest.from} is updating the Solidity compiler configuration.
${JSON.stringify(settings, null, '\t')}
`) - this.compilerContainer.setLanguage(settings.language) - this.compilerContainer.setEvmVersion(settings.evmVersion) - this.compilerContainer.setOptimize(settings.optimize) - this.compilerContainer.setVersion(settings.version) + this.compilerContainer.setConfiguration(settings) // @todo(#2875) should use loading compiler return value to check whether the compiler is loaded instead of "setInterval" let timeout = 0 const id = setInterval(() => { diff --git a/src/app/tabs/compileTab/compilerContainer.js b/src/app/tabs/compileTab/compilerContainer.js index 9c3fbfb50a..d5b6449d35 100644 --- a/src/app/tabs/compileTab/compilerContainer.js +++ b/src/app/tabs/compileTab/compilerContainer.js @@ -353,6 +353,13 @@ class CompilerContainer { They are an external API for modifying the compiler configuration. */ + setConfiguration (settings) { + this.setLanguage(settings.language) + this.setEvmVersion(settings.evmVersion) + this.setOptimize(settings.optimize) + this.setVersion(settings.version) + } + setOptimize (enabled) { this._view.optimize.checked = enabled this.onchangeOptimize() From babeb2a9247c42f9972c58802d418c1cbe965a6b Mon Sep 17 00:00:00 2001 From: yann300 Date: Thu, 11 Jun 2020 14:40:25 +0200 Subject: [PATCH 064/184] let txlistener reads on the last compilation per file and not only the last one --- src/app/compiler/compiler-artefacts.js | 24 ++++++++++++++++++++++++ src/app/udapp/make-udapp.js | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/app/compiler/compiler-artefacts.js b/src/app/compiler/compiler-artefacts.js index 3fcc312c2b..78a342391a 100644 --- a/src/app/compiler/compiler-artefacts.js +++ b/src/app/compiler/compiler-artefacts.js @@ -14,28 +14,52 @@ module.exports = class CompilerArtefacts extends Plugin { constructor () { super(profile) this.compilersArtefacts = {} + this.compilersArtefactsPerFile = {} } clear () { this.compilersArtefacts = {} + this.compilersArtefactsPerFile = {} } onActivation () { + const saveCompilationPerFileResult = (file, source, languageVersion, data) => { + this.compilersArtefactsPerFile[file] = new CompilerAbstract(languageVersion, data, source) + } + this.on('solidity', 'compilationFinished', (file, source, languageVersion, data) => { this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) + saveCompilationPerFileResult(file, source, languageVersion, data) }) this.on('vyper', 'compilationFinished', (file, source, languageVersion, data) => { this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) + saveCompilationPerFileResult(file, source, languageVersion, data) }) this.on('lexon', 'compilationFinished', (file, source, languageVersion, data) => { this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) + saveCompilationPerFileResult(file, source, languageVersion, data) }) this.on('yulp', 'compilationFinished', (file, source, languageVersion, data) => { this.compilersArtefacts['__last'] = new CompilerAbstract(languageVersion, data, source) + saveCompilationPerFileResult(file, source, languageVersion, data) + }) + } + + getAllContractDatas () { + const contractsData = {} + Object.keys(this.compilersArtefactsPerFile).map((targetFile) => { + const contracts = this.compilersArtefactsPerFile[targetFile].getContracts() + Object.keys(contracts).map((file) => { contractsData[file] = contracts[file] }) }) + // making sure we shave last compilation result in there + if (this.compilersArtefacts['__last']) { + const contracts = this.compilersArtefacts['__last'].getContracts() + Object.keys(contracts).map((file) => { contractsData[file] = contracts[file] }) + } + return contractsData } addResolvedContract (address, compilerData) { diff --git a/src/app/udapp/make-udapp.js b/src/app/udapp/make-udapp.js index 9b7a247f50..a5d3176edc 100644 --- a/src/app/udapp/make-udapp.js +++ b/src/app/udapp/make-udapp.js @@ -32,7 +32,7 @@ export function makeUdapp (blockchain, compilersArtefacts, logHtmlCallback) { const txlistener = blockchain.getTxListener({ api: { contracts: function () { - if (compilersArtefacts['__last']) return compilersArtefacts['__last'].getContracts() + if (compilersArtefacts['__last']) return compilersArtefacts.getAllContractDatas() return null }, resolveReceipt: function (tx, cb) { From 0033050855d7f88d0bb39319fe4d1396a80a52a8 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 17 Jun 2020 16:45:47 +0200 Subject: [PATCH 065/184] remove uneeded compilerUrl param --- src/app/tabs/compile-tab.js | 4 ++-- test-browser/tests/compiler_api.test.js | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app/tabs/compile-tab.js b/src/app/tabs/compile-tab.js index b41dec9bbf..9a61b6d0c1 100644 --- a/src/app/tabs/compile-tab.js +++ b/src/app/tabs/compile-tab.js @@ -218,7 +218,7 @@ class CompileTab extends ViewPlugin { * The module UI will *not* be updated, the compilation result is returned * This function is used by remix-plugin compiler API. * @param {object} map of source files. - * @param {object} settings {evmVersion, optimize, compilerUrl, version, language} + * @param {object} settings {evmVersion, optimize, version, language} */ async compileWithParameters (compilationTargets, settings) { return await compile(compilationTargets, settings) @@ -241,7 +241,7 @@ class CompileTab extends ViewPlugin { /** * set the compiler configuration * This function is used by remix-plugin compiler API. - * @param {object} settings {evmVersion, optimize, compilerUrl, version, language} + * @param {object} settings {evmVersion, optimize, version, language} */ setCompilerConfig (settings) { return new Promise((resolve, reject) => { diff --git a/test-browser/tests/compiler_api.test.js b/test-browser/tests/compiler_api.test.js index 2c267b8177..d38f7b64b7 100644 --- a/test-browser/tests/compiler_api.test.js +++ b/test-browser/tests/compiler_api.test.js @@ -76,8 +76,7 @@ const jsCompile = `(async () => { optimize: false, evmVersion: null, language: 'Solidity', - version: '0.6.8+commit.0bbfe453', - compilerUrl: 'https://solc-bin.ethereum.org/bin/soljson-v0.6.8+commit.0bbfe453.js' + version: '0.6.8+commit.0bbfe453' } const result = await remix.call('solidity', 'compileWithParameters', contract, params) console.log('result ', result) From ad8de09b3360b9ef580f03c7ca7620ce8a33c4e2 Mon Sep 17 00:00:00 2001 From: Jonas Hals Date: Fri, 19 Jun 2020 20:40:34 +0200 Subject: [PATCH 066/184] Fix Docker run instructions --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d2cd86ba9b..16194d514f 100644 --- a/README.md +++ b/README.md @@ -57,13 +57,13 @@ If you want to run latest changes that are merged into master branch then run: ``` docker pull remixproject/remix-ide:latest -docker run -p 8080:80 remixproject-remix-ide:latest +docker run -p 8080:80 remixproject/remix-ide:latest ``` If you want to run latest remix-live release run. ``` docker pull remixproject/remix-ide:remix_live -docker run -p 8080:80 remixproject-remix-ide:remix_live +docker run -p 8080:80 remixproject/remix-ide:remix_live ``` ### Run with docker-compose: From 9f188ecffcd738758cc2cd66559c1a70524326ec Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 24 Jun 2020 23:32:18 +0200 Subject: [PATCH 067/184] add e2e test --- package.json | 1 + test-browser/tests/specialFunctions.test.js | 6 +++ test-browser/tests/txListener.test.js | 52 +++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 test-browser/tests/txListener.test.js diff --git a/package.json b/package.json index aac26fff09..f65512b676 100644 --- a/package.json +++ b/package.json @@ -186,6 +186,7 @@ "nightwatch_local_debugger": "nightwatch ./test-browser/tests/debugger.test.js --config nightwatch.js --env chrome ", "nightwatch_local_editor": "nightwatch ./test-browser/tests/editor.test.js --config nightwatch.js --env chrome ", "nightwatch_local_compiler": "nightwatch ./test-browser/tests/compiler_api.test.js --config nightwatch.js --env chrome ", + "nightwatch_local_txListener": "nightwatch ./test-browser/tests/txListener.test.js --config nightwatch.js --env chrome ", "nightwatch_local_runAndDeploy": "nightwatch ./test-browser/tests/runAndDeploy.js --config nightwatch.js --env chrome-runAndDeploy ", "onchange": "onchange build/app.js -- npm-run-all lint", "prepublish": "mkdirp build; npm-run-all -ls downloadsolc_root build", diff --git a/test-browser/tests/specialFunctions.test.js b/test-browser/tests/specialFunctions.test.js index 53b6af7ddb..862fd2534c 100644 --- a/test-browser/tests/specialFunctions.test.js +++ b/test-browser/tests/specialFunctions.test.js @@ -4,6 +4,12 @@ var sauce = require('./sauce') module.exports = { before: function (browser, done) { + // this test suite also contribute testing https://github.com/ethereum/remix/pull/1497 and https://github.com/ethereum/remix-ide/pull/2898 + // quick explanation: + // the goal of https://github.com/ethereum/remix-ide/pull/2898 is to keep track of all the compiled contracts an not only the last one. + // this introduce an issue: if 2 compiled contracts have the same name, the second one override the first which is not wanted. + // fix's delivered by https://github.com/ethereum/remix/pull/1497: instead of getting contract by name, + // which result in name clashing we process the whole contract object (which contain bytecode, deployedbytecode, ...) init(browser, done) }, '@sources': function () { diff --git a/test-browser/tests/txListener.test.js b/test-browser/tests/txListener.test.js new file mode 100644 index 0000000000..4dfbdb502b --- /dev/null +++ b/test-browser/tests/txListener.test.js @@ -0,0 +1,52 @@ +'use strict' +var examples = require('../../src/app/editor/example-contracts') +var init = require('../helpers/init') +var sauce = require('./sauce') + +var sources = [ + {'browser/Untitled.sol': {content: examples.ballot.content}}, + {'browser/Untitled1.sol': {content: `contract test {}`}} +] + +module.exports = { + before: function (browser, done) { + init(browser, done) + }, + '@sources': function () { + return sources + }, + 'The sequence: Compiling / Deploying / Compiling another contract / calling the first contract - should display in the log the transaction with all the decoded information': function (browser) { + // https://github.com/ethereum/remix-ide/issues/2864 + browser + .waitForElementVisible('*[data-id="remixIdeIconPanel"]', 10000) + .clickLaunchIcon('solidity') + .testContracts('Untitled.sol', sources[0]['browser/Untitled.sol'], ['Ballot']) + .clickLaunchIcon('udapp') + .selectAccount('0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c') + .setValue('input[placeholder="bytes32[] proposalNames"]', '["0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"]') + .click('*[data-id="Deploy - transact (not payable)"]') + .waitForElementPresent('*[data-id="universalDappUiContractActionWrapper"]') + .click('*[data-id="universalDappUiTitleExpander"]') + .clickFunction('delegate - transact (not payable)', {types: 'address to', values: '"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db"'}) + .testFunction('0x41fab8ea5b1d9fba5e0a6545ca1a2d62fff518578802c033c2b9a031a01c31b3', + { + status: '0x1 Transaction mined and execution succeed', + 'transaction hash': '0x41fab8ea5b1d9fba5e0a6545ca1a2d62fff518578802c033c2b9a031a01c31b3', + 'decoded input': { 'address to': '0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB' } + }) + .clickLaunchIcon('solidity') + .testContracts('Untitled1.sol', sources[1]['browser/Untitled1.sol'], ['test']) + .clickLaunchIcon('udapp') + .clickFunction('delegate - transact (not payable)', {types: 'address to', values: ''}) + .pause(5000) + .testFunction('0xca58080c8099429caeeffe43b8104df919c2c543dceb9edf9242fa55f045c803', + { + status: '0x0 Transaction mined but execution failed', + 'transaction hash': '0xca58080c8099429caeeffe43b8104df919c2c543dceb9edf9242fa55f045c803', + 'decoded input': { 'address to': '0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB' } + }) + .end() + }, + + tearDown: sauce +} From 3c1d26f4f9a5cfd7915831bd8ce8bd2c72b50c51 Mon Sep 17 00:00:00 2001 From: yann300 Date: Fri, 26 Jun 2020 10:59:25 +0200 Subject: [PATCH 068/184] bump remix libs --- package-lock.json | 2096 +++++++++++++++++++++++++-------------------- package.json | 12 +- 2 files changed, 1173 insertions(+), 935 deletions(-) diff --git a/package-lock.json b/package-lock.json index f571dd4b3f..e253e2e84e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,21 +5,21 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", + "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.3" } }, "@babel/compat-data": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz", - "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz", + "integrity": "sha512-BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg==", "dev": true, "requires": { - "browserslist": "^4.11.1", + "browserslist": "^4.12.0", "invariant": "^2.2.4", "semver": "^5.5.0" }, @@ -33,19 +33,19 @@ } }, "@babel/core": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz", + "integrity": "sha512-5YqWxYE3pyhIi84L84YcwjeEgS+fa7ZjK6IBVGTjDVfm64njkR2lfDhVR5OudLk8x2GK59YoSyVv+L/03k1q9w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helpers": "^7.10.1", + "@babel/parser": "^7.10.3", + "@babel/template": "^7.10.3", + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -74,34 +74,34 @@ } }, "@babel/generator": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", - "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz", + "integrity": "sha512-drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA==", "dev": true, "requires": { - "@babel/types": "^7.9.6", + "@babel/types": "^7.10.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz", + "integrity": "sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.3.tgz", + "integrity": "sha512-lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-explode-assignable-expression": "^7.10.3", + "@babel/types": "^7.10.3" } }, "@babel/helper-call-delegate": { @@ -271,13 +271,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz", - "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz", + "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==", "dev": true, "requires": { - "@babel/compat-data": "^7.9.6", - "browserslist": "^4.11.1", + "@babel/compat-data": "^7.10.1", + "browserslist": "^4.12.0", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" @@ -291,204 +291,218 @@ } } }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz", + "integrity": "sha512-iRT9VwqtdFmv7UheJWthGc/h2s7MqoweBF9RUj77NFZsg9VfISvBTum3k6coAhJ8RWv2tj3yUjA03HxPd0vfpQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-member-expression-to-functions": "^7.10.3", + "@babel/helper-optimise-call-expression": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1" + } + }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", - "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz", + "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-regex": "^7.10.1", "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz", + "integrity": "sha512-bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/helper-function-name": "^7.10.3", + "@babel/types": "^7.10.3", "lodash": "^4.17.13" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz", + "integrity": "sha512-0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw==", "dev": true, "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3" } }, "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz", + "integrity": "sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" + "@babel/helper-get-function-arity": "^7.10.3", + "@babel/template": "^7.10.3", + "@babel/types": "^7.10.3" } }, "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz", + "integrity": "sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.3" } }, "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz", + "integrity": "sha512-9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.3" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz", + "integrity": "sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.3" } }, "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz", + "integrity": "sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.3" } }, "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", + "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1", "lodash": "^4.17.13" } }, "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz", + "integrity": "sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.3" } }, "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz", + "integrity": "sha512-j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==", "dev": true }, "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz", + "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz", + "integrity": "sha512-sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-wrap-function": "^7.10.1", + "@babel/template": "^7.10.3", + "@babel/traverse": "^7.10.3", + "@babel/types": "^7.10.3" } }, "@babel/helper-replace-supers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", - "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", + "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", + "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" } }, "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz", + "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz", + "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/helper-function-name": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/helpers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", - "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", + "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", + "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", + "@babel/helper-validator-identifier": "^7.10.3", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -531,101 +545,121 @@ } }, "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz", + "integrity": "sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz", + "integrity": "sha512-WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-remap-async-to-generator": "^7.10.3", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz", + "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz", + "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz", + "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz", + "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz", + "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-numeric-separator": "^7.10.1" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", - "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz", + "integrity": "sha512-ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.3", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.9.5" + "@babel/plugin-transform-parameters": "^7.10.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz", + "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz", + "integrity": "sha512-yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.3", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz", + "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", - "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz", + "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.8", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-async-generators": { @@ -637,6 +671,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz", + "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -665,12 +708,12 @@ } }, "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", + "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -701,66 +744,66 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz", + "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz", + "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz", + "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz", + "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz", + "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-plugin-utils": "^7.10.1", "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", - "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz", + "integrity": "sha512-irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-define-map": "^7.10.3", + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-optimise-call-expression": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", "globals": "^11.1.0" }, "dependencies": { @@ -773,69 +816,69 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz", + "integrity": "sha512-GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.3" } }, "@babel/plugin-transform-destructuring": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", - "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz", + "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz", + "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz", + "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz", + "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-for-of": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", - "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz", + "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz", + "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-instanceof": { @@ -856,203 +899,212 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz", + "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz", + "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz", - "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz", + "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz", - "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz", + "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz", - "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz", + "integrity": "sha512-GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-hoist-variables": "^7.10.3", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", - "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz", + "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz", + "integrity": "sha512-I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.8.3" } }, "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz", + "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-object-assign": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.8.3.tgz", - "integrity": "sha512-i3LuN8tPDqUCRFu3dkzF2r1Nx0jp4scxtm7JxtIqI9he9Vk20YD+/zshdzR9JLsoBMlJlNR82a62vQExNEVx/Q==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.10.3.tgz", + "integrity": "sha512-kV0CZjCZ3N4DrMnxZwxat6CkeWZTEtDNaW41XbGz5BegV+pu8rKIhJeg50MPk6V+4v496S+pyuDw9PrUwAiuYg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.3" } }, "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz", + "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", - "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz", + "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz", + "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz", + "integrity": "sha512-H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz", + "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", + "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", + "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz", + "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-regex": "^7.10.1" } }, "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz", + "integrity": "sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.3" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz", + "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz", + "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz", + "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/polyfill": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.8.7.tgz", - "integrity": "sha512-LeSfP9bNZH2UOZgcGcZ0PIHUt1ZuHub1L3CVmEyqLxCeDLm4C5Gi8jRH8ZX2PNpDhQCo0z6y/+DIs2JlliXW8w==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.1.tgz", + "integrity": "sha512-TviueJ4PBW5p48ra8IMtLXVkDucrlOZAIZ+EXqS3Ot4eukHbWiqcn7DcqpA1k5PcKtmJ4Xl9xwdv6yQvvcA+3g==", "dev": true, "requires": { "core-js": "^2.6.5", @@ -1060,67 +1112,71 @@ } }, "@babel/preset-env": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", - "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.9.6", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.3.tgz", + "integrity": "sha512-jHaSUgiewTmly88bJtMHbOd1bJf2ocYxb5BWKSDQIP5tmgFuS/n0gl+nhSrYDhT33m0vPxp+rP8oYYgPgMNQlg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.3", + "@babel/helper-compilation-targets": "^7.10.2", + "@babel/helper-module-imports": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-proposal-async-generator-functions": "^7.10.3", + "@babel/plugin-proposal-class-properties": "^7.10.1", + "@babel/plugin-proposal-dynamic-import": "^7.10.1", + "@babel/plugin-proposal-json-strings": "^7.10.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-numeric-separator": "^7.10.1", + "@babel/plugin-proposal-object-rest-spread": "^7.10.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.3", + "@babel/plugin-proposal-private-methods": "^7.10.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.1", "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-json-strings": "^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.1", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.5", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.9.5", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.6", - "@babel/plugin-transform-modules-commonjs": "^7.9.6", - "@babel/plugin-transform-modules-systemjs": "^7.9.6", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.9.5", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.10.1", + "@babel/plugin-transform-arrow-functions": "^7.10.1", + "@babel/plugin-transform-async-to-generator": "^7.10.1", + "@babel/plugin-transform-block-scoped-functions": "^7.10.1", + "@babel/plugin-transform-block-scoping": "^7.10.1", + "@babel/plugin-transform-classes": "^7.10.3", + "@babel/plugin-transform-computed-properties": "^7.10.3", + "@babel/plugin-transform-destructuring": "^7.10.1", + "@babel/plugin-transform-dotall-regex": "^7.10.1", + "@babel/plugin-transform-duplicate-keys": "^7.10.1", + "@babel/plugin-transform-exponentiation-operator": "^7.10.1", + "@babel/plugin-transform-for-of": "^7.10.1", + "@babel/plugin-transform-function-name": "^7.10.1", + "@babel/plugin-transform-literals": "^7.10.1", + "@babel/plugin-transform-member-expression-literals": "^7.10.1", + "@babel/plugin-transform-modules-amd": "^7.10.1", + "@babel/plugin-transform-modules-commonjs": "^7.10.1", + "@babel/plugin-transform-modules-systemjs": "^7.10.3", + "@babel/plugin-transform-modules-umd": "^7.10.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.3", + "@babel/plugin-transform-new-target": "^7.10.1", + "@babel/plugin-transform-object-super": "^7.10.1", + "@babel/plugin-transform-parameters": "^7.10.1", + "@babel/plugin-transform-property-literals": "^7.10.1", + "@babel/plugin-transform-regenerator": "^7.10.3", + "@babel/plugin-transform-reserved-words": "^7.10.1", + "@babel/plugin-transform-shorthand-properties": "^7.10.1", + "@babel/plugin-transform-spread": "^7.10.1", + "@babel/plugin-transform-sticky-regex": "^7.10.1", + "@babel/plugin-transform-template-literals": "^7.10.3", + "@babel/plugin-transform-typeof-symbol": "^7.10.1", + "@babel/plugin-transform-unicode-escapes": "^7.10.1", + "@babel/plugin-transform-unicode-regex": "^7.10.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.6", - "browserslist": "^4.11.1", + "@babel/types": "^7.10.3", + "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", @@ -1897,9 +1953,9 @@ "dev": true }, "@babel/register": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", - "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.3.tgz", + "integrity": "sha512-s1il0vdd02HCGwV1iocGJEzcbTNouZqMolSXKXFAiTNJSudPas9jdLQwyPPyAJxdNL6KGJ8pwWIOpKmgO/JWqg==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", @@ -1910,37 +1966,37 @@ } }, "@babel/runtime": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", - "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", + "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz", + "integrity": "sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/code-frame": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3" } }, "@babel/traverse": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", - "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz", + "integrity": "sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", + "@babel/code-frame": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-function-name": "^7.10.3", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.3", + "@babel/types": "^7.10.3", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -1964,16 +2020,27 @@ } }, "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "version": "7.10.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz", + "integrity": "sha512-nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", + "@babel/helper-validator-identifier": "^7.10.3", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, + "@dabh/diagnostics": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", + "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "dev": true, + "requires": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, "@f/has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@f/has/-/has-1.0.1.tgz", @@ -2003,33 +2070,33 @@ "dev": true }, "@fortawesome/fontawesome-common-types": { - "version": "0.2.28", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.28.tgz", - "integrity": "sha512-gtis2/5yLdfI6n0ia0jH7NJs5i/Z/8M/ZbQL6jXQhCthEOe5Cr5NcQPhgTvFxNOtURE03/ZqUcEskdn2M+QaBg==", + "version": "0.2.29", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.29.tgz", + "integrity": "sha512-cY+QfDTbZ7XVxzx7jxbC98Oxr/zc7R2QpTLqTxqlfyXDrAJjzi/xUIqAUsygELB62JIrbsWxtSRhayKFkGI7MA==", "dev": true }, "@fortawesome/fontawesome-free": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz", - "integrity": "sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz", + "integrity": "sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw==", "dev": true }, "@fortawesome/fontawesome-svg-core": { - "version": "1.2.28", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.28.tgz", - "integrity": "sha512-4LeaNHWvrneoU0i8b5RTOJHKx7E+y7jYejplR7uSVB34+mp3Veg7cbKk7NBCLiI4TyoWS1wh9ZdoyLJR8wSAdg==", + "version": "1.2.29", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.29.tgz", + "integrity": "sha512-xmPmP2t8qrdo8RyKihTkGb09RnZoc+7HFBCnr0/6ZhStdGDSLeEd7ajV181+2W29NWIFfylO13rU+s3fpy3cnA==", "dev": true, "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.28" + "@fortawesome/fontawesome-common-types": "^0.2.29" } }, "@fortawesome/free-solid-svg-icons": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.13.0.tgz", - "integrity": "sha512-IHUgDJdomv6YtG4p3zl1B5wWf9ffinHIvebqQOmV3U+3SLw4fC+LUCCgwfETkbTtjy5/Qws2VoVf6z/ETQpFpg==", + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.13.1.tgz", + "integrity": "sha512-LQH/0L1p4+rqtoSHa9qFYR84hpuRZKqaQ41cfBQx8b68p21zoWSekTAeA54I/2x9VlCHDLFlG74Nmdg4iTPQOg==", "dev": true, "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.28" + "@fortawesome/fontawesome-common-types": "^0.2.29" } }, "@improved/node": { @@ -2101,9 +2168,9 @@ } }, "@types/node": { - "version": "13.13.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.5.tgz", - "integrity": "sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g==", + "version": "14.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz", + "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==", "dev": true }, "@types/tape": { @@ -2258,17 +2325,17 @@ }, "dependencies": { "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "dev": true } } }, "acorn-walk": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", - "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, "add-stream": { @@ -2516,9 +2583,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -2622,9 +2689,9 @@ "dev": true }, "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, "babel-code-frame": { @@ -2891,9 +2958,9 @@ "dev": true }, "bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", "dev": true }, "body-parser": { @@ -3187,9 +3254,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -3213,9 +3280,9 @@ } }, "browserify-sign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz", - "integrity": "sha512-VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", "dev": true, "requires": { "bn.js": "^5.1.1", @@ -3225,7 +3292,8 @@ "elliptic": "^6.5.2", "inherits": "^2.0.4", "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0" + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "dependencies": { "readable-stream": { @@ -3238,6 +3306,12 @@ "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } + }, + "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 } } }, @@ -3257,15 +3331,15 @@ } }, "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz", + "integrity": "sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001088", + "electron-to-chromium": "^1.3.481", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "buffer": { @@ -3451,9 +3525,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001055", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz", - "integrity": "sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==", + "version": "1.0.30001088", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz", + "integrity": "sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg==", "dev": true }, "capture-stack-trace": { @@ -3753,12 +3827,6 @@ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, - "colornames": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz", - "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=", - "dev": true - }, "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", @@ -3841,9 +3909,9 @@ "dev": true }, "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", + "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", "dev": true, "requires": { "array-ify": "^1.0.0", @@ -4567,9 +4635,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -5143,17 +5211,6 @@ "minimist": "^1.1.1" } }, - "diagnostics": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz", - "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==", - "dev": true, - "requires": { - "colorspace": "1.1.x", - "enabled": "1.0.x", - "kuler": "1.0.x" - } - }, "diff": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", @@ -5172,9 +5229,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -5332,15 +5389,15 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.434", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.434.tgz", - "integrity": "sha512-WjzGrE6appXvMyc2kH9Ide7OxsgTuRzag9sjQ5AcbOnbS9ut7P1HzOeEbJFLhr81IR7n2Hlr6qTTSGTXLIX5Pg==", + "version": "1.3.483", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz", + "integrity": "sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg==", "dev": true }, "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -5353,21 +5410,18 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } }, "enabled": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", - "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=", - "dev": true, - "requires": { - "env-variable": "0.0.x" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -5397,11 +5451,24 @@ "xtend": "~4.0.0" } }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, "level-codec": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.1.tgz", - "integrity": "sha512-ajFP0kJ+nyq4i6kptSM+mAvJKLOg1X5FiFPtLG9M5gCEZyBmgDi3FkDrvlMkEzrUn1cWxtvVmrvoS4ASyO/q+Q==", - "dev": true + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } }, "level-errors": { "version": "2.0.1", @@ -5429,12 +5496,6 @@ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, - "env-variable": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", - "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==", - "dev": true - }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -5454,22 +5515,22 @@ } }, "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -5559,6 +5620,12 @@ "es6-symbol": "^3.1.1" } }, + "escalade": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", + "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -5571,9 +5638,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", - "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { "esprima": "^4.0.1", @@ -5716,12 +5783,55 @@ "ms": "2.0.0" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", @@ -5770,39 +5880,11 @@ "ms": "2.0.0" } }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "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, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-up": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", - "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", - "dev": true, - "requires": { - "find-up": "^1.0.0" - } } } }, @@ -5847,9 +5929,9 @@ "integrity": "sha1-NYlpn/nJF/LCX3apFmh/ZBw2n/M=" }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -5866,9 +5948,9 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "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 }, "espree": { @@ -5957,9 +6039,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, "ultron": { @@ -5982,40 +6064,60 @@ } }, "ethashjs": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.7.tgz", - "integrity": "sha1-ML/kGWcmaQoMWdO4Jy5w1NDDS64=", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", + "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", "dev": true, "requires": { - "async": "^1.4.2", - "buffer-xor": "^1.0.3", - "ethereumjs-util": "^4.0.1", + "async": "^2.1.2", + "buffer-xor": "^2.0.1", + "ethereumjs-util": "^7.0.2", "miller-rabin": "^4.0.0" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "buffer-xor": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", + "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } }, "ethereumjs-util": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", - "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.2.tgz", + "integrity": "sha512-ATAP02eJLpAlWGfiKQddNrRfZpwXiTFhRN2EM/yLXMCdBW/xjKYblNKcx8GLzzrjXg0ymotck+lam1nuV90arQ==", "dev": true, "requires": { - "bn.js": "^4.8.0", + "@types/bn.js": "^4.11.3", + "bn.js": "^5.1.2", "create-hash": "^1.1.2", - "keccakjs": "^0.2.0", - "rlp": "^2.0.0", - "secp256k1": "^3.0.1" + "ethjs-util": "0.1.6", + "keccak": "^3.0.0", + "rlp": "^2.2.4", + "secp256k1": "^4.0.1" + } + }, + "keccak": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.0.tgz", + "integrity": "sha512-/4h4FIfFEpTEuySXi/nVFM5rqSKPnnhI7cL4K3MFSwoI3VyM7AhPSq3SsysARtnEBEeIKMBUWD8cTh9nHE8AkA==", + "dev": true, + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "secp256k1": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.1.tgz", + "integrity": "sha512-iGRjbGAKfXMqhtdkkuNxsgJQfJO8Oo78Rm7DAvsG3XKngq+nJIOGqrCSXcQqIVsmCj0wFanE5uTKFxV3T9j2wg==", + "dev": true, + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } } } @@ -6062,9 +6164,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, "ethereumjs-util": { @@ -6115,9 +6217,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, "ethereumjs-util": { @@ -6196,9 +6298,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -6244,11 +6346,26 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, "hash.js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", @@ -6600,9 +6717,9 @@ }, "dependencies": { "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "dev": true }, "isarray": { @@ -6627,9 +6744,9 @@ } }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "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 }, "fast-json-stable-stringify": { @@ -6676,9 +6793,9 @@ } }, "fecha": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", - "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", + "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==", "dev": true }, "figures": { @@ -6779,12 +6896,12 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "flat-cache": { @@ -6804,6 +6921,12 @@ "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=", "dev": true }, + "fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true + }, "fnjson": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fnjson/-/fnjson-1.3.0.tgz", @@ -6811,12 +6934,9 @@ "dev": true }, "follow-redirects": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz", - "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==", - "requires": { - "debug": "^3.0.0" - } + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz", + "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==" }, "font-awesome": { "version": "4.7.0", @@ -8213,14 +8333,11 @@ "dev": true }, "uglify-js": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.2.tgz", - "integrity": "sha512-zGVwKslUAD/EeqOrD1nQaBmXIHl1Vw371we8cvS8I6mYK9rmgX5tv8AAeJdfsQ3Kk5mGax2SVV/AizxdNGhl7Q==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz", + "integrity": "sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==", "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.3" - } + "optional": true }, "wordwrap": { "version": "1.0.0", @@ -8489,9 +8606,9 @@ "dev": true }, "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "requires": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -8639,9 +8756,9 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, "immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", "dev": true }, "imurmurhash": { @@ -8743,9 +8860,9 @@ } }, "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "invariant": { "version": "2.2.4", @@ -8826,9 +8943,9 @@ "dev": true }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-ci": { @@ -9042,12 +9159,12 @@ "dev": true }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "dev": true, "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, "is-resolvable": { @@ -9215,9 +9332,9 @@ "dev": true }, "js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", - "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz", + "integrity": "sha512-1hgLrLIrmCgZG+ID3VoLNLOSwjGnoZa8tyrUdEteMeIzsT6PH7PMLyUvbDwzNE56P3PNxyvuIOx4Uh2E5rzQIw==", "dev": true }, "js-beautify": { @@ -9244,9 +9361,9 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -9431,13 +9548,10 @@ } }, "kuler": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz", - "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==", - "dev": true, - "requires": { - "colornames": "^1.1.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true }, "labeled-stream-splicer": { "version": "2.0.2", @@ -9567,6 +9681,15 @@ "escape-string-regexp": "^1.0.5" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", @@ -9640,6 +9763,16 @@ "graceful-fs": "^4.1.6" } }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -9655,6 +9788,30 @@ "mimic-fn": "^1.0.0" } }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -9785,6 +9942,12 @@ "xtend": "~4.0.0" } }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true + }, "memdown": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", @@ -9998,12 +10161,12 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, @@ -10250,14 +10413,14 @@ "dev": true }, "logform": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz", - "integrity": "sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", + "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", "dev": true, "requires": { "colors": "^1.2.1", "fast-safe-stringify": "^2.0.4", - "fecha": "^2.3.3", + "fecha": "^4.2.0", "ms": "^2.1.1", "triple-beam": "^1.3.0" }, @@ -10531,6 +10694,49 @@ "trim-newlines": "^2.0.0" }, "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "read-pkg-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", @@ -10587,9 +10793,9 @@ "dev": true }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, "ethereumjs-util": { @@ -10763,9 +10969,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -11072,9 +11278,9 @@ } }, "moment": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz", - "integrity": "sha512-PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==", + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==", "dev": true }, "morphdom": { @@ -11265,6 +11471,12 @@ "lower-case": "^1.1.1" } }, + "node-addon-api": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.1.tgz", + "integrity": "sha512-2WVfwRfIr1AVn3dRq4yRc2Hn35ND+mPJH6inC6bjpYCZVrpXPB4j3T6i//OGVfqVsR1t/X/axRulDsheq4F0LQ==", + "dev": true + }, "node-emoji": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", @@ -11280,6 +11492,12 @@ "integrity": "sha512-06LC4wHO+nyH0J07dUzFsZTVZMsMMKTkXo8BUTmuYbJhbsKX2cVDn2xADoFqjbnBYThVlGSlaM10CDyEi+48Iw==", "dev": true }, + "node-gyp-build": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.2.tgz", + "integrity": "sha512-Lqh7mrByWCM8Cf9UPqpeoVBBo5Ugx+RKu885GAzmLBVYjeywScxHXPGLa4JfYNZmcNGwzR0Glu5/9GaQZMFqyA==", + "dev": true + }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", @@ -11310,9 +11528,9 @@ } }, "node-releases": { - "version": "1.1.55", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.55.tgz", - "integrity": "sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==", + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==", "dev": true }, "nodent": { @@ -12971,9 +13189,9 @@ } }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true }, "object-is": { @@ -13131,10 +13349,13 @@ } }, "one-time": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", - "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "requires": { + "fn.name": "1.x.x" + } }, "onetime": { "version": "1.1.0", @@ -13286,21 +13507,21 @@ "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "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": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, "p-timeout": { @@ -13313,9 +13534,9 @@ } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "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 }, "pac-proxy-agent": { @@ -13620,9 +13841,9 @@ } }, "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -13688,79 +13909,100 @@ "requires": { "find-up": "^2.0.0", "load-json-file": "^4.0.0" - } - }, - "pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", - "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" }, "dependencies": { "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^2.0.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^3.0.0", + "p-locate": "^2.0.0", "path-exists": "^3.0.0" } }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^1.1.0" } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true } } }, + "pkg-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", + "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", + "requires": { + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", + "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "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, + "requires": { + "pinkie-promise": "^2.0.0" + } + } } }, "pluralize": { @@ -13928,9 +14170,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -14118,6 +14360,15 @@ "read-pkg": "^2.0.0" }, "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -14130,6 +14381,40 @@ "strip-bom": "^3.0.0" } }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -14527,9 +14812,9 @@ } }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", "dev": true }, "regenerate-unicode-properties": { @@ -14626,9 +14911,9 @@ } }, "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, "regjsparser": { @@ -14649,46 +14934,46 @@ } }, "remix-analyzer": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.5.2.tgz", - "integrity": "sha512-s07UG2uYMdreICfhiABrn+XEr3QZCT+GSIzafxyumAPsjgx/RVzh0TLw5vxqnHWMLohhXc+9VXh+YYvQdy/IfQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/remix-analyzer/-/remix-analyzer-0.5.3.tgz", + "integrity": "sha512-M4lrNE/SPn5P0xLIOTuPyx4xH+uZR7B4WshcqS9IqJddKa1pJFshTSAYvaKZWvAED5fPP/78cX+R5Vc+dgTUkw==", "dev": true, "requires": { - "remix-astwalker": "0.0.24", - "remix-lib": "0.4.29" + "remix-astwalker": "0.0.25", + "remix-lib": "0.4.30" } }, "remix-astwalker": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/remix-astwalker/-/remix-astwalker-0.0.24.tgz", - "integrity": "sha512-t9DncFd48da3hDvnaZw4VrYYYs0hDiSW7LGSbfi+YrwOIhzuSGLL/N8tKYCEfsOsWRKOUXC4fuiRhlOZYDY0fQ==", + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/remix-astwalker/-/remix-astwalker-0.0.25.tgz", + "integrity": "sha512-4Vvru0Pq06RZQeSZOGPgf1asG6QwciE6T81wQDmjbn9IAiMRUv7WBrQgsHXBydScbtR/TsbHfnmuba4viRK/dg==", "dev": true, "requires": { "@types/tape": "^4.2.33", "nyc": "^13.3.0", - "remix-lib": "0.4.29", + "remix-lib": "0.4.30", "tape": "^4.10.1", "ts-node": "^8.0.3", "typescript": "^3.4.3" } }, "remix-debug": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.4.4.tgz", - "integrity": "sha512-pM1TXi67Jq7GVDRu5eYIZPIwgIMkH4UVPPG3/Z+zsICOni4sKTQzfxABbvjalVCE/0MjTislFUQEQpprXstpWg==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/remix-debug/-/remix-debug-0.4.5.tgz", + "integrity": "sha512-dd2wiWJuDD3MzywaGA/Q3M8ji6fAnqnvTXCx6aqzZg7DPHJZ7lsIk4W9P9plE+/cwdc7RzOntmWgbhmeXyVCKg==", "dev": true, "requires": { "commander": "^2.19.0", "ethereumjs-util": "^6.2.0", "ethereumjs-vm": "4.1.3", - "remix-lib": "0.4.29", + "remix-lib": "0.4.30", "web3": "^1.2.4" } }, "remix-lib": { - "version": "0.4.29", - "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.29.tgz", - "integrity": "sha512-XeJwACrrP5SOTX7t00BTM4tPjPBaf+RvUmVO5WIrHR+fsOBAXqEymcvxJjbeWmGTyoAS9A9C/Ajv1UVyM/iCuQ==", + "version": "0.4.30", + "resolved": "https://registry.npmjs.org/remix-lib/-/remix-lib-0.4.30.tgz", + "integrity": "sha512-FqJzWF1eKJDZIxiO2LmmTGo7cyQSO+Iq8NDnm/TJcRYR/1a5UKKHSgIZ6rzevA3igMC/RrEhovbE3A/9l7pVzw==", "dev": true, "requires": { "async": "^2.1.2", @@ -14703,9 +14988,9 @@ } }, "remix-simulator": { - "version": "0.1.9-beta.5", - "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-beta.5.tgz", - "integrity": "sha512-db391UV0lRc50jOcVrSmTiVrfPWeS6LU/93dp7w4btohd7HeYD5/3oNpy9mkrlCU5FMvixE9x7ygwXwM3JZQyQ==", + "version": "0.1.9-beta.6", + "resolved": "https://registry.npmjs.org/remix-simulator/-/remix-simulator-0.1.9-beta.6.tgz", + "integrity": "sha512-qRlwMWEPXoaNnC1N54ZN96/Il0ypIDsE+ZixtA01R/b6EQrYqIfGBHV7A3fnpxMmlZuF2yuPvZmIRO8ofXksdQ==", "dev": true, "requires": { "ansi-gray": "^0.1.1", @@ -14719,7 +15004,7 @@ "express": "^4.16.3", "express-ws": "^4.0.0", "merge": "^1.2.0", - "remix-lib": "0.4.29", + "remix-lib": "0.4.30", "standard": "^10.0.3", "time-stamp": "^2.0.0", "web3": "^1.2.4" @@ -14885,13 +15170,13 @@ } }, "remix-solidity": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.30.tgz", - "integrity": "sha512-4734G83V2BtLwIDXlRx/IM1sy/FYFoiw9tNpxSsD9QH22FQbMYHkNhLTsuG+fDfMMly2e2SfMXOU678Sj2vMzw==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/remix-solidity/-/remix-solidity-0.3.31.tgz", + "integrity": "sha512-cRn/yxstmyMW7ooqKvJJQQYcSWXxcGwcX7O5SZP17cWVvJSJoQjaO/ox7geflMUC+ULy2ofno8MUE4dgEQS4kg==", "dev": true, "requires": { "eslint-scope": "^5.0.0", - "remix-lib": "0.4.29", + "remix-lib": "0.4.30", "solc": "^0.6.0", "webworkify": "^1.2.1" } @@ -14946,9 +15231,9 @@ } }, "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz", + "integrity": "sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==", "dev": true }, "ansi-escapes": { @@ -15060,9 +15345,9 @@ "dev": true }, "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, "requires": { "debug": "^2.6.9", @@ -15240,12 +15525,12 @@ "dev": true }, "jsx-ast-utils": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", - "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", "dev": true, "requires": { - "array-includes": "^3.0.3", + "array-includes": "^3.1.1", "object.assign": "^4.1.0" } }, @@ -15393,18 +15678,18 @@ } }, "remix-tests": { - "version": "0.1.33", - "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.33.tgz", - "integrity": "sha512-gkArJeyAUbngPjghpoQdM5D7cFZnTjFS9QUgBdDKhUldwh5l1xRfsDwzFMZ4xbp3fJB/qEuZHmXPpyeAV7piaw==", + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/remix-tests/-/remix-tests-0.1.34.tgz", + "integrity": "sha512-TnulFttvOW+sQiekeRSdfFvh3mZMGxTaHAcfnzilM/IxocasuwQqVskZY8FAtoOuWmdcn/t7CWrWv9xqDJwWlw==", "dev": true, "requires": { "async": "^2.6.0", "change-case": "^3.0.1", "colors": "^1.1.2", "commander": "^2.13.0", - "remix-lib": "0.4.29", - "remix-simulator": "0.1.9-beta.5", - "remix-solidity": "0.3.30", + "remix-lib": "0.4.30", + "remix-simulator": "0.1.9-beta.6", + "remix-solidity": "0.3.31", "signale": "^1.4.0", "web3": "^1.2.4", "winston": "^3.0.0" @@ -16011,18 +16296,18 @@ } }, "rlp": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.4.tgz", - "integrity": "sha512-fdq2yYCWpAQBhwkZv+Z8o/Z4sPmYm1CUq6P7n6lVTOdb949CnqA0sndXal5C1NleSVSZm6q5F3iEbauyVln/iw==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.5.tgz", + "integrity": "sha512-y1QxTQOp0OZnjn19FxBmped4p+BSKPHwGndaqrESseyd2xXZtcgR3yuTIosh8CaMaOii9SKIYerBXnV/CpJ3qw==", "dev": true, "requires": { "bn.js": "^4.11.1" }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -16118,9 +16403,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true } } @@ -16929,9 +17214,9 @@ } }, "solc": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.7.tgz", - "integrity": "sha512-a3iocjS1yGzw3Wy7jkqSLX3Vg1lMDCyoKZoVfpOagRGWkh37f11BrcUDO8f73rjdpw2WUBSLJtTQ26i52/0JOg==", + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.10.tgz", + "integrity": "sha512-+oHwIvNjg3bxXvL9yua/Z4ZFEdkCkgRSh7aIGGb+mf/gzoA8PRKiKGYDsjMaj0CJLH1BTBOUpNFeYhhnUFfjRg==", "dev": true, "requires": { "command-exists": "^1.2.8", @@ -17023,9 +17308,9 @@ "dev": true }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -17039,9 +17324,9 @@ "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "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, "requires": { "spdx-exceptions": "^2.1.0", @@ -17325,28 +17610,6 @@ "es-abstract": "^1.17.5" } }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, "string.prototype.trimstart": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", @@ -17640,15 +17903,6 @@ "strip-eof": "^1.0.0" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, "invert-kv": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", @@ -17670,16 +17924,6 @@ "invert-kv": "^2.0.0" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "mem": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", @@ -17708,30 +17952,6 @@ "mem": "^4.0.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": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "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 - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -17851,9 +18071,9 @@ } }, "tape": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.2.tgz", - "integrity": "sha512-waWwC/OqYVE9TS6r1IynlP2sEdk4Lfo6jazlgkuNkPTHIbuG2BTABIaKdlQWwPeB6Oo4ksZ1j33Yt0NTOAlYMQ==", + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", + "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", "dev": true, "requires": { "deep-equal": "~1.1.1", @@ -17865,22 +18085,28 @@ "has": "~1.0.3", "inherits": "~2.0.4", "is-regex": "~1.0.5", - "minimist": "~1.2.0", + "minimist": "~1.2.5", "object-inspect": "~1.7.0", - "resolve": "~1.15.1", + "resolve": "~1.17.0", "resumer": "~0.0.0", "string.prototype.trim": "~1.2.1", "through": "~2.3.8" }, "dependencies": { - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "has": "^1.0.3" } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true } } }, @@ -18186,9 +18412,9 @@ "dev": true }, "ts-node": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", - "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "requires": { "arg": "^4.1.0", @@ -18271,9 +18497,9 @@ } }, "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", - "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", + "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", "dev": true }, "uglify-js": { @@ -18344,9 +18570,9 @@ "dev": true }, "unbzip2-stream": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz", - "integrity": "sha512-pZMVAofMrrHX6Ik39hCk470kulCbmZ2SWfQLPmTWqfJV/oUm0gn1CblvHdUu4+54Je6Jq34x8kY6XjTy6dMkOg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "requires": { "buffer": "^5.2.1", @@ -19133,9 +19359,9 @@ }, "dependencies": { "@types/node": { - "version": "12.12.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.38.tgz", - "integrity": "sha512-75eLjX0pFuTcUXnnWmALMzzkYorjND0ezNEycaKesbUBg9eGZp4GHPuDmkRc4mQQvIpe29zrzATNRA6hkYqwmA==", + "version": "12.12.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", + "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", "dev": true } } @@ -19153,9 +19379,9 @@ }, "dependencies": { "@types/node": { - "version": "10.17.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.21.tgz", - "integrity": "sha512-PQKsydPxYxF1DsAFWmunaxd3sOi3iMt6Zmx/tgaagHYmwJ/9cRH91hQkeJZaUGWbvn0K5HlSVEXkn5U/llWPpQ==", + "version": "10.17.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", + "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", "dev": true } } @@ -19176,9 +19402,9 @@ }, "dependencies": { "@types/node": { - "version": "12.12.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.38.tgz", - "integrity": "sha512-75eLjX0pFuTcUXnnWmALMzzkYorjND0ezNEycaKesbUBg9eGZp4GHPuDmkRc4mQQvIpe29zrzATNRA6hkYqwmA==", + "version": "12.12.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", + "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", "dev": true } } @@ -19290,15 +19516,15 @@ }, "dependencies": { "@types/node": { - "version": "10.17.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.21.tgz", - "integrity": "sha512-PQKsydPxYxF1DsAFWmunaxd3sOi3iMt6Zmx/tgaagHYmwJ/9cRH91hQkeJZaUGWbvn0K5HlSVEXkn5U/llWPpQ==", + "version": "10.17.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", + "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", "dev": true }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, "elliptic": { @@ -19376,9 +19602,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, "eth-lib": { @@ -19466,9 +19692,9 @@ }, "dependencies": { "@types/node": { - "version": "12.12.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.38.tgz", - "integrity": "sha512-75eLjX0pFuTcUXnnWmALMzzkYorjND0ezNEycaKesbUBg9eGZp4GHPuDmkRc4mQQvIpe29zrzATNRA6hkYqwmA==", + "version": "12.12.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", + "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", "dev": true } } @@ -19630,22 +19856,34 @@ "dev": true }, "winston": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz", - "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", + "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", "dev": true, "requires": { - "async": "^2.6.1", - "diagnostics": "^1.1.1", - "is-stream": "^1.1.0", - "logform": "^2.1.1", - "one-time": "0.0.4", - "readable-stream": "^3.1.1", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.1.0", + "is-stream": "^2.0.0", + "logform": "^2.2.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.3.0" + "winston-transport": "^4.4.0" }, "dependencies": { + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -19660,12 +19898,12 @@ } }, "winston-transport": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz", - "integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", + "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", "dev": true, "requires": { - "readable-stream": "^2.3.6", + "readable-stream": "^2.3.7", "triple-beam": "^1.2.0" } }, diff --git a/package.json b/package.json index f65512b676..b7b571c5cd 100644 --- a/package.json +++ b/package.json @@ -55,13 +55,13 @@ "npm-merge-driver": "^2.3.5", "npm-run-all": "^4.0.2", "onchange": "^3.2.1", - "remix-analyzer": "0.5.2", - "remix-debug": "0.4.4", - "remix-lib": "0.4.29", - "remix-simulator": "0.1.9-beta.5", - "remix-solidity": "0.3.30", + "remix-analyzer": "0.5.3", + "remix-debug": "0.4.5", + "remix-lib": "0.4.30", + "remix-simulator": "0.1.9-beta.6", + "remix-solidity": "0.3.31", "remix-tabs": "1.0.48", - "remix-tests": "0.1.33", + "remix-tests": "0.1.34", "remixd": "0.1.8-alpha.16", "request": "^2.83.0", "rimraf": "^2.6.1", From e146ddeb939d514d8e7e39018e7152573161f4da Mon Sep 17 00:00:00 2001 From: yann300 Date: Fri, 26 Jun 2020 12:51:43 +0200 Subject: [PATCH 069/184] fix e2e tests --- src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js | 2 +- src/app/tabs/debugger-tab.js | 2 +- test-browser/tests/debugger.test.js | 4 ++-- test-browser/tests/runAndDeploy.js | 2 +- test-browser/tests/staticAnalysis.test.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js b/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js index d608a8d061..566a5047ee 100644 --- a/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js +++ b/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js @@ -72,7 +72,7 @@ export default class FetchAndCompile extends Plugin { name === 'main' ? 'mainnet' : name // source-verifier api expect "mainnet" and not "main" let data try { - data = await this.call('source-verification', 'fetchByNetwork', contractAddress, name.toLowerCase()) + data = await this.call('sourcify', 'fetchByNetwork', contractAddress, name.toLowerCase()) } catch (e) { setTimeout(_ => this.emit('notFound', contractAddress), 0) // plugin framework returns a time out error although it actually didn't find the source... this.unresolvedAddresses.push(contractAddress) diff --git a/src/app/tabs/debugger-tab.js b/src/app/tabs/debugger-tab.js index 132cf7d1ae..3c15b4a5c9 100644 --- a/src/app/tabs/debugger-tab.js +++ b/src/app/tabs/debugger-tab.js @@ -64,7 +64,7 @@ class DebuggerTab extends ViewPlugin { } ) - this.call('manager', 'activatePlugin', 'source-verification') + this.call('manager', 'activatePlugin', 'sourcify') // this.call('manager', 'activatePlugin', 'udapp') return this.el diff --git a/test-browser/tests/debugger.test.js b/test-browser/tests/debugger.test.js index 65353b055f..4c15e943ac 100644 --- a/test-browser/tests/debugger.test.js +++ b/test-browser/tests/debugger.test.js @@ -70,8 +70,8 @@ module.exports = { .assert.containsText('*[data-id="stepdetail"]', 'execution step: 0') .click('*[data-id="buttonNavigatorJumpNextBreakpoint"]') .pause(2000) - .assert.containsText('*[data-id="stepdetail"]', 'vm trace step: 140') - .assert.containsText('*[data-id="stepdetail"]', 'execution step: 140') + .assert.containsText('*[data-id="stepdetail"]', 'vm trace step: 184') + .assert.containsText('*[data-id="stepdetail"]', 'execution step: 184') .end() }, diff --git a/test-browser/tests/runAndDeploy.js b/test-browser/tests/runAndDeploy.js index 1fddeedb54..93eeac4713 100644 --- a/test-browser/tests/runAndDeploy.js +++ b/test-browser/tests/runAndDeploy.js @@ -156,7 +156,7 @@ module.exports = { * - Source Verifier service for fetching the contract code * - Ropsten node for retrieving the trace and storage * - */ + */ 'Should debug Ropsten transaction with source highlighting using the source verifier service and MetaMask': function (browser) { browser.waitForElementPresent('*[data-id="remixIdeSidePanel"]') .waitForElementVisible('*[data-id="remixIdeIconPanel"]', 10000) diff --git a/test-browser/tests/staticAnalysis.test.js b/test-browser/tests/staticAnalysis.test.js index 4ee4183475..33ece096bb 100644 --- a/test-browser/tests/staticAnalysis.test.js +++ b/test-browser/tests/staticAnalysis.test.js @@ -41,7 +41,7 @@ function runTests (browser) { .waitForElementPresent('#staticanalysisresult .warning', 2000, true, function () { listSelectorContains(['Use of tx.origin', 'Fallback function of contract TooMuchGas requires too much gas', - 'TooMuchGas.() : Variables have very similar names test and test1.'], + 'TooMuchGas.() : Variables have very similar names "test" and "test1".'], '#staticanalysisresult .warning', browser, function () { browser.end() From c4420058649f8092924015528b8828999d08a3be Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 29 Jun 2020 10:55:48 +0200 Subject: [PATCH 070/184] update sourcify --- src/app/ui/landing-page/landing-page.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/ui/landing-page/landing-page.js b/src/app/ui/landing-page/landing-page.js index 1c0d3a756e..fe145f5ca4 100644 --- a/src/app/ui/landing-page/landing-page.js +++ b/src/app/ui/landing-page/landing-page.js @@ -163,8 +163,8 @@ export class LandingPage extends ViewPlugin { } const startSourceVerify = () => { this.appManager.ensureActivated('solidity') - this.appManager.ensureActivated('source-verification') - this.verticalIcons.select('source-verification') + this.appManager.ensureActivated('sourcify') + this.verticalIcons.select('sourcify') } const startPluginManager = () => { this.appManager.ensureActivated('pluginManager') @@ -208,7 +208,7 @@ export class LandingPage extends ViewPlugin { const pipelineEnv = createEnvButton('assets/img/pipelineLogo.webp', 'pipelineLogo', 'Pipeline', startPipeline) const debuggerEnv = createEnvButton('assets/img/debuggerLogo.webp', 'debuggerLogo', 'Debugger', startDebugger) const mythXEnv = createEnvButton('assets/img/mythxLogo.webp', 'mythxLogo', 'MythX', startMythX) - const sourceVerifyEnv = createEnvButton('assets/img/sourceVerifyLogo.webp', 'sourceVerifyLogo', 'Source Verify', startSourceVerify) + const sourceVerifyEnv = createEnvButton('assets/img/sourceVerifyLogo.webp', 'sourceVerifyLogo', 'Sourcify', startSourceVerify) const moreEnv = createEnvButton('assets/img/moreLogo.webp', 'moreLogo', 'More', startPluginManager) const invertNum = (globalRegistry.get('themeModule').api.currentTheme().quality === 'dark') ? 1 : 0 From 3c25b59ac7156edd3f030f5366689547cf80e9e1 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 29 Jun 2020 10:56:23 +0200 Subject: [PATCH 071/184] typo --- src/app/compiler/compiler-artefacts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/compiler/compiler-artefacts.js b/src/app/compiler/compiler-artefacts.js index 78a342391a..8895859c9b 100644 --- a/src/app/compiler/compiler-artefacts.js +++ b/src/app/compiler/compiler-artefacts.js @@ -54,7 +54,7 @@ module.exports = class CompilerArtefacts extends Plugin { const contracts = this.compilersArtefactsPerFile[targetFile].getContracts() Object.keys(contracts).map((file) => { contractsData[file] = contracts[file] }) }) - // making sure we shave last compilation result in there + // making sure we save last compilation result in there if (this.compilersArtefacts['__last']) { const contracts = this.compilersArtefacts['__last'].getContracts() Object.keys(contracts).map((file) => { contractsData[file] = contracts[file] }) From 591ae09e5f029854ff2f92cf97e88e7325c13274 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 29 Jun 2020 14:51:43 +0200 Subject: [PATCH 072/184] use 0.2.4 remix-plugin & set default timeout --- package-lock.json | 6 +++--- package.json | 2 +- src/app.js | 6 ++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index e253e2e84e..be4d18ddb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2106,9 +2106,9 @@ "dev": true }, "@remixproject/engine": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@remixproject/engine/-/engine-0.2.3.tgz", - "integrity": "sha512-3xFbAP83ljuLABx8nO1ywfviGvCOB1U3UvZCS3Ar+XlwzQvxJUvZNMA6vd/ofF81SM0wGcwrPrWBwYxlnuL9UQ==" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@remixproject/engine/-/engine-0.2.4.tgz", + "integrity": "sha512-rCekA2QZq5wbT7h9wqU+TDkRexUqhnMqcggmP+eG6ilowyZ4RhMsrrSl3fsZzd0rnp4w1LSmX0vCbuXfja3RqQ==" }, "@resolver-engine/core": { "version": "0.3.3", diff --git a/package.json b/package.json index b7b571c5cd..56d94c86a8 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "yo-yoify": "^3.7.3" }, "dependencies": { - "@remixproject/engine": "^0.2.3", + "@remixproject/engine": "^0.2.4", "http-server": "^0.11.1", "standard": "^8.5.0" }, diff --git a/src/app.js b/src/app.js index 7547ef8976..a4bafb55d9 100644 --- a/src/app.js +++ b/src/app.js @@ -239,6 +239,12 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const pluginLoader = appManager.pluginLoader const workspace = pluginLoader.get() const engine = new Engine(appManager) + engine.setPluginOption = ({ name, kind }) => { + if (kind === 'provider' || name === 'LearnEth') { + return {queueTimeout: 60000} + } + return {queueTimeout: 10000} + } await engine.onload() // SERVICES From 3f04945a1d8a391eb8f4433e994f734ac9e95727 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 29 Jun 2020 16:16:08 +0200 Subject: [PATCH 073/184] Increase timeout for provider --- src/app.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/app.js b/src/app.js index a4bafb55d9..3ea5a5ba5b 100644 --- a/src/app.js +++ b/src/app.js @@ -240,9 +240,8 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const workspace = pluginLoader.get() const engine = new Engine(appManager) engine.setPluginOption = ({ name, kind }) => { - if (kind === 'provider' || name === 'LearnEth') { - return {queueTimeout: 60000} - } + if (kind === 'provider') return {queueTimeout: 60000*4} + if (name === 'LearnEth') return {queueTimeout: 60000} return {queueTimeout: 10000} } await engine.onload() From a72bf672f2802cecbcb48fca772db3067f80e782 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 29 Jun 2020 16:22:19 +0200 Subject: [PATCH 074/184] Update app.js --- src/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app.js b/src/app.js index 3ea5a5ba5b..cff9ec03d5 100644 --- a/src/app.js +++ b/src/app.js @@ -240,7 +240,7 @@ Please make a backup of your contracts and start using http://remix.ethereum.org const workspace = pluginLoader.get() const engine = new Engine(appManager) engine.setPluginOption = ({ name, kind }) => { - if (kind === 'provider') return {queueTimeout: 60000*4} + if (kind === 'provider') return {queueTimeout: 60000 * 4} if (name === 'LearnEth') return {queueTimeout: 60000} return {queueTimeout: 10000} } From 049643a2894bced865834759c1f6031197c49e23 Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Mon, 22 Jun 2020 14:03:53 +0100 Subject: [PATCH 075/184] Filemanager external api e2e tests --- package.json | 1 + src/app/files/fileManager.js | 2 +- test-browser/tests/fileManager_api.test.js | 143 +++++++++++++++++++++ 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 test-browser/tests/fileManager_api.test.js diff --git a/package.json b/package.json index 56d94c86a8..d023f34f3e 100644 --- a/package.json +++ b/package.json @@ -187,6 +187,7 @@ "nightwatch_local_editor": "nightwatch ./test-browser/tests/editor.test.js --config nightwatch.js --env chrome ", "nightwatch_local_compiler": "nightwatch ./test-browser/tests/compiler_api.test.js --config nightwatch.js --env chrome ", "nightwatch_local_txListener": "nightwatch ./test-browser/tests/txListener.test.js --config nightwatch.js --env chrome ", + "nightwatch_local_fileManager": "nightwatch ./test-browser/tests/fileManager_api.test.js --config nightwatch.js --env chrome ", "nightwatch_local_runAndDeploy": "nightwatch ./test-browser/tests/runAndDeploy.js --config nightwatch.js --env chrome-runAndDeploy ", "onchange": "onchange build/app.js -- npm-run-all lint", "prepublish": "mkdirp build; npm-run-all -ls downloadsolc_root build", diff --git a/src/app/files/fileManager.js b/src/app/files/fileManager.js index fe74117a3a..12bd9f32da 100644 --- a/src/app/files/fileManager.js +++ b/src/app/files/fileManager.js @@ -23,7 +23,7 @@ const profile = { icon: 'assets/img/fileManager.webp', permission: true, version: packageJson.version, - methods: ['file', 'exists', 'open', 'writeFile', 'readFile', 'copyFile', 'rename', 'readdir', 'remove', 'getCurrentFile', 'getFile', 'getFolder', 'setFile', 'switchFile'], + methods: ['file', 'exists', 'open', 'writeFile', 'readFile', 'copyFile', 'rename', 'mkdir', 'readdir', 'remove', 'getCurrentFile', 'getFile', 'getFolder', 'setFile', 'switchFile'], kind: 'file-system' } const errorMsg = { diff --git a/test-browser/tests/fileManager_api.test.js b/test-browser/tests/fileManager_api.test.js new file mode 100644 index 0000000000..62b4340c6d --- /dev/null +++ b/test-browser/tests/fileManager_api.test.js @@ -0,0 +1,143 @@ +'use strict' +var init = require('../helpers/init') +var sauce = require('./sauce') + +module.exports = { + before: function (browser, done) { + init(browser, done) + }, + + 'Should execute `file` api from file manager external api': function (browser) { + browser + .addFile('file.js', { content: executeFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('browser/file.js') + }, + + 'Should execute `exists` api from file manager external api': function (browser) { + browser + .addFile('exists.js', { content: executeExists }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalChildIncludes('browser/exists.js true') + .journalChildIncludes('browser/non-exists.js false') + }, + + 'Should execute `open` api from file manager external api': function (browser) { + browser + .addFile('open.js', { content: executeOpen }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('browser/3_Ballot.sol') + }, + + 'Should execute `writeFile` api from file manager external api': function (browser) { + browser + .addFile('writeFile.js', { content: executeWriteFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .openFile('browser/new_contract.sol') + .assert.containsText('[data-id="editorInput"]', 'pragma solidity ^0.6.0') + }, + + 'Should execute `readFile` api from file manager external api': function (browser) { + browser + .addFile('readFile.js', { content: executeReadFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('pragma solidity ^0.6.0') + }, + + 'Should execute `copyFile` api from file manager external api': function (browser) { + browser + .addFile('copyFile.js', { content: executeCopyFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('pragma solidity >=0.2.0 <0.7.0;') + }, + + 'Should execute `rename` api from file manager external api': function (browser) { + browser + .addFile('renameFile.js', { content: executeRename }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .pause(100000) + // .journalLastChildIncludes('pragma solidity >=0.2.0 <0.7.0;') + // .end() + }, + + tearDown: sauce +} + +const executeFile = ` + const run = async () => { + const result = await remix.call('fileManager', 'file') + + console.log(result) + } + + run() +` + +const executeExists = ` + const run = async () => { + const result1 = await remix.call('fileManager', 'exists', 'browser/exists.js') + const result2 = await remix.call('fileManager', 'exists', 'browser/non-exists.js') + + console.log('browser/exists.js ' + result1) + console.log('browser/non-exists.js ' + result2) + } + + run() +` + +const executeOpen = ` + const run = async () => { + await remix.call('fileManager', 'open', 'browser/3_Ballot.sol') + const result = await remix.call('fileManager', 'file') + + console.log(result) + } + + run() +` + +const executeWriteFile = ` + const run = async () => { + await remix.call('fileManager', 'writeFile', 'browser/new_contract.sol', 'pragma solidity ^0.6.0') + } + + run() +` + +const executeReadFile = ` + const run = async () => { + const result = await remix.call('fileManager', 'readFile', 'browser/new_contract.sol') + + console.log(result) + } + + run() +` + +const executeCopyFile = ` + const run = async () => { + await remix.call('fileManager', 'copyFile', 'browser/basic.sol', 'browser/new_contract.sol') + const result = await remix.call('fileManager', 'readFile', 'browser/new_contract.sol') + + console.log(result) + } + + run() +` + +const executeRename = ` + const run = async () => { + const result = await remix.call('fileManager', 'rename', 'browser/new_contract.sol', 'browser/old_contract.sol') + + console.log(result) + } + + run() +` \ No newline at end of file From 76bd92c97ef5b937cf17a1914a8fe630acb2c04e Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Tue, 23 Jun 2020 16:41:28 +0100 Subject: [PATCH 076/184] Fixed rename api in file manager --- src/app/files/fileManager.js | 18 ++++++++++++++++-- test-browser/tests/fileManager_api.test.js | 16 ++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/app/files/fileManager.js b/src/app/files/fileManager.js index 12bd9f32da..6699179c06 100644 --- a/src/app/files/fileManager.js +++ b/src/app/files/fileManager.js @@ -194,10 +194,24 @@ class FileManager extends Plugin { * @returns {void} */ async rename (oldPath, newPath) { - await this.__handleExists(oldPath, `Cannot rename ${oldPath}`) + await this._handleExists(oldPath, `Cannot rename ${oldPath}`) const isFile = await this.isFile(oldPath) + const newPathExists = await this.exists(newPath) + const provider = this.fileProviderOf(oldPath) - this.fileRenamedEvent(oldPath, newPath, !isFile) + if (isFile) { + if (newPathExists) { + modalDialogCustom.alert('File already exists.') + return + } + return provider.rename(oldPath, newPath, false) + } else { + if (newPathExists) { + modalDialogCustom.alert('Folder already exists.') + return + } + return provider.rename(oldPath, newPath, true) + } } /** diff --git a/test-browser/tests/fileManager_api.test.js b/test-browser/tests/fileManager_api.test.js index 62b4340c6d..2dd0435a52 100644 --- a/test-browser/tests/fileManager_api.test.js +++ b/test-browser/tests/fileManager_api.test.js @@ -62,11 +62,19 @@ module.exports = { .addFile('renameFile.js', { content: executeRename }) .executeScript(`remix.exeCurrent()`) .pause(2000) - .pause(100000) - // .journalLastChildIncludes('pragma solidity >=0.2.0 <0.7.0;') - // .end() + .waitForElementPresent('[data-id="treeViewLibrowser/old_contract.sol"]') + .end() }, + // 'Should execute `rename` api from file manager external api': function (browser) { + // browser + // .addFile('renameFile.js', { content: executeRename }) + // .executeScript(`remix.exeCurrent()`) + // .pause(2000) + // .waitForElementPresent('[data-id="treeViewLibrowser/new_contract.sol"]') + // .end() + // }, + tearDown: sauce } @@ -136,7 +144,7 @@ const executeRename = ` const run = async () => { const result = await remix.call('fileManager', 'rename', 'browser/new_contract.sol', 'browser/old_contract.sol') - console.log(result) + console.log('result: ', result) } run() From 8e8c38a40e02b45658bf569e0ff2d0bfbc59b67e Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Wed, 24 Jun 2020 16:07:07 +0100 Subject: [PATCH 077/184] mkdir, readdir and remove filemanager api e2e --- test-browser/tests/fileManager_api.test.js | 61 ++++++++++++++++++---- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/test-browser/tests/fileManager_api.test.js b/test-browser/tests/fileManager_api.test.js index 2dd0435a52..7749d471a2 100644 --- a/test-browser/tests/fileManager_api.test.js +++ b/test-browser/tests/fileManager_api.test.js @@ -63,17 +63,32 @@ module.exports = { .executeScript(`remix.exeCurrent()`) .pause(2000) .waitForElementPresent('[data-id="treeViewLibrowser/old_contract.sol"]') - .end() }, - // 'Should execute `rename` api from file manager external api': function (browser) { - // browser - // .addFile('renameFile.js', { content: executeRename }) - // .executeScript(`remix.exeCurrent()`) - // .pause(2000) - // .waitForElementPresent('[data-id="treeViewLibrowser/new_contract.sol"]') - // .end() - // }, + 'Should execute `mkdir` api from file manager external api': function (browser) { + browser + .addFile('mkdirFile.js', { content: executeMkdir }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .waitForElementPresent('[data-id="treeViewLibrowser/Test_Folder"]') + }, + + 'Should execute `readdir` api from file manager external api': function (browser) { + browser + .addFile('readdirFile.js', { content: executeReaddir }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('Test_Folder isDirectory true') + }, + + 'Should execute `remove` api from file manager external api': function (browser) { + browser + .addFile('removeFile.js', { content: executeRemove }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .waitForElementNotVisible('[data-id="treeViewLibrowser/old_contract.sol"]') + .end() + }, tearDown: sauce } @@ -142,9 +157,33 @@ const executeCopyFile = ` const executeRename = ` const run = async () => { - const result = await remix.call('fileManager', 'rename', 'browser/new_contract.sol', 'browser/old_contract.sol') + await remix.call('fileManager', 'rename', 'browser/new_contract.sol', 'browser/old_contract.sol') + } + + run() +` + +const executeMkdir = ` + const run = async () => { + await remix.call('fileManager', 'mkdir', 'browser/Test_Folder/') + } + + run() +` - console.log('result: ', result) +const executeReaddir = ` + const run = async () => { + const result = await remix.call('fileManager', 'readdir', 'browser/') + + console.log('Test_Folder isDirectory ', result["Test_Folder"].isDirectory) + } + + run() +` + +const executeRemove = ` + const run = async () => { + await remix.call('fileManager', 'remove', 'browser/old_contract.sol') } run() From 0d3a63c48c676b80491983c9b47dbeab0add3e56 Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Wed, 24 Jun 2020 16:08:49 +0100 Subject: [PATCH 078/184] Fixed linting error --- test-browser/tests/fileManager_api.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-browser/tests/fileManager_api.test.js b/test-browser/tests/fileManager_api.test.js index 7749d471a2..681d354d2b 100644 --- a/test-browser/tests/fileManager_api.test.js +++ b/test-browser/tests/fileManager_api.test.js @@ -187,4 +187,4 @@ const executeRemove = ` } run() -` \ No newline at end of file +` From d2e849fea27a4cf3966797ad70b58fd0849602af Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Mon, 29 Jun 2020 16:14:43 -0400 Subject: [PATCH 079/184] add panel to show function calls --- src/app/tabs/debugger/debuggerUI/VmDebugger.js | 13 +++++++++++++ .../debuggerUI/vmDebugger/FunctionPanel.js | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js diff --git a/src/app/tabs/debugger/debuggerUI/VmDebugger.js b/src/app/tabs/debugger/debuggerUI/VmDebugger.js index f65dab1daa..3206e7f0f5 100644 --- a/src/app/tabs/debugger/debuggerUI/VmDebugger.js +++ b/src/app/tabs/debugger/debuggerUI/VmDebugger.js @@ -6,6 +6,7 @@ var CodeListView = require('./vmDebugger/CodeListView') var CalldataPanel = require('./vmDebugger/CalldataPanel') var MemoryPanel = require('./vmDebugger/MemoryPanel') var CallstackPanel = require('./vmDebugger/CallstackPanel') +var FunctionPanel = require('./vmDebugger/FunctionPanel') var StackPanel = require('./vmDebugger/StackPanel') var StoragePanel = require('./vmDebugger/StoragePanel') var StepDetail = require('./vmDebugger/StepDetail') @@ -48,6 +49,16 @@ function VmDebugger (vmDebuggerLogic) { this.stackPanel = new StackPanel() this.vmDebuggerLogic.event.register('traceManagerStackUpdate', this.stackPanel.update.bind(this.stackPanel)) + this.functionPanel = new FunctionPanel() + this.vmDebuggerLogic.event.register('functionsStackUpdate', (stack) => { + if (stack === null) return + let functions = [] + for (let func of stack) { + functions.push(func.functionDefinition.attributes.name + '(' + func.inputs.join(', ') + ')') + } + this.functionPanel.update(functions) + }) + this.storagePanel = new StoragePanel() this.vmDebuggerLogic.event.register('traceManagerStorageUpdate', this.storagePanel.update.bind(this.storagePanel)) @@ -107,6 +118,7 @@ function VmDebugger (vmDebuggerLogic) { self.asmCode.basicPanel.show() self.stackPanel.basicPanel.show() + self.functionPanel.basicPanel.show() self.storagePanel.basicPanel.show() self.memoryPanel.basicPanel.show() self.calldataPanel.basicPanel.show() @@ -149,6 +161,7 @@ VmDebugger.prototype.render = function () { ${this.solidityLocals.render()} ${this.solidityState.render()} ${this.stackPanel.render()} + ${this.functionPanel.render()} ${this.memoryPanel.render()} ${this.storagePanel.render()} ${this.callstackPanel.render()} diff --git a/src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js b/src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js new file mode 100644 index 0000000000..16fc59db75 --- /dev/null +++ b/src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js @@ -0,0 +1,17 @@ +'use strict' +var DropdownPanel = require('./DropdownPanel') +var yo = require('yo-yo') + +function FunctionPanel () { + this.basicPanel = new DropdownPanel('Function', {json: true, displayContentOnly: false}) +} + +FunctionPanel.prototype.update = function (calldata) { + this.basicPanel.update(calldata) +} + +FunctionPanel.prototype.render = function () { + return yo`
${this.basicPanel.render()}
` +} + +module.exports = FunctionPanel From b010e6cbc77fda7ac35bfac27781ac89153ea0af Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 29 Jun 2020 23:45:16 +0200 Subject: [PATCH 080/184] layout update --- src/app/tabs/debugger/debuggerUI/VmDebugger.js | 17 ++++++++++++++--- .../debuggerUI/vmDebugger/CodeListView.js | 2 +- .../debuggerUI/vmDebugger/FunctionPanel.js | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/app/tabs/debugger/debuggerUI/VmDebugger.js b/src/app/tabs/debugger/debuggerUI/VmDebugger.js index 3206e7f0f5..bdb5870ad1 100644 --- a/src/app/tabs/debugger/debuggerUI/VmDebugger.js +++ b/src/app/tabs/debugger/debuggerUI/VmDebugger.js @@ -16,11 +16,15 @@ var FullStoragesChangesPanel = require('./vmDebugger/FullStoragesChanges') var DropdownPanel = require('./vmDebugger/DropdownPanel') var css = csjs` + .solidityPanel { + width: 100%; + } .asmCode { width: 100%; } .stepDetail { width: 100%; + line-height: 2O%; } .vmheadView { margin-top:10px; @@ -127,17 +131,27 @@ function VmDebugger (vmDebuggerLogic) { this.vmDebuggerLogic.event.register('newCallTree', () => { if (!self.view) return + self.functionPanel.basicPanel.show() self.solidityLocals.basicPanel.show() self.solidityState.basicPanel.show() + self.solidityPanel.hidden = false }) this.vmDebuggerLogic.start() } VmDebugger.prototype.renderHead = function () { + this.solidityPanel = yo` + + ` const headView = yo`
+ ${this.solidityPanel}
${this.asmCode.render()}
${this.stepDetail.render()}
@@ -158,10 +172,7 @@ VmDebugger.prototype.render = function () { const view = yo`
- ${this.solidityLocals.render()} - ${this.solidityState.render()} ${this.stackPanel.render()} - ${this.functionPanel.render()} ${this.memoryPanel.render()} ${this.storagePanel.render()} ${this.callstackPanel.render()} diff --git a/src/app/tabs/debugger/debuggerUI/vmDebugger/CodeListView.js b/src/app/tabs/debugger/debuggerUI/vmDebugger/CodeListView.js index 26ccbc3871..8723d71560 100644 --- a/src/app/tabs/debugger/debuggerUI/vmDebugger/CodeListView.js +++ b/src/app/tabs/debugger/debuggerUI/vmDebugger/CodeListView.js @@ -8,7 +8,7 @@ var csjs = require('csjs-inject') var css = csjs` .instructions { overflow-y: scroll; - max-height: 150px; + max-height: 100px; } ` function CodeListView () { diff --git a/src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js b/src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js index 16fc59db75..6c9a94118d 100644 --- a/src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js +++ b/src/app/tabs/debugger/debuggerUI/vmDebugger/FunctionPanel.js @@ -3,7 +3,7 @@ var DropdownPanel = require('./DropdownPanel') var yo = require('yo-yo') function FunctionPanel () { - this.basicPanel = new DropdownPanel('Function', {json: true, displayContentOnly: false}) + this.basicPanel = new DropdownPanel('Function Stack', {json: true, displayContentOnly: false}) } FunctionPanel.prototype.update = function (calldata) { From 423d27141cd667b3d6675fcd4bae62f2f548cdde Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 29 Jun 2020 23:48:52 +0200 Subject: [PATCH 081/184] revert sourcify name --- src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js | 2 +- src/app/tabs/debugger-tab.js | 2 +- src/app/ui/landing-page/landing-page.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js b/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js index 566a5047ee..d608a8d061 100644 --- a/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js +++ b/src/app/compiler/compiler-sourceVerifier-fetchAndCompile.js @@ -72,7 +72,7 @@ export default class FetchAndCompile extends Plugin { name === 'main' ? 'mainnet' : name // source-verifier api expect "mainnet" and not "main" let data try { - data = await this.call('sourcify', 'fetchByNetwork', contractAddress, name.toLowerCase()) + data = await this.call('source-verification', 'fetchByNetwork', contractAddress, name.toLowerCase()) } catch (e) { setTimeout(_ => this.emit('notFound', contractAddress), 0) // plugin framework returns a time out error although it actually didn't find the source... this.unresolvedAddresses.push(contractAddress) diff --git a/src/app/tabs/debugger-tab.js b/src/app/tabs/debugger-tab.js index 3c15b4a5c9..132cf7d1ae 100644 --- a/src/app/tabs/debugger-tab.js +++ b/src/app/tabs/debugger-tab.js @@ -64,7 +64,7 @@ class DebuggerTab extends ViewPlugin { } ) - this.call('manager', 'activatePlugin', 'sourcify') + this.call('manager', 'activatePlugin', 'source-verification') // this.call('manager', 'activatePlugin', 'udapp') return this.el diff --git a/src/app/ui/landing-page/landing-page.js b/src/app/ui/landing-page/landing-page.js index fe145f5ca4..5af1a30104 100644 --- a/src/app/ui/landing-page/landing-page.js +++ b/src/app/ui/landing-page/landing-page.js @@ -163,8 +163,8 @@ export class LandingPage extends ViewPlugin { } const startSourceVerify = () => { this.appManager.ensureActivated('solidity') - this.appManager.ensureActivated('sourcify') - this.verticalIcons.select('sourcify') + this.appManager.ensureActivated('source-verification') + this.verticalIcons.select('source-verification') } const startPluginManager = () => { this.appManager.ensureActivated('pluginManager') From 81e4c170d3fbfc70172a307fdaefd3d0890eca44 Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 30 Jun 2020 11:35:50 +0200 Subject: [PATCH 082/184] use bootstrap + indent --- .../tabs/debugger/debuggerUI/VmDebugger.js | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/app/tabs/debugger/debuggerUI/VmDebugger.js b/src/app/tabs/debugger/debuggerUI/VmDebugger.js index bdb5870ad1..75706255fa 100644 --- a/src/app/tabs/debugger/debuggerUI/VmDebugger.js +++ b/src/app/tabs/debugger/debuggerUI/VmDebugger.js @@ -16,15 +16,8 @@ var FullStoragesChangesPanel = require('./vmDebugger/FullStoragesChanges') var DropdownPanel = require('./vmDebugger/DropdownPanel') var css = csjs` - .solidityPanel { - width: 100%; - } - .asmCode { - width: 100%; - } .stepDetail { - width: 100%; - line-height: 2O%; + line-height: 20%; } .vmheadView { margin-top:10px; @@ -142,18 +135,18 @@ function VmDebugger (vmDebuggerLogic) { VmDebugger.prototype.renderHead = function () { this.solidityPanel = yo` -