From 00dce2d6b47d6626bf888a53ab8568f673cb1c0c Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Wed, 22 Dec 2021 20:04:56 +0530 Subject: [PATCH 01/16] app as a plugin --- apps/remix-ide/src/app.js | 11 ++++++++++- apps/remix-ide/src/remixAppManager.js | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index d2b8a690ae..e316ba9804 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -18,6 +18,7 @@ import { WalkthroughService } from './walkthroughService' import { OffsetToLineColumnConverter, CompilerMetadata, CompilerArtefacts, FetchAndCompile, CompilerImports, EditorContextListener } from '@remix-project/core-plugin' import migrateFileSystem from './migrateFileSystem' +import { Plugin } from '@remixproject/engine' const isElectron = require('is-electron') @@ -49,8 +50,16 @@ const FilePanel = require('./app/panels/file-panel') const Editor = require('./app/editor/editor') const Terminal = require('./app/panels/terminal') -class AppComponent { +const profile = { + name: 'app', + displayName: 'App', + description: 'Application', + methods: [] +} + +class AppComponent extends Plugin { constructor (api = {}, events = {}, opts = {}) { + super(profile) const self = this self.appManager = new RemixAppManager({}) self._components = {} diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index e1b18a91ba..441337955a 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -7,7 +7,7 @@ import { PermissionHandler } from './app/ui/persmission-handler' const _paq = window._paq = window._paq || [] const requiredModules = [ // services + layout views + system views - 'manager', 'compilerArtefacts', 'compilerMetadata', 'contextualListener', 'editor', 'offsetToLineColumnConverter', 'network', 'theme', + 'manager', 'app', 'compilerArtefacts', 'compilerMetadata', 'contextualListener', 'editor', 'offsetToLineColumnConverter', 'network', 'theme', 'fileManager', 'contentImport', 'blockchain', 'web3Provider', 'scriptRunner', 'fetchAndCompile', 'mainPanel', 'hiddenPanel', 'sidePanel', 'menuicons', 'filePanel', 'terminal', 'settings', 'pluginManager', 'tabs', 'udapp', 'dGitProvider', 'solidity-logic'] From 90636253beee4b44cecff326db87332e6369aebb Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Wed, 22 Dec 2021 20:46:53 +0530 Subject: [PATCH 02/16] plugin calls for methods --- apps/remix-ide/src/app.js | 20 +++++++++++++++++++- apps/remix-ide/src/app/tabs/compile-tab.js | 9 ++------- libs/remix-ui/renderer/src/lib/renderer.tsx | 8 ++++---- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index e316ba9804..254affe20a 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -54,7 +54,7 @@ const profile = { name: 'app', displayName: 'App', description: 'Application', - methods: [] + methods: ['getAppParameter', 'setAppParameter'] } class AppComponent extends Plugin { @@ -62,6 +62,7 @@ class AppComponent extends Plugin { super(profile) const self = this self.appManager = new RemixAppManager({}) + self.queryParams = new QueryParams() self._components = {} self.registry = registry // setup storage @@ -85,6 +86,22 @@ class AppComponent extends Plugin { migrateFileSystem(self._components.filesProviders.browser) } + getAppParameter (name) { + // first look in the URL params then in the local storage + const self = this + const params = self.queryParams.get() + const config = registry.get('config').api + const param = params[name] ? params[name] : config.get(name) + if (param === 'true') return true + if (param === 'false') return false + return param + } + + setAppParameter (name, value) { + const config = registry.get('config').api + config.set(name, value) + } + async run () { const self = this // APP_MANAGER @@ -167,6 +184,7 @@ class AppComponent extends Plugin { const contextualListener = new EditorContextListener() self.engine.register([ + this, blockchain, contentImport, self.themeModule, diff --git a/apps/remix-ide/src/app/tabs/compile-tab.js b/apps/remix-ide/src/app/tabs/compile-tab.js index a640285566..bd2a9ca0cd 100644 --- a/apps/remix-ide/src/app/tabs/compile-tab.js +++ b/apps/remix-ide/src/app/tabs/compile-tab.js @@ -145,16 +145,11 @@ class CompileTab extends CompilerApiMixin(ViewPlugin) { // implements ICompilerA } getAppParameter (name) { - // first look in the URL params then in the local storage - const params = this.queryParams.get() - const param = params[name] ? params[name] : this.config.get(name) - if (param === 'true') return true - if (param === 'false') return false - return param + this.call('app', 'getAppParameter', name) } setAppParameter (name, value) { - this.config.set(name, value) + this.call('app', 'setAppParameter', name, value) } } diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index 41f345cf3d..273be5e0b0 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -69,7 +69,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { } const addAnnotation = (file, error) => { - if (file === plugin.getAppParameter('currentFile')) { + if (file === plugin.call('app', 'getAppParameter', 'currentFile')) { plugin.call('editor', 'addAnnotation', error, file) } } @@ -87,10 +87,10 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { } const _errorClick = async (errFile, errLine, errCol) => { - if (errFile !== plugin.getAppParameter('currentFile')) { + if (errFile !== plugin.call('app', 'getAppParameter', 'currentFile')) { // TODO: refactor with this._components.contextView.jumpTo - if (await plugin.fileExists(errFile)) { - plugin.open(errFile) + if (await plugin.call('fileManager', 'exists', errFile)) { + plugin.call('fileManager', 'open', errFile) plugin.call('editor', 'gotoLine', errLine, errCol) } } else { From 232f2965896621db4637bac5dffe82dd23f9fa2c Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Thu, 23 Dec 2021 11:17:10 +0530 Subject: [PATCH 03/16] return --- apps/remix-ide/src/app/tabs/compile-tab.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/app/tabs/compile-tab.js b/apps/remix-ide/src/app/tabs/compile-tab.js index bd2a9ca0cd..6fe03a98ff 100644 --- a/apps/remix-ide/src/app/tabs/compile-tab.js +++ b/apps/remix-ide/src/app/tabs/compile-tab.js @@ -145,11 +145,11 @@ class CompileTab extends CompilerApiMixin(ViewPlugin) { // implements ICompilerA } getAppParameter (name) { - this.call('app', 'getAppParameter', name) + return this.call('app', 'getAppParameter', name) } setAppParameter (name, value) { - this.call('app', 'setAppParameter', name, value) + return this.call('app', 'setAppParameter', name, value) } } From 395845fef9fe91c2d3da67736a9d8c0459aae1d1 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Thu, 23 Dec 2021 11:59:27 +0530 Subject: [PATCH 04/16] one return removed --- apps/remix-ide/src/app/tabs/compile-tab.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/remix-ide/src/app/tabs/compile-tab.js b/apps/remix-ide/src/app/tabs/compile-tab.js index 6fe03a98ff..f65c3c3c37 100644 --- a/apps/remix-ide/src/app/tabs/compile-tab.js +++ b/apps/remix-ide/src/app/tabs/compile-tab.js @@ -149,7 +149,7 @@ class CompileTab extends CompilerApiMixin(ViewPlugin) { // implements ICompilerA } setAppParameter (name, value) { - return this.call('app', 'setAppParameter', name, value) + this.call('app', 'setAppParameter', name, value) } } From 479a175e43242cc3e8f0dd91270ad87a2a256e49 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 10:31:10 +0100 Subject: [PATCH 05/16] config plugin --- apps/remix-ide/src/app.js | 87 ++-- .../src/app/components/vertical-icons.js | 4 +- apps/remix-ide/src/app/editor/contextView.js | 194 ++++++++ apps/remix-ide/src/app/files/fileManager.js | 4 +- apps/remix-ide/src/app/panels/file-panel.js | 5 +- apps/remix-ide/src/app/panels/main-view.js | 7 +- apps/remix-ide/src/app/panels/terminal.js | 5 +- apps/remix-ide/src/app/plugins/config.ts | 31 ++ apps/remix-ide/src/app/state/registry.ts | 38 ++ apps/remix-ide/src/app/tabs/analysis-tab.js | 5 +- apps/remix-ide/src/app/tabs/compile-tab.js | 4 +- .../remix-ide/src/app/tabs/runTab/settings.js | 6 +- apps/remix-ide/src/app/tabs/settings-tab.js | 4 +- apps/remix-ide/src/app/tabs/theme-module.js | 5 +- apps/remix-ide/src/app/udapp/make-udapp.js | 7 +- .../src/app/ui/persmission-handler.js | 7 +- apps/remix-ide/src/app/ui/renderer.js | 5 +- apps/remix-ide/src/app/ui/txLogger.js | 8 +- apps/remix-ide/src/lib/cmdInterpreterAPI.js | 4 +- apps/remix-ide/src/remixAppManager.js | 2 +- libs/remix-ui/renderer/src/lib/renderer.tsx | 10 +- .../types/vertical-icons-panel.d.ts | 6 +- package-lock.json | 438 +++++++++--------- 23 files changed, 568 insertions(+), 318 deletions(-) create mode 100644 apps/remix-ide/src/app/editor/contextView.js create mode 100644 apps/remix-ide/src/app/plugins/config.ts create mode 100644 apps/remix-ide/src/app/state/registry.ts diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 254affe20a..282f511464 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -18,12 +18,12 @@ import { WalkthroughService } from './walkthroughService' import { OffsetToLineColumnConverter, CompilerMetadata, CompilerArtefacts, FetchAndCompile, CompilerImports, EditorContextListener } from '@remix-project/core-plugin' import migrateFileSystem from './migrateFileSystem' -import { Plugin } from '@remixproject/engine' +import { Registry } from './app/state/registry' +import { ConfigPlugin } from './app/plugins/config' const isElectron = require('is-electron') const remixLib = require('@remix-project/remix-lib') -const registry = require('./global/registry') const QueryParams = require('./lib/query-params') const Storage = remixLib.Storage @@ -50,58 +50,33 @@ const FilePanel = require('./app/panels/file-panel') const Editor = require('./app/editor/editor') const Terminal = require('./app/panels/terminal') -const profile = { - name: 'app', - displayName: 'App', - description: 'Application', - methods: ['getAppParameter', 'setAppParameter'] -} - -class AppComponent extends Plugin { - constructor (api = {}, events = {}, opts = {}) { - super(profile) +class AppComponent { + constructor () { const self = this self.appManager = new RemixAppManager({}) self.queryParams = new QueryParams() self._components = {} - self.registry = registry // setup storage const configStorage = new Storage('config-v0.8:') // load app config const config = new Config(configStorage) - registry.put({ api: config, name: 'config' }) + Registry.getInstance().put({ api: config, name: 'config' }) // load file system self._components.filesProviders = {} self._components.filesProviders.browser = new FileProvider('browser') - registry.put({ api: self._components.filesProviders.browser, name: 'fileproviders/browser' }) + Registry.getInstance().put({ api: self._components.filesProviders.browser, name: 'fileproviders/browser' }) self._components.filesProviders.localhost = new RemixDProvider(self.appManager) - registry.put({ api: self._components.filesProviders.localhost, name: 'fileproviders/localhost' }) + Registry.getInstance().put({ api: self._components.filesProviders.localhost, name: 'fileproviders/localhost' }) self._components.filesProviders.workspace = new WorkspaceFileProvider() - registry.put({ api: self._components.filesProviders.workspace, name: 'fileproviders/workspace' }) + Registry.getInstance().put({ api: self._components.filesProviders.workspace, name: 'fileproviders/workspace' }) - registry.put({ api: self._components.filesProviders, name: 'fileproviders' }) + Registry.getInstance().put({ api: self._components.filesProviders, name: 'fileproviders' }) migrateFileSystem(self._components.filesProviders.browser) } - getAppParameter (name) { - // first look in the URL params then in the local storage - const self = this - const params = self.queryParams.get() - const config = registry.get('config').api - const param = params[name] ? params[name] : config.get(name) - if (param === 'true') return true - if (param === 'false') return false - return param - } - - setAppParameter (name, value) { - const config = registry.get('config').api - config.set(name, value) - } - async run () { const self = this // APP_MANAGER @@ -116,7 +91,7 @@ class AppComponent extends Plugin { 'remix-beta.ethereum.org': 25, 'remix.ethereum.org': 23 } - self.showMatamo = (matomoDomains[window.location.hostname] && !registry.get('config').api.exists('settings/matomo-analytics')) + self.showMatamo = (matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics')) self.walkthroughService = new WalkthroughService(appManager, self.showMatamo) const hosts = ['127.0.0.1:8080', '192.168.0.101:8080', 'localhost:8080'] @@ -130,30 +105,30 @@ class AppComponent extends Plugin { // SERVICES // ----------------- theme service --------------------------------- - self.themeModule = new ThemeModule(registry) - registry.put({ api: self.themeModule, name: 'themeModule' }) + self.themeModule = new ThemeModule() + Registry.getInstance().put({ api: self.themeModule, name: 'themeModule' }) // ----------------- editor service ---------------------------- const editor = new Editor() // wrapper around ace editor - registry.put({ api: editor, name: 'editor' }) + Registry.getInstance().put({ api: editor, name: 'editor' }) editor.event.register('requiringToSaveCurrentfile', () => fileManager.saveCurrentFile()) // ----------------- fileManager service ---------------------------- const fileManager = new FileManager(editor, appManager) - registry.put({ api: fileManager, name: 'filemanager' }) + Registry.getInstance().put({ api: fileManager, name: 'filemanager' }) // ----------------- dGit provider --------------------------------- const dGitProvider = new DGitProvider() // ----------------- import content service ------------------------ const contentImport = new CompilerImports() - const blockchain = new Blockchain(registry.get('config').api) + const blockchain = new Blockchain(Registry.getInstance().get('config').api) // ----------------- compilation metadata generation service --------- const compilerMetadataGenerator = new CompilerMetadata() // ----------------- compilation result service (can keep track of compilation results) ---------------------------- const compilersArtefacts = new CompilerArtefacts() // store all the compilation results (key represent a compiler name) - registry.put({ api: compilersArtefacts, name: 'compilersartefacts' }) + Registry.getInstance().put({ api: compilersArtefacts, name: 'compilersartefacts' }) // service which fetch contract artifacts from sourve-verify, put artifacts in remix and compile it const fetchAndCompile = new FetchAndCompile() @@ -164,7 +139,7 @@ class AppComponent extends Plugin { const hardhatProvider = new HardhatProvider(blockchain) // ----------------- convert offset to line/column service ----------- const offsetToLineColumnConverter = new OffsetToLineColumnConverter() - registry.put({ api: offsetToLineColumnConverter, name: 'offsettolinecolumnconverter' }) + Registry.getInstance().put({ api: offsetToLineColumnConverter, name: 'offsettolinecolumnconverter' }) // -------------------Terminal---------------------------------------- makeUdapp(blockchain, compilersArtefacts, (domEl) => terminal.logHtml(domEl)) @@ -183,8 +158,10 @@ class AppComponent extends Plugin { ) const contextualListener = new EditorContextListener() + const configPlugin = new ConfigPlugin() + self.engine.register([ - this, + configPlugin, blockchain, contentImport, self.themeModule, @@ -206,7 +183,7 @@ class AppComponent extends Plugin { // LAYOUT & SYSTEM VIEWS const appPanel = new MainPanel() self.mainview = new MainView(contextualListener, editor, appPanel, fileManager, appManager, terminal) - registry.put({ api: self.mainview, name: 'mainview' }) + Registry.getInstance().put({ api: self.mainview, name: 'mainview' }) self.engine.register([ appPanel, @@ -222,7 +199,7 @@ class AppComponent extends Plugin { const filePanel = new FilePanel(appManager) const landingPage = new LandingPage(appManager, self.menuicons, fileManager, filePanel, contentImport) self.settings = new SettingsTab( - registry.get('config').api, + Registry.getInstance().get('config').api, editor, appManager ) @@ -238,23 +215,23 @@ class AppComponent extends Plugin { ]) // CONTENT VIEWS & DEFAULT PLUGINS - const compileTab = new CompileTab(registry.get('config').api, registry.get('filemanager').api) + const compileTab = new CompileTab(Registry.getInstance().get('config').api, Registry.getInstance().get('filemanager').api) const run = new RunTab( blockchain, - registry.get('config').api, - registry.get('filemanager').api, - registry.get('editor').api, + Registry.getInstance().get('config').api, + Registry.getInstance().get('filemanager').api, + Registry.getInstance().get('editor').api, filePanel, - registry.get('compilersartefacts').api, + Registry.getInstance().get('compilersartefacts').api, networkModule, self.mainview, - registry.get('fileproviders/browser').api + Registry.getInstance().get('fileproviders/browser').api ) - const analysis = new AnalysisTab(registry) + const analysis = new AnalysisTab() const debug = new DebuggerTab() const test = new TestTab( - registry.get('filemanager').api, - registry.get('offsettolinecolumnconverter').api, + Registry.getInstance().get('filemanager').api, + Registry.getInstance().get('offsettolinecolumnconverter').api, filePanel, compileTab, appManager, @@ -294,7 +271,7 @@ class AppComponent extends Plugin { await self.appManager.activatePlugin(['mainPanel', 'menuicons', 'tabs']) await self.appManager.activatePlugin(['sidePanel']) // activating host plugin separately await self.appManager.activatePlugin(['home']) - await self.appManager.activatePlugin(['settings']) + await self.appManager.activatePlugin(['settings', 'config']) await self.appManager.activatePlugin(['hiddenPanel', 'pluginManager', 'contextualListener', 'terminal', 'blockchain', 'fetchAndCompile', 'contentImport']) await self.appManager.activatePlugin(['settings']) await self.appManager.activatePlugin(['walkthrough']) diff --git a/apps/remix-ide/src/app/components/vertical-icons.js b/apps/remix-ide/src/app/components/vertical-icons.js index 9cdf0aae50..4ffa445719 100644 --- a/apps/remix-ide/src/app/components/vertical-icons.js +++ b/apps/remix-ide/src/app/components/vertical-icons.js @@ -5,8 +5,8 @@ import ReactDOM from 'react-dom' import React from 'react' // eslint-disable-line // eslint-disable-next-line no-unused-vars import { RemixUiVerticalIconsPanel } from '@remix-ui/vertical-icons-panel' +import { Registry } from '../state/registry' // var helper = require('../../lib/helper') -const globalRegistry = require('../../global/registry') const { Plugin } = require('@remixproject/engine') const EventEmitter = require('events') @@ -32,7 +32,7 @@ export class VerticalIcons extends Plugin { this.defaultProfile = profile this.targetProfileForChange = {} this.targetProfileForRemoval = {} - this.registry = globalRegistry + this.registry = Registry.getInstance() this.keys = ['succeed', 'edited', 'none', 'loading', 'failed'] this.types = ['error', 'warning', 'success', 'info', ''] } diff --git a/apps/remix-ide/src/app/editor/contextView.js b/apps/remix-ide/src/app/editor/contextView.js new file mode 100644 index 0000000000..60f30cbe97 --- /dev/null +++ b/apps/remix-ide/src/app/editor/contextView.js @@ -0,0 +1,194 @@ +'use strict' +import { sourceMappingDecoder } from '@remix-project/remix-debug' +import { Registry } from '../state/registry' +const yo = require('yo-yo') + +const css = require('./styles/contextView-styles') + +/* + Display information about the current focused code: + - if it's a reference, display information about the declaration + - jump to the declaration + - number of references + - rename declaration/references +*/ +class ContextView { + constructor (opts, localRegistry) { + this._components = {} + this._components.registry = localRegistry || Registry.getInstance() + this.contextualListener = opts.contextualListener + this.editor = opts.editor + this._deps = { + compilersArtefacts: this._components.registry.get('compilersartefacts').api, + offsetToLineColumnConverter: this._components.registry.get('offsettolinecolumnconverter').api, + config: this._components.registry.get('config').api, + fileManager: this._components.registry.get('filemanager').api + } + this._view = null + this._nodes = null + this._current = null + this.sourceMappingDecoder = sourceMappingDecoder + this.previousElement = null + this.contextualListener.event.register('contextChanged', nodes => { + this.show() + this._nodes = nodes + this.update() + }) + this.contextualListener.event.register('stopHighlighting', () => { + }) + } + + render () { + const view = yo` +
+
+ ${this._renderTarget()} +
+
` + if (!this._view) { + this._view = view + } + return view + } + + hide () { + if (this._view) { + this._view.style.display = 'none' + } + } + + show () { + if (this._view) { + this._view.style.display = 'block' + } + } + + update () { + if (this._view) { + yo.update(this._view, this.render()) + } + } + + _renderTarget () { + let last + const previous = this._current + if (this._nodes && this._nodes.length) { + last = this._nodes[this._nodes.length - 1] + if (isDefinition(last)) { + this._current = last + } else { + const target = this.contextualListener.declarationOf(last) + if (target) { + this._current = target + } else { + this._current = null + } + } + } + if (!this._current || !previous || previous.id !== this._current.id || (this.previousElement && !this.previousElement.children.length)) { + this.previousElement = this._render(this._current, last) + } + return this.previousElement + } + + _jumpToInternal (position) { + const jumpToLine = (lineColumn) => { + if (lineColumn.start && lineColumn.start.line && lineColumn.start.column) { + this.editor.gotoLine(lineColumn.start.line, lineColumn.end.column + 1) + } + } + const lastCompilationResult = this._deps.compilersArtefacts.__last + if (lastCompilationResult && lastCompilationResult.languageversion.indexOf('soljson') === 0 && lastCompilationResult.data) { + const lineColumn = this._deps.offsetToLineColumnConverter.offsetToLineColumn( + position, + position.file, + lastCompilationResult.getSourceCode().sources, + lastCompilationResult.getAsts()) + const filename = lastCompilationResult.getSourceName(position.file) + // TODO: refactor with rendererAPI.errorClick + if (filename !== this._deps.config.get('currentFile')) { + const provider = this._deps.fileManager.fileProviderOf(filename) + if (provider) { + provider.exists(filename).then(exist => { + this._deps.fileManager.open(filename) + jumpToLine(lineColumn) + }).catch(error => { + if (error) return console.log(error) + }) + } + } else { + jumpToLine(lineColumn) + } + } + } + + _render (node, nodeAtCursorPosition) { + if (!node) return yo`
` + let references = this.contextualListener.referencesOf(node) + const type = node.typeDescriptions && node.typeDescriptions.typeString ? node.typeDescriptions.typeString : node.nodeType + references = `${references ? references.length : '0'} reference(s)` + + let ref = 0 + const nodes = this.contextualListener.getActiveHighlights() + for (const k in nodes) { + if (nodeAtCursorPosition.id === nodes[k].nodeId) { + ref = k + break + } + } + + // JUMP BETWEEN REFERENCES + const jump = (e) => { + e.target.dataset.action === 'next' ? ref++ : ref-- + if (ref < 0) ref = nodes.length - 1 + if (ref >= nodes.length) ref = 0 + this._jumpToInternal(nodes[ref].position) + } + + const jumpTo = () => { + if (node && node.src) { + const position = this.sourceMappingDecoder.decode(node.src) + if (position) { + this._jumpToInternal(position) + } + } + } + + const showGasEstimation = () => { + if (node.nodeType === 'FunctionDefinition') { + const result = this.contextualListener.gasEstimation(node) + const executionCost = ' Execution cost: ' + result.executionCost + ' gas' + const codeDepositCost = 'Code deposit cost: ' + result.codeDepositCost + ' gas' + const estimatedGas = result.codeDepositCost ? `${codeDepositCost}, ${executionCost}` : `${executionCost}` + return yo` +
+ + ${estimatedGas} +
+ ` + } + } + + return yo` +
${showGasEstimation()} +
${type}
+
${node.name}
+ + ${references} + + +
+ ` + } +} + +function isDefinition (node) { + return node.nodeType === 'ContractDefinition' || + node.nodeType === 'FunctionDefinition' || + node.nodeType === 'ModifierDefinition' || + node.nodeType === 'VariableDeclaration' || + node.nodeType === 'StructDefinition' || + node.nodeType === 'EventDefinition' +} + +module.exports = ContextView diff --git a/apps/remix-ide/src/app/files/fileManager.js b/apps/remix-ide/src/app/files/fileManager.js index fae8bdc51e..0a0c974697 100644 --- a/apps/remix-ide/src/app/files/fileManager.js +++ b/apps/remix-ide/src/app/files/fileManager.js @@ -4,8 +4,8 @@ import yo from 'yo-yo' import async from 'async' import { Plugin } from '@remixproject/engine' import * as packageJson from '../../../../../package.json' +import { Registry } from '../state/registry' const EventEmitter = require('events') -const globalRegistry = require('../../global/registry') const toaster = require('../ui/tooltip') const modalDialogCustom = require('../ui/modal-dialog-custom') const helper = require('../../lib/helper.js') @@ -44,7 +44,7 @@ class FileManager extends Plugin { this.events = new EventEmitter() this.editor = editor this._components = {} - this._components.registry = globalRegistry + this._components.registry = Registry.getInstance() this.appManager = appManager this.init() } diff --git a/apps/remix-ide/src/app/panels/file-panel.js b/apps/remix-ide/src/app/panels/file-panel.js index ed2e9b6f85..e4d4f1b93d 100644 --- a/apps/remix-ide/src/app/panels/file-panel.js +++ b/apps/remix-ide/src/app/panels/file-panel.js @@ -4,11 +4,12 @@ import * as packageJson from '../../../../../package.json' import React from 'react' // eslint-disable-line import ReactDOM from 'react-dom' import { FileSystemProvider } from '@remix-ui/workspace' // eslint-disable-line +import { Registry } from '../state/registry' const { RemixdHandle } = require('../files/remixd-handle.js') const { GitHandle } = require('../files/git-handle.js') const { HardhatHandle } = require('../files/hardhat-handle.js') const { SlitherHandle } = require('../files/slither-handle.js') -const globalRegistry = require('../../global/registry') + /* Overview of APIs: * fileManager: @args fileProviders (browser, shared-folder, swarm, github, etc ...) & config & editor @@ -41,7 +42,7 @@ const profile = { module.exports = class Filepanel extends ViewPlugin { constructor (appManager) { super(profile) - this.registry = globalRegistry + this.registry = Registry.getInstance() this.fileProviders = this.registry.get('fileproviders').api this.fileManager = this.registry.get('filemanager').api diff --git a/apps/remix-ide/src/app/panels/main-view.js b/apps/remix-ide/src/app/panels/main-view.js index 1cb3b1ffa5..b5e97ec5e1 100644 --- a/apps/remix-ide/src/app/panels/main-view.js +++ b/apps/remix-ide/src/app/panels/main-view.js @@ -1,7 +1,8 @@ +import { Registry } from '../state/registry' + var yo = require('yo-yo') var EventManager = require('../../lib/events') -var globalRegistry = require('../../global/registry') var { TabProxy } = require('./tab-proxy.js') var csjs = require('csjs-inject') @@ -22,12 +23,12 @@ export class MainView { self.event = new EventManager() self._view = {} self._components = {} - self._components.registry = globalRegistry + self._components.registry = Registry.getInstance() self.contextualListener = contextualListener self.editor = editor self.fileManager = fileManager self.mainPanel = mainPanel - self.txListener = globalRegistry.get('txlistener').api + self.txListener = Registry.getInstance().get('txlistener').api self._components.terminal = terminal this.appManager = appManager this.init() diff --git a/apps/remix-ide/src/app/panels/terminal.js b/apps/remix-ide/src/app/panels/terminal.js index df0510b150..048e9b41b8 100644 --- a/apps/remix-ide/src/app/panels/terminal.js +++ b/apps/remix-ide/src/app/panels/terminal.js @@ -4,6 +4,7 @@ import ReactDOM from 'react-dom' import { RemixUiTerminal } from '@remix-ui/terminal' // eslint-disable-line import { Plugin } from '@remixproject/engine' import * as packageJson from '../../../../../package.json' +import { Registry } from '../state/registry' const vm = require('vm') const EventManager = require('../../lib/events') @@ -11,7 +12,7 @@ const CommandInterpreterAPI = require('../../lib/cmdInterpreterAPI') const AutoCompletePopup = require('../ui/auto-complete-popup') import { CompilerImports } from '@remix-project/core-plugin' // eslint-disable-line -const globalRegistry = require('../../global/registry') + const GistHandler = require('../../lib/gist-handler') const KONSOLES = [] @@ -33,7 +34,7 @@ class Terminal extends Plugin { this.fileImport = new CompilerImports() this.gistHandler = new GistHandler() this.event = new EventManager() - this.globalRegistry = globalRegistry + this.globalRegistry = Registry.getInstance() this.element = document.createElement('div') this.element.setAttribute('class', 'panel') this.element.setAttribute('id', 'terminal-view') diff --git a/apps/remix-ide/src/app/plugins/config.ts b/apps/remix-ide/src/app/plugins/config.ts new file mode 100644 index 0000000000..06c762ec9f --- /dev/null +++ b/apps/remix-ide/src/app/plugins/config.ts @@ -0,0 +1,31 @@ +import { Plugin } from '@remixproject/engine' +import QueryParams from '../../lib/query-params' +import { Registry } from '../state/registry' + +const profile = { + name: 'config', + displayName: 'Config', + description: 'Config', + methods: ['getAppParameter', 'setAppParameter'] +} + +export class ConfigPlugin extends Plugin { + constructor () { + super(profile) + } + + getAppParameter (name: string) { + const queryParams = new QueryParams() + const params = queryParams.get() + const config = Registry.getInstance().get('config').api + const param = params[name] ? params[name] : config.get(name) + if (param === 'true') return true + if (param === 'false') return false + return param + } + + setAppParameter (name: string, value: any) { + const config = Registry.getInstance().get('config').api + config.set(name, value) + } +} diff --git a/apps/remix-ide/src/app/state/registry.ts b/apps/remix-ide/src/app/state/registry.ts new file mode 100644 index 0000000000..b96a789736 --- /dev/null +++ b/apps/remix-ide/src/app/state/registry.ts @@ -0,0 +1,38 @@ +type registryEntry = { + api: any, + name: string +} + +export class Registry { + private static instance: Registry; + private state: any + + private constructor () { + this.state = {} + } + + public static getInstance (): Registry { + if (!Registry.instance) { + Registry.instance = new Registry() + } + + return Registry.instance + } + + public put (entry: registryEntry) { + if (this.state[entry.name]) return this.state[entry.name] + const server = { + // uid: serveruid, + api: entry.api + } + this.state[entry.name] = { server } + return server + } + + public get (name: string) { + const state = this.state[name] + if (!state) return + const server = state.server + return server + } +} diff --git a/apps/remix-ide/src/app/tabs/analysis-tab.js b/apps/remix-ide/src/app/tabs/analysis-tab.js index a42d2a5113..9d7a31c1a4 100644 --- a/apps/remix-ide/src/app/tabs/analysis-tab.js +++ b/apps/remix-ide/src/app/tabs/analysis-tab.js @@ -4,6 +4,7 @@ import ReactDOM from 'react-dom' import { EventEmitter } from 'events' import {RemixUiStaticAnalyser} from '@remix-ui/static-analyser' // eslint-disable-line import * as packageJson from '../../../../../package.json' +import { Registry } from '../state/registry' var Renderer = require('../ui/renderer') var EventManager = require('../../lib/events') @@ -22,11 +23,11 @@ const profile = { } class AnalysisTab extends ViewPlugin { - constructor (registry) { + constructor () { super(profile) this.event = new EventManager() this.events = new EventEmitter() - this.registry = registry + this.registry = Registry.getInstance() this.element = document.createElement('div') this.element.setAttribute('id', 'staticAnalyserView') this._components = { diff --git a/apps/remix-ide/src/app/tabs/compile-tab.js b/apps/remix-ide/src/app/tabs/compile-tab.js index f65c3c3c37..2c447d49b3 100644 --- a/apps/remix-ide/src/app/tabs/compile-tab.js +++ b/apps/remix-ide/src/app/tabs/compile-tab.js @@ -145,11 +145,11 @@ class CompileTab extends CompilerApiMixin(ViewPlugin) { // implements ICompilerA } getAppParameter (name) { - return this.call('app', 'getAppParameter', name) + return this.call('config', 'getAppParameter', name) } setAppParameter (name, value) { - this.call('app', 'setAppParameter', name, value) + this.call('config', 'setAppParameter', name, value) } } diff --git a/apps/remix-ide/src/app/tabs/runTab/settings.js b/apps/remix-ide/src/app/tabs/runTab/settings.js index dbd93cba55..e6d045a8fe 100644 --- a/apps/remix-ide/src/app/tabs/runTab/settings.js +++ b/apps/remix-ide/src/app/tabs/runTab/settings.js @@ -1,4 +1,5 @@ import { BN } from 'ethereumjs-util' +import { Registry } from '../../state/registry' const $ = require('jquery') const yo = require('yo-yo') const remixLib = require('@remix-project/remix-lib') @@ -8,7 +9,6 @@ const copyToClipboard = require('../../ui/copy-to-clipboard') const modalDialogCustom = require('../../ui/modal-dialog-custom') const addTooltip = require('../../ui/tooltip') const helper = require('../../../lib/helper.js') -const globalRegistry = require('../../../global/registry') class SettingsUI { constructor (blockchain, networkModule) { @@ -22,10 +22,10 @@ class SettingsUI { this.updateAccountBalances() }) this._components = { - registry: globalRegistry, + registry: Registry.getInstance(), networkModule: networkModule } - this._components.registry = globalRegistry + this._components.registry = Registry.getInstance() this._deps = { config: this._components.registry.get('config').api } diff --git a/apps/remix-ide/src/app/tabs/settings-tab.js b/apps/remix-ide/src/app/tabs/settings-tab.js index edcd3cafdc..3a520f1038 100644 --- a/apps/remix-ide/src/app/tabs/settings-tab.js +++ b/apps/remix-ide/src/app/tabs/settings-tab.js @@ -3,7 +3,7 @@ import { ViewPlugin } from '@remixproject/engine-web' import ReactDOM from 'react-dom' import * as packageJson from '../../../../../package.json' import { RemixUiSettings } from '@remix-ui/settings' //eslint-disable-line -const globalRegistry = require('../../global/registry') +import { Registry } from '../state/registry' const profile = { name: 'settings', @@ -25,7 +25,7 @@ module.exports = class SettingsTab extends ViewPlugin { this.config = config this.editor = editor this._deps = { - themeModule: globalRegistry.get('themeModule').api + themeModule: Registry.getInstance().get('themeModule').api } this.element = document.createElement('div') this.element.setAttribute('id', 'settingsTab') diff --git a/apps/remix-ide/src/app/tabs/theme-module.js b/apps/remix-ide/src/app/tabs/theme-module.js index d3f5e9a98c..08075432ad 100644 --- a/apps/remix-ide/src/app/tabs/theme-module.js +++ b/apps/remix-ide/src/app/tabs/theme-module.js @@ -2,6 +2,7 @@ import { Plugin } from '@remixproject/engine' import { EventEmitter } from 'events' import QueryParams from '../../lib/query-params' import * as packageJson from '../../../../../package.json' +import { Registry } from '../state/registry' const _paq = window._paq = window._paq || [] const themes = [ @@ -26,11 +27,11 @@ const profile = { } export class ThemeModule extends Plugin { - constructor (registry) { + constructor () { super(profile) this.events = new EventEmitter() this._deps = { - config: registry.get('config').api + config: Registry.getInstance().get('config').api } this.themes = themes.reduce((acc, theme) => { theme.url = window.location.origin + window.location.pathname + theme.url diff --git a/apps/remix-ide/src/app/udapp/make-udapp.js b/apps/remix-ide/src/app/udapp/make-udapp.js index 58620c1f30..f2098ee47d 100644 --- a/apps/remix-ide/src/app/udapp/make-udapp.js +++ b/apps/remix-ide/src/app/udapp/make-udapp.js @@ -1,4 +1,5 @@ -var registry = require('../../global/registry') +import { Registry } from '../state/registry' + var remixLib = require('@remix-project/remix-lib') var yo = require('yo-yo') var EventsDecoder = remixLib.execution.EventsDecoder @@ -50,12 +51,12 @@ export function makeUdapp (blockchain, compilersArtefacts, logHtmlCallback) { } }) - registry.put({ api: txlistener, name: 'txlistener' }) + Registry.getInstance().put({ api: txlistener, name: 'txlistener' }) blockchain.startListening(txlistener) const eventsDecoder = new EventsDecoder({ resolveReceipt: transactionReceiptResolver }) txlistener.startListening() - registry.put({ api: eventsDecoder, name: 'eventsDecoder' }) + Registry.getInstance().put({ api: eventsDecoder, name: 'eventsDecoder' }) } diff --git a/apps/remix-ide/src/app/ui/persmission-handler.js b/apps/remix-ide/src/app/ui/persmission-handler.js index 018e5af6ff..ab79b2c197 100644 --- a/apps/remix-ide/src/app/ui/persmission-handler.js +++ b/apps/remix-ide/src/app/ui/persmission-handler.js @@ -1,9 +1,10 @@ +import { Registry } from '../state/registry' + /* global localStorage */ const yo = require('yo-yo') const csjs = require('csjs-inject') const addTooltip = require('./tooltip') const modalDialog = require('./modaldialog') -const globalRegistry = require('../../global/registry') const css = csjs` .permission h4 { @@ -167,8 +168,8 @@ export class PermissionHandler { ` - globalRegistry.get('themeModule').api.fixInvert(imgFrom) - globalRegistry.get('themeModule').api.fixInvert(imgTo) + Registry.getInstance().get('themeModule').api.fixInvert(imgFrom) + Registry.getInstance().get('themeModule').api.fixInvert(imgTo) const pluginMessage = message ? yo`
diff --git a/apps/remix-ide/src/app/ui/renderer.js b/apps/remix-ide/src/app/ui/renderer.js index 97107c19d2..fc1fd60d70 100644 --- a/apps/remix-ide/src/app/ui/renderer.js +++ b/apps/remix-ide/src/app/ui/renderer.js @@ -3,7 +3,8 @@ var $ = require('jquery') var yo = require('yo-yo') var css = require('./styles/renderer-styles') -var globlalRegistry = require('../../global/registry') + +const { Registry } = require('../state/registry') /** * After refactor, the renderer is only used to render error/warning @@ -14,7 +15,7 @@ function Renderer (service) { const self = this self.service = service self._components = {} - self._components.registry = globlalRegistry + self._components.registry = Registry.getInstance() // dependencies self._deps = { fileManager: self._components.registry.get('filemanager').api, diff --git a/apps/remix-ide/src/app/ui/txLogger.js b/apps/remix-ide/src/app/ui/txLogger.js index 632b30c778..63dc0579a7 100644 --- a/apps/remix-ide/src/app/ui/txLogger.js +++ b/apps/remix-ide/src/app/ui/txLogger.js @@ -9,8 +9,8 @@ var remixLib = require('@remix-project/remix-lib') var EventManager = require('../../lib/events') var helper = require('../../lib/helper') var modalDialog = require('./modal-dialog-custom') +const { Registry } = require('../state/registry') var typeConversion = remixLib.execution.typeConversion -var globlalRegistry = require('../../global/registry') var css = csjs` .log { @@ -125,12 +125,12 @@ class TxLogger { } return false } - this.eventsDecoder = globlalRegistry.get('eventsDecoder').api - this.txListener = globlalRegistry.get('txlistener').api + this.eventsDecoder = Registry.getInstance().get('eventsDecoder').api + this.txListener = Registry.getInstance().get('txlistener').api this.terminal = terminal // dependencies this._deps = { - compilersArtefacts: globlalRegistry.get('compilersartefacts').api + compilersArtefacts: Registry.getInstance().get('compilersartefacts').api } this.logKnownTX = this.terminal.registerCommand('knownTransaction', (args, cmds, append) => { diff --git a/apps/remix-ide/src/lib/cmdInterpreterAPI.js b/apps/remix-ide/src/lib/cmdInterpreterAPI.js index fc7489d998..9b04e9b898 100644 --- a/apps/remix-ide/src/lib/cmdInterpreterAPI.js +++ b/apps/remix-ide/src/lib/cmdInterpreterAPI.js @@ -1,11 +1,11 @@ 'use strict' import { CompilerImports } from '@remix-project/core-plugin' +import { Registry } from '../app/state/registry' var yo = require('yo-yo') var async = require('async') var EventManager = require('../lib/events') var toolTip = require('../app/ui/tooltip') -var globalRegistry = require('../global/registry') var GistHandler = require('./gist-handler') class CmdInterpreterAPI { @@ -14,7 +14,7 @@ class CmdInterpreterAPI { self.event = new EventManager() self.blockchain = blockchain self._components = {} - self._components.registry = localRegistry || globalRegistry + self._components.registry = localRegistry || Registry.getInstance() self._components.terminal = terminal self._components.fileImport = new CompilerImports() self._components.gistHandler = new GistHandler() diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index 441337955a..32afcaec9a 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -7,7 +7,7 @@ import { PermissionHandler } from './app/ui/persmission-handler' const _paq = window._paq = window._paq || [] const requiredModules = [ // services + layout views + system views - 'manager', 'app', 'compilerArtefacts', 'compilerMetadata', 'contextualListener', 'editor', 'offsetToLineColumnConverter', 'network', 'theme', + 'manager', 'config', 'compilerArtefacts', 'compilerMetadata', 'contextualListener', 'editor', 'offsetToLineColumnConverter', 'network', 'theme', 'fileManager', 'contentImport', 'blockchain', 'web3Provider', 'scriptRunner', 'fetchAndCompile', 'mainPanel', 'hiddenPanel', 'sidePanel', 'menuicons', 'filePanel', 'terminal', 'settings', 'pluginManager', 'tabs', 'udapp', 'dGitProvider', 'solidity-logic'] diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index 273be5e0b0..f83223e14b 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -69,7 +69,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { } const addAnnotation = (file, error) => { - if (file === plugin.call('app', 'getAppParameter', 'currentFile')) { + if (file === plugin.call('config', 'getAppParameter', 'currentFile')) { plugin.call('editor', 'addAnnotation', error, file) } } @@ -87,14 +87,14 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { } const _errorClick = async (errFile, errLine, errCol) => { - if (errFile !== plugin.call('app', 'getAppParameter', 'currentFile')) { + if (errFile !== await plugin.call('config', 'getAppParameter', 'currentFile')) { // TODO: refactor with this._components.contextView.jumpTo if (await plugin.call('fileManager', 'exists', errFile)) { - plugin.call('fileManager', 'open', errFile) - plugin.call('editor', 'gotoLine', errLine, errCol) + await plugin.call('fileManager', 'open', errFile) + await plugin.call('editor', 'gotoLine', errLine, errCol) } } else { - plugin.call('editor', 'gotoLine', errLine, errCol) + await plugin.call('editor', 'gotoLine', errLine, errCol) } } diff --git a/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts b/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts index 4d23557f18..6a99205831 100644 --- a/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts +++ b/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts @@ -2,7 +2,8 @@ /* eslint-disable no-use-before-define */ import { Plugin } from '@remixproject/engine/lib/abstract' import * as packageJson from '../../../../package.json' -import * as registry from 'apps/remix-ide/src/global/registry' +import { Registry } from 'apps/remix-ide/src/app/state/registry' + import { RemixAppManager } from '@remix-ui/plugin-manager' export type Kind = @@ -52,7 +53,7 @@ export class VerticalIcons extends Plugin { defaultProfile: defaultModuleProfile targetProfileForChange: any targetProfileForRemoval: any - registry: registry + registry: Registry keys: string[] types: string[] renderComponent(): void @@ -108,3 +109,4 @@ export class VerticalIcons extends Plugin { view: any } import EventEmitter = require('events') + diff --git a/package-lock.json b/package-lock.json index bfa28d89a3..5e5691dc63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3320,7 +3320,7 @@ "@evocateur/libnpmaccess": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz", - "integrity": "sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg==", + "integrity": "sha1-7Pf2zmsATp+UKwmNkiAL5KSxyEU=", "dev": true, "requires": { "@evocateur/npm-registry-fetch": "^4.0.0", @@ -3333,13 +3333,13 @@ "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "integrity": "sha1-UlILiuW1aSFbNU78DKo/4eRaitw=", "dev": true }, "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -3351,7 +3351,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -3359,7 +3359,7 @@ "@evocateur/libnpmpublish": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz", - "integrity": "sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg==", + "integrity": "sha1-Vd8J0tyhNq+6nIjHWconIZjbnxo=", "dev": true, "requires": { "@evocateur/npm-registry-fetch": "^4.0.0", @@ -3376,13 +3376,13 @@ "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "integrity": "sha1-UlILiuW1aSFbNU78DKo/4eRaitw=", "dev": true }, "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -3394,7 +3394,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, "ssri": { @@ -3411,7 +3411,7 @@ "@evocateur/npm-registry-fetch": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz", - "integrity": "sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g==", + "integrity": "sha1-jEw4dm2NMtMgD8sKg/BktXNl7WY=", "dev": true, "requires": { "JSONStream": "^1.3.4", @@ -3435,7 +3435,7 @@ "agentkeepalive": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", "dev": true, "requires": { "humanize-ms": "^1.2.1" @@ -3482,7 +3482,7 @@ "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=", "dev": true }, "http-proxy-agent": { @@ -3498,7 +3498,7 @@ "https-proxy-agent": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "integrity": "sha1-TuenN6vZJniik9mzShr00NCMeHs=", "dev": true, "requires": { "agent-base": "^4.3.0", @@ -3508,7 +3508,7 @@ "make-fetch-happen": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "integrity": "sha1-qoOHEE8mh+3KAchofuRQE9AtGb0=", "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -3533,7 +3533,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -3561,7 +3561,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, "socks": { @@ -3609,7 +3609,7 @@ "@evocateur/pacote": { "version": "9.6.5", "resolved": "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz", - "integrity": "sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==", + "integrity": "sha1-M94yuiELbxfCDrq01JfvxnVfSuU=", "dev": true, "requires": { "@evocateur/npm-registry-fetch": "^4.0.0", @@ -3655,7 +3655,7 @@ "agentkeepalive": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", "dev": true, "requires": { "humanize-ms": "^1.2.1" @@ -3702,7 +3702,7 @@ "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=", "dev": true }, "http-proxy-agent": { @@ -3718,7 +3718,7 @@ "https-proxy-agent": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "integrity": "sha1-TuenN6vZJniik9mzShr00NCMeHs=", "dev": true, "requires": { "agent-base": "^4.3.0", @@ -3728,7 +3728,7 @@ "make-fetch-happen": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "integrity": "sha1-qoOHEE8mh+3KAchofuRQE9AtGb0=", "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -3753,7 +3753,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -3765,7 +3765,7 @@ "npm-packlist": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "integrity": "sha1-Vu5swTW5+YrT1Rwcldoiu7my7z4=", "dev": true, "requires": { "ignore-walk": "^3.0.1", @@ -3776,7 +3776,7 @@ "npm-pick-manifest": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "integrity": "sha1-9Nnl/UviFT5fTl+be+jcQZqZq7c=", "dev": true, "requires": { "figgy-pudding": "^3.5.1", @@ -3803,7 +3803,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, "socks": { @@ -5620,7 +5620,7 @@ "@lerna/add": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz", - "integrity": "sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A==", + "integrity": "sha1-JwB73nHMewopaas8LwrkFXi0V3s=", "dev": true, "requires": { "@evocateur/pacote": "^9.6.3", @@ -5638,7 +5638,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -5650,7 +5650,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -5666,7 +5666,7 @@ "@lerna/bootstrap": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz", - "integrity": "sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw==", + "integrity": "sha1-vNG2Ub5bCXCyDY+uBMhkVIEjrtY=", "dev": true, "requires": { "@lerna/command": "3.21.0", @@ -5697,7 +5697,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -5709,7 +5709,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -5725,7 +5725,7 @@ "@lerna/changed": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz", - "integrity": "sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw==", + "integrity": "sha1-EI4V9nm/4HevUA9YJIxjTxBE6gs=", "dev": true, "requires": { "@lerna/collect-updates": "3.20.0", @@ -5737,7 +5737,7 @@ "@lerna/check-working-tree": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz", - "integrity": "sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==", + "integrity": "sha1-tPiuYbtFI1Yd+5+PjYdN1Gu0S6o=", "dev": true, "requires": { "@lerna/collect-uncommitted": "3.16.5", @@ -5748,7 +5748,7 @@ "@lerna/child-process": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz", - "integrity": "sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==", + "integrity": "sha1-OPo8GAZKpKwHVK2AEUd2p7NqabI=", "dev": true, "requires": { "chalk": "^2.3.1", @@ -5759,7 +5759,7 @@ "@lerna/clean": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz", - "integrity": "sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg==", + "integrity": "sha1-wLRrUwDMPa4s2jvsFLgDCC2jhW0=", "dev": true, "requires": { "@lerna/command": "3.21.0", @@ -5783,7 +5783,7 @@ "@lerna/cli": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz", - "integrity": "sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA==", + "integrity": "sha1-yQxGFUL801ttWwFaKQ+w2/tB0kI=", "dev": true, "requires": { "@lerna/global-options": "3.13.0", @@ -5795,13 +5795,13 @@ "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { "string-width": "^3.1.0", @@ -5818,7 +5818,7 @@ "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "dev": true, "requires": { "locate-path": "^3.0.0" @@ -5833,7 +5833,7 @@ "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "dev": true, "requires": { "p-locate": "^3.0.0", @@ -5843,7 +5843,7 @@ "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "dev": true, "requires": { "p-try": "^2.0.0" @@ -5852,7 +5852,7 @@ "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==", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "dev": true, "requires": { "p-limit": "^2.0.0" @@ -5861,13 +5861,13 @@ "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==", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -5878,7 +5878,7 @@ "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -5887,7 +5887,7 @@ "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -5898,7 +5898,7 @@ "yargs": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "integrity": "sha1-Ghw+3O0a+yov6jNgS8bR2NaIpBQ=", "dev": true, "requires": { "cliui": "^5.0.0", @@ -5929,7 +5929,7 @@ "@lerna/collect-uncommitted": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz", - "integrity": "sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==", + "integrity": "sha1-pJTWGqwxzceuxLvlLJZVAnQTLmM=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -5941,7 +5941,7 @@ "@lerna/collect-updates": { "version": "3.20.0", "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz", - "integrity": "sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q==", + "integrity": "sha1-YvnXa6IaJbfZ+/McAt6IdEpWS9E=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -5954,7 +5954,7 @@ "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", "dev": true } } @@ -5962,7 +5962,7 @@ "@lerna/command": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz", - "integrity": "sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ==", + "integrity": "sha1-miODdZ3HtwDaz6iiKy86bhkBIfc=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -5980,7 +5980,7 @@ "@lerna/conventional-commits": { "version": "3.22.0", "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz", - "integrity": "sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA==", + "integrity": "sha1-J5j0iB7i70V72uAnq30L8K9vHgk=", "dev": true, "requires": { "@lerna/validation-error": "3.13.0", @@ -6019,7 +6019,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -6031,7 +6031,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -6041,7 +6041,7 @@ "@lerna/create": { "version": "3.22.0", "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz", - "integrity": "sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw==", + "integrity": "sha1-1rvQN8PcW0Jf5fbRuBcFfCePdhk=", "dev": true, "requires": { "@evocateur/pacote": "^9.6.3", @@ -6067,7 +6067,7 @@ "@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", "dev": true }, "array-union": { @@ -6091,7 +6091,7 @@ "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", @@ -6116,7 +6116,7 @@ "globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", "dev": true, "requires": { "@types/glob": "^7.1.1", @@ -6132,7 +6132,7 @@ "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", "dev": true }, "jsonfile": { @@ -6147,7 +6147,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -6159,7 +6159,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -6167,7 +6167,7 @@ "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", "dev": true }, "tr46": { @@ -6201,7 +6201,7 @@ "@lerna/create-symlink": { "version": "3.16.2", "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz", - "integrity": "sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==", + "integrity": "sha1-QSy45Zpy9afZRj5ORyGtIHAUmWc=", "dev": true, "requires": { "@zkochan/cmd-shim": "^3.1.0", @@ -6234,7 +6234,7 @@ "@lerna/describe-ref": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz", - "integrity": "sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==", + "integrity": "sha1-ozjCWq7YN9PccLinLER8XGY0asA=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6244,7 +6244,7 @@ "@lerna/diff": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz", - "integrity": "sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw==", + "integrity": "sha1-5t8Ni5kWFn/1pJ/LAqwGQkKApo0=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6256,7 +6256,7 @@ "@lerna/exec": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz", - "integrity": "sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q==", + "integrity": "sha1-F/B1M4k8uRihe0G8xWbcQ3AW2yY=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6279,7 +6279,7 @@ "@lerna/filter-options": { "version": "3.20.0", "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz", - "integrity": "sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g==", + "integrity": "sha1-Dw9dWkeDhW7s5CBHCMyQLLyK9Zs=", "dev": true, "requires": { "@lerna/collect-updates": "3.20.0", @@ -6292,7 +6292,7 @@ "@lerna/filter-packages": { "version": "3.18.0", "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz", - "integrity": "sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==", + "integrity": "sha1-ano3bShSCNsDqClYz7gXLhebTnA=", "dev": true, "requires": { "@lerna/validation-error": "3.13.0", @@ -6303,7 +6303,7 @@ "@lerna/get-npm-exec-opts": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz", - "integrity": "sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==", + "integrity": "sha1-0bVSywCIGZ/D5+Em+RTjmgjfnqU=", "dev": true, "requires": { "npmlog": "^4.1.2" @@ -6312,7 +6312,7 @@ "@lerna/get-packed": { "version": "3.16.0", "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz", - "integrity": "sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==", + "integrity": "sha1-GzFrcG3O6Gx7qlXlCwh5WUR4Uv8=", "dev": true, "requires": { "fs-extra": "^8.1.0", @@ -6354,7 +6354,7 @@ "@lerna/github-client": { "version": "3.22.0", "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz", - "integrity": "sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg==", + "integrity": "sha1-XYFqpPdnR+1zauZP+WK48Vw1TZU=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6367,7 +6367,7 @@ "@lerna/gitlab-client": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz", - "integrity": "sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==", + "integrity": "sha1-kfTsjGl7WsV/fyW9UP5lnSSqlqY=", "dev": true, "requires": { "node-fetch": "^2.5.0", @@ -6406,13 +6406,13 @@ "@lerna/global-options": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz", - "integrity": "sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==", + "integrity": "sha1-IXZiKQ2watnPLEnY4xAO4o6uuuE=", "dev": true }, "@lerna/has-npm-version": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz", - "integrity": "sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==", + "integrity": "sha1-q4OVbyEdiSPqav6bl5s4zHOxUyY=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6422,7 +6422,7 @@ "@lerna/import": { "version": "3.22.0", "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz", - "integrity": "sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg==", + "integrity": "sha1-Gl8DlPOOI8T2QqEj5eFRfnDQaNI=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6460,7 +6460,7 @@ "@lerna/info": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz", - "integrity": "sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA==", + "integrity": "sha1-dmlrZ2/bDzXUjIPGPB4yu143gU8=", "dev": true, "requires": { "@lerna/command": "3.21.0", @@ -6471,7 +6471,7 @@ "@lerna/init": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz", - "integrity": "sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg==", + "integrity": "sha1-HoEJNNyL9OU4bAMQQYgdO0CWqlw=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6512,7 +6512,7 @@ "@lerna/link": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz", - "integrity": "sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ==", + "integrity": "sha1-i+aP8MzuEEsXS1u9YGMCwvBunZs=", "dev": true, "requires": { "@lerna/command": "3.21.0", @@ -6531,7 +6531,7 @@ "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", "dev": true } } @@ -6539,7 +6539,7 @@ "@lerna/list": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz", - "integrity": "sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg==", + "integrity": "sha1-Qvdvr6Vt6hO2keyMqxODJpHWHaI=", "dev": true, "requires": { "@lerna/command": "3.21.0", @@ -6551,7 +6551,7 @@ "@lerna/listable": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz", - "integrity": "sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg==", + "integrity": "sha1-6CeYQFte2PxRhDyO8eeg5Jc4iho=", "dev": true, "requires": { "@lerna/query-graph": "3.18.5", @@ -6562,7 +6562,7 @@ "@lerna/log-packed": { "version": "3.16.0", "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz", - "integrity": "sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==", + "integrity": "sha1-+DmRBB7neySVY04URwtCJZ/SvBY=", "dev": true, "requires": { "byte-size": "^5.0.1", @@ -6574,7 +6574,7 @@ "@lerna/npm-conf": { "version": "3.16.0", "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz", - "integrity": "sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==", + "integrity": "sha1-HBComuL2wu6WliVXc4aFMA03aCc=", "dev": true, "requires": { "config-chain": "^1.1.11", @@ -6584,7 +6584,7 @@ "@lerna/npm-dist-tag": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz", - "integrity": "sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ==", + "integrity": "sha1-nvmrt8EEB3sx9vqyLMc7MU1UrFU=", "dev": true, "requires": { "@evocateur/npm-registry-fetch": "^4.0.0", @@ -6597,7 +6597,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -6609,7 +6609,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -6617,7 +6617,7 @@ "@lerna/npm-install": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz", - "integrity": "sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==", + "integrity": "sha1-1r/cFvgShdpmUVrkeSTW4njWN9M=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6652,7 +6652,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -6664,7 +6664,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -6672,7 +6672,7 @@ "@lerna/npm-publish": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz", - "integrity": "sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg==", + "integrity": "sha1-JA5AOZWf2YFrScWwdCHhG1ywAK8=", "dev": true, "requires": { "@evocateur/libnpmpublish": "^1.2.2", @@ -6709,7 +6709,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -6721,7 +6721,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -6729,7 +6729,7 @@ "@lerna/npm-run-script": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz", - "integrity": "sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==", + "integrity": "sha1-nC7IJFOibAtG7cC7fBWBbIIfXBU=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -6740,7 +6740,7 @@ "@lerna/otplease": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz", - "integrity": "sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog==", + "integrity": "sha1-t3uOdgtAq62fdljZiPPqd9T9AjE=", "dev": true, "requires": { "@lerna/prompt": "3.18.5", @@ -6750,7 +6750,7 @@ "@lerna/output": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz", - "integrity": "sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==", + "integrity": "sha1-Pe18yQiyephyIopjDZUK7a56SYk=", "dev": true, "requires": { "npmlog": "^4.1.2" @@ -6759,7 +6759,7 @@ "@lerna/pack-directory": { "version": "3.16.4", "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz", - "integrity": "sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==", + "integrity": "sha1-Pq5fkb31rP4DhFEO1T+t3EwHRpM=", "dev": true, "requires": { "@lerna/get-packed": "3.16.0", @@ -6775,7 +6775,7 @@ "npm-packlist": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "integrity": "sha1-Vu5swTW5+YrT1Rwcldoiu7my7z4=", "dev": true, "requires": { "ignore-walk": "^3.0.1", @@ -6788,7 +6788,7 @@ "@lerna/package": { "version": "3.16.0", "resolved": "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz", - "integrity": "sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==", + "integrity": "sha1-fgpG5Gl+2LipwU1Zx/iQ4NOLoTw=", "dev": true, "requires": { "load-json-file": "^5.3.0", @@ -6799,7 +6799,7 @@ "load-json-file": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "integrity": "sha1-TTweAfocA+p4pgrHr5MsnOU0A/M=", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -6812,7 +6812,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -6824,13 +6824,13 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, "type-fest": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "integrity": "sha1-Y9ANIE4FlHT+Xht8ARESu9HcKeE=", "dev": true } } @@ -6838,7 +6838,7 @@ "@lerna/package-graph": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz", - "integrity": "sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA==", + "integrity": "sha1-x0Di6jV40FnlUWM+lQaQgxuUH2s=", "dev": true, "requires": { "@lerna/prerelease-id-from-version": "3.16.0", @@ -6851,7 +6851,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -6863,7 +6863,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -6873,7 +6873,7 @@ "@lerna/prerelease-id-from-version": { "version": "3.16.0", "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz", - "integrity": "sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==", + "integrity": "sha1-skv6eJ9eG6q5FNewi6rpt719g6E=", "dev": true, "requires": { "semver": "^6.2.0" @@ -6882,7 +6882,7 @@ "@lerna/profiler": { "version": "3.20.0", "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz", - "integrity": "sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg==", + "integrity": "sha1-D23CNvTqj56l81jGcDMFpPMq0FE=", "dev": true, "requires": { "figgy-pudding": "^3.5.1", @@ -6916,7 +6916,7 @@ "@lerna/project": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz", - "integrity": "sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A==", + "integrity": "sha1-XXhNLRDFYaAPIDILzbBAmXwQUC0=", "dev": true, "requires": { "@lerna/package": "3.16.0", @@ -6936,7 +6936,7 @@ "@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", "dev": true }, "array-union": { @@ -6951,7 +6951,7 @@ "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", "dev": true, "requires": { "import-fresh": "^2.0.0", @@ -6972,7 +6972,7 @@ "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", @@ -7018,7 +7018,7 @@ "globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", "dev": true, "requires": { "@types/glob": "^7.1.1", @@ -7034,7 +7034,7 @@ "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", "dev": true }, "import-fresh": { @@ -7058,7 +7058,7 @@ "load-json-file": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "integrity": "sha1-TTweAfocA+p4pgrHr5MsnOU0A/M=", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -7077,13 +7077,13 @@ "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", "dev": true }, "type-fest": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "integrity": "sha1-Y9ANIE4FlHT+Xht8ARESu9HcKeE=", "dev": true } } @@ -7091,7 +7091,7 @@ "@lerna/prompt": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz", - "integrity": "sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ==", + "integrity": "sha1-YozVRfIliH0GBJGrld+JnPxSGKE=", "dev": true, "requires": { "inquirer": "^6.2.0", @@ -7214,7 +7214,7 @@ "@lerna/publish": { "version": "3.22.1", "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz", - "integrity": "sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw==", + "integrity": "sha1-tPfOP7oemvsovkofPYgiImm6lRk=", "dev": true, "requires": { "@evocateur/libnpmaccess": "^3.1.2", @@ -7272,7 +7272,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -7284,7 +7284,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -7300,7 +7300,7 @@ "@lerna/pulse-till-done": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz", - "integrity": "sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==", + "integrity": "sha1-yOnOW6+vENkwpn1+0My12Vj+ARA=", "dev": true, "requires": { "npmlog": "^4.1.2" @@ -7309,7 +7309,7 @@ "@lerna/query-graph": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz", - "integrity": "sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA==", + "integrity": "sha1-30gwu1FVJzADvzXo3aHDLQknvYY=", "dev": true, "requires": { "@lerna/package-graph": "3.18.5", @@ -7319,7 +7319,7 @@ "@lerna/resolve-symlink": { "version": "3.16.0", "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz", - "integrity": "sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==", + "integrity": "sha1-N/xwlfq9vPMXwm63Tg0L3o79I4Y=", "dev": true, "requires": { "fs-extra": "^8.1.0", @@ -7352,7 +7352,7 @@ "@lerna/rimraf-dir": { "version": "3.16.5", "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz", - "integrity": "sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==", + "integrity": "sha1-BDFqtf/SkJZXqvOI6lAsuMLyCgk=", "dev": true, "requires": { "@lerna/child-process": "3.16.5", @@ -7364,7 +7364,7 @@ "@lerna/run": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz", - "integrity": "sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q==", + "integrity": "sha1-KjXshJeeTW5CR0/hSNMuXeHKyJE=", "dev": true, "requires": { "@lerna/command": "3.21.0", @@ -7389,7 +7389,7 @@ "@lerna/run-lifecycle": { "version": "3.16.2", "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz", - "integrity": "sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==", + "integrity": "sha1-Z7KI+OqWTbnqT7H7x3FdW7sLzgA=", "dev": true, "requires": { "@lerna/npm-conf": "3.16.0", @@ -7401,7 +7401,7 @@ "@lerna/run-topologically": { "version": "3.18.5", "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz", - "integrity": "sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg==", + "integrity": "sha1-PNY52iDpZ9dnLLiNsPdWuS8v38M=", "dev": true, "requires": { "@lerna/query-graph": "3.18.5", @@ -7412,13 +7412,13 @@ "eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "integrity": "sha1-LT1I+cNGaY/Og6hdfWZOmFNd9uc=", "dev": true }, "p-queue": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz", - "integrity": "sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==", + "integrity": "sha1-7Q7uh5iSftbywvX1t3/bIGGl00Y=", "dev": true, "requires": { "eventemitter3": "^3.1.0" @@ -7429,7 +7429,7 @@ "@lerna/symlink-binary": { "version": "3.17.0", "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz", - "integrity": "sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==", + "integrity": "sha1-j4AxswmGOBSIPT8AmHf4Ljiu9Fo=", "dev": true, "requires": { "@lerna/create-symlink": "3.16.2", @@ -7469,7 +7469,7 @@ "@lerna/symlink-dependencies": { "version": "3.17.0", "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz", - "integrity": "sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==", + "integrity": "sha1-SNY2DphYZaDlbNi1GzCKUmMIeEo=", "dev": true, "requires": { "@lerna/create-symlink": "3.16.2", @@ -7512,13 +7512,13 @@ "@lerna/timer": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz", - "integrity": "sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==", + "integrity": "sha1-vNCQRVHbFuCDZNbBjl4hYPyHB4E=", "dev": true }, "@lerna/validation-error": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz", - "integrity": "sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==", + "integrity": "sha1-yGuPB8WrlTn3db2KVJdukm83WcM=", "dev": true, "requires": { "npmlog": "^4.1.2" @@ -7527,7 +7527,7 @@ "@lerna/version": { "version": "3.22.1", "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz", - "integrity": "sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g==", + "integrity": "sha1-mAWpJHpH7mLWuBvZ+l+3KLJLWeI=", "dev": true, "requires": { "@lerna/check-working-tree": "3.16.5", @@ -7561,7 +7561,7 @@ "load-json-file": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "integrity": "sha1-TTweAfocA+p4pgrHr5MsnOU0A/M=", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -7580,13 +7580,13 @@ "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", "dev": true }, "type-fest": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "integrity": "sha1-Y9ANIE4FlHT+Xht8ARESu9HcKeE=", "dev": true } } @@ -7594,7 +7594,7 @@ "@lerna/write-log-file": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz", - "integrity": "sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==", + "integrity": "sha1-t42eTPwTSai+ZNkTJMTIGZ6CKiY=", "dev": true, "requires": { "npmlog": "^4.1.2", @@ -7604,7 +7604,7 @@ "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "integrity": "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -7634,7 +7634,7 @@ "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", "dev": true, "requires": { "call-me-maybe": "^1.0.1", @@ -9610,13 +9610,13 @@ "@octokit/plugin-enterprise-rest": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", + "integrity": "sha1-4HiWc5YY2rjafUB3xlgAN3X5VDc=", "dev": true }, "@octokit/plugin-paginate-rest": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", - "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", + "integrity": "sha1-AEFwrPjCvlNauiZyeGfWkve0iPw=", "dev": true, "requires": { "@octokit/types": "^2.0.1" @@ -9625,7 +9625,7 @@ "@octokit/types": { "version": "2.16.2", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "integrity": "sha1-TF+No8b+zz2hgRrvZ4/aA+2sNdI=", "dev": true, "requires": { "@types/node": ">= 8" @@ -9642,7 +9642,7 @@ "@octokit/plugin-rest-endpoint-methods": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", - "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", + "integrity": "sha1-Mojs9UgfaMSU3QYC/BVAeln69h4=", "dev": true, "requires": { "@octokit/types": "^2.0.1", @@ -9652,7 +9652,7 @@ "@octokit/types": { "version": "2.16.2", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "integrity": "sha1-TF+No8b+zz2hgRrvZ4/aA+2sNdI=", "dev": true, "requires": { "@types/node": ">= 8" @@ -9702,7 +9702,7 @@ "@octokit/request-error": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", - "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", + "integrity": "sha1-7eBxTHc/MjR1dsJWSdwBOuazGAE=", "dev": true, "requires": { "@octokit/types": "^2.0.0", @@ -9713,7 +9713,7 @@ "@octokit/types": { "version": "2.16.2", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "integrity": "sha1-TF+No8b+zz2hgRrvZ4/aA+2sNdI=", "dev": true, "requires": { "@types/node": ">= 8" @@ -9724,7 +9724,7 @@ "@octokit/rest": { "version": "16.43.2", "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz", - "integrity": "sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==", + "integrity": "sha1-xTQm8eHRBE3ulnAj4yecUJk92Rs=", "dev": true, "requires": { "@octokit/auth-token": "^2.4.0", @@ -9867,7 +9867,7 @@ "@restart/context": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==" + "integrity": "sha1-qZ2HwpmjTCi9hbtInLB7/SMUnAI=" }, "@restart/hooks": { "version": "0.3.27", @@ -11321,7 +11321,7 @@ "@zkochan/cmd-shim": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz", - "integrity": "sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg==", + "integrity": "sha1-KrjtgfW7VFKoXyV1jrm4aBmC/S4=", "dev": true, "requires": { "is-windows": "^1.0.0", @@ -11775,7 +11775,7 @@ "array-differ": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz", - "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==", + "integrity": "sha1-S5wcPxS5BnVwgpJXaeirkE9IAbE=", "dev": true }, "array-each": { @@ -12376,7 +12376,7 @@ "babel-jest": { "version": "25.1.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.1.0.tgz", - "integrity": "sha512-tz0VxUhhOE2y+g8R2oFrO/2VtVjA1lkJeavlhExuRBg3LdNJY9gwQ+Vcvqt9+cqy71MCTJhewvTB7Qtnnr9SWg==", + "integrity": "sha1-IGCTrDgKS3jEQEoFsydzkSePgPs=", "dev": true, "requires": { "@jest/transform": "^25.1.0", @@ -12422,7 +12422,7 @@ "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -12432,7 +12432,7 @@ "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "dev": true, "requires": { "color-name": "~1.1.4" @@ -12441,19 +12441,19 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -14448,7 +14448,7 @@ "byte-size": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz", - "integrity": "sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==", + "integrity": "sha1-S2UQOaXs2Wdn5xo9ftOA5IvtQZE=", "dev": true }, "bytes": { @@ -14683,7 +14683,7 @@ "camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "integrity": "sha1-XnVda6UaoiPsfT1S8ld4IQ+dw8A=", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -15283,7 +15283,7 @@ "command-exists": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "integrity": "sha1-xQclrzgIyKsCYP1gsB+/oluVT2k=", "dev": true }, "commander": { @@ -15593,7 +15593,7 @@ "conventional-changelog-core": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz", - "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==", + "integrity": "sha1-sxQQhW9DHIRwhqfctNLKGEp9iPs=", "dev": true, "requires": { "conventional-changelog-writer": "^4.0.6", @@ -15635,7 +15635,7 @@ "through2": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "integrity": "sha1-mfiJMc/HYex2eLQdXXM2tbage/Q=", "dev": true, "requires": { "inherits": "^2.0.4", @@ -15647,7 +15647,7 @@ "conventional-changelog-preset-loader": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "integrity": "sha1-FKhVq7/9WQJ/1gJYHx802YYupEw=", "dev": true }, "conventional-changelog-writer": { @@ -15717,7 +15717,7 @@ "conventional-recommended-bump": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz", - "integrity": "sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==", + "integrity": "sha1-WvY5A5R7bgied3Z2ActZLKuxBro=", "dev": true, "requires": { "concat-stream": "^2.0.0", @@ -15750,7 +15750,7 @@ "concat-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "integrity": "sha1-QUz1r3kKSMYKub5FJ9VtXkETPLE=", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -15774,7 +15774,7 @@ "meow": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "integrity": "sha1-1IWY9vSxRy81v2MXqVlFrONH+XU=", "dev": true, "requires": { "camelcase-keys": "^4.0.0", @@ -15791,7 +15791,7 @@ "minimist-options": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "integrity": "sha1-+6TIGRM54T7PTWG+sD8HAQPz2VQ=", "dev": true, "requires": { "arrify": "^1.0.1", @@ -16566,7 +16566,7 @@ "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "integrity": "sha1-puN0maTZqc+F71hyBE1ikByYia4=", "dev": true }, "deasync": { @@ -16936,7 +16936,7 @@ "deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "integrity": "sha1-Y2jL20Cr8zc7UlrIfkomDDpwCRk=", "dev": true }, "deps-sort": { @@ -18842,7 +18842,7 @@ "express-ws": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz", - "integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==", + "integrity": "sha1-2r2NyXRRZBiQKkH+bjDtlJtNNsQ=", "requires": { "ws": "^5.2.0" }, @@ -20818,7 +20818,7 @@ "genfun": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "integrity": "sha1-ndlxCgaQClxKW/V6yl2k5S/nZTc=", "dev": true }, "gensync": { @@ -21045,7 +21045,7 @@ "get-port": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", - "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "integrity": "sha1-43Nosehjt2KcQ8WjI2Jflc8ksRk=", "dev": true }, "get-stdin": { @@ -21138,7 +21138,7 @@ "git-raw-commits": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", - "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "integrity": "sha1-2Srd90RAwUvMXIPszj+3+KeRGLU=", "dev": true, "requires": { "dargs": "^4.0.1", @@ -21180,7 +21180,7 @@ "meow": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "integrity": "sha1-1IWY9vSxRy81v2MXqVlFrONH+XU=", "dev": true, "requires": { "camelcase-keys": "^4.0.0", @@ -21197,7 +21197,7 @@ "minimist-options": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "integrity": "sha1-+6TIGRM54T7PTWG+sD8HAQPz2VQ=", "dev": true, "requires": { "arrify": "^1.0.1", @@ -21285,7 +21285,7 @@ "git-semver-tags": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz", - "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==", + "integrity": "sha1-SJiKcYrPWTgA+ZYiqVKnfEBb+jQ=", "dev": true, "requires": { "meow": "^4.0.0", @@ -21324,7 +21324,7 @@ "meow": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "integrity": "sha1-1IWY9vSxRy81v2MXqVlFrONH+XU=", "dev": true, "requires": { "camelcase-keys": "^4.0.0", @@ -21341,7 +21341,7 @@ "minimist-options": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "integrity": "sha1-+6TIGRM54T7PTWG+sD8HAQPz2VQ=", "dev": true, "requires": { "arrify": "^1.0.1", @@ -22077,7 +22077,7 @@ "hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "integrity": "sha1-HG7aXBaFxjlCdm15u0Cudzzs2IM=", "dev": true }, "harmony-reflect": { @@ -22730,7 +22730,7 @@ "init-package-json": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "integrity": "sha1-Rf/i9hCoyhNPK9HbVjeyNQcPbL4=", "dev": true, "requires": { "glob": "^7.1.1", @@ -22746,7 +22746,7 @@ "npm-package-arg": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", "dev": true, "requires": { "hosted-git-info": "^2.7.1", @@ -22758,7 +22758,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -29199,7 +29199,7 @@ "lerna": { "version": "3.22.1", "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz", - "integrity": "sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==", + "integrity": "sha1-ggJ6w9qcYn/YvwLM/v+AapjmW2I=", "dev": true, "requires": { "@lerna/add": "3.21.0", @@ -29662,7 +29662,7 @@ "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "integrity": "sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks=", "dev": true, "requires": { "lodash._reinterpolate": "^3.0.0", @@ -29672,7 +29672,7 @@ "lodash.templatesettings": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "integrity": "sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM=", "dev": true, "requires": { "lodash._reinterpolate": "^3.0.0" @@ -30357,7 +30357,7 @@ "min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "integrity": "sha1-pj9oFnOzBXH76LwlaGrnRu76mGk=", "dev": true }, "mini-css-extract-plugin": { @@ -30465,7 +30465,7 @@ "minimist-options": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "integrity": "sha1-wGVXE8U6ii69d/+iR9NCxA8BBhk=", "dev": true, "requires": { "arrify": "^1.0.1", @@ -31272,7 +31272,7 @@ "modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "integrity": "sha1-s5OfpgVUZHTj4+PGPWS9Q7TuYCI=", "dev": true }, "module-deps": { @@ -31619,7 +31619,7 @@ "multimatch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz", - "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==", + "integrity": "sha1-DiU0zGvCONmrZ+G5zV/Nhabb9ws=", "dev": true, "requires": { "array-differ": "^2.0.3", @@ -31666,7 +31666,7 @@ "mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", "dev": true, "requires": { "any-promise": "^1.0.0", @@ -32348,7 +32348,7 @@ "node-fetch-npm": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "integrity": "sha1-ZQfQ4XqewL477FFpWKSXzsVL9aQ=", "dev": true, "requires": { "encoding": "^0.1.11", @@ -35385,7 +35385,7 @@ "npm-lifecycle": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", - "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", + "integrity": "sha1-mILTZCuMgsgVeCoS5qG/7tACYwk=", "dev": true, "requires": { "byline": "^5.0.0", @@ -35401,7 +35401,7 @@ "node-gyp": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", - "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", + "integrity": "sha1-65Ffe2Mck30oLjOu1Ey3oCX2Kj4=", "dev": true, "requires": { "env-paths": "^2.2.0", @@ -35420,7 +35420,7 @@ "nopt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "integrity": "sha1-o3XK2dAv2SEnjZVMIlTVqlfhXkg=", "dev": true, "requires": { "abbrev": "1", @@ -35430,7 +35430,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } @@ -37522,7 +37522,7 @@ "octokit-pagination-methods": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", + "integrity": "sha1-z0cu3J1VEFX573P25CtNu0yAvqQ=", "dev": true }, "on-finished": { @@ -37984,7 +37984,7 @@ "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "integrity": "sha1-3sGdlmKW4c1i1wGlpm7h3ernCAE=", "dev": true, "requires": { "macos-release": "^2.2.0", @@ -39625,7 +39625,7 @@ "prop-types-extra": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "integrity": "sha1-WMO3TL+7ldMEYll1qi8ISDKaAQs=", "requires": { "react-is": "^16.3.2", "warning": "^4.0.0" @@ -39652,7 +39652,7 @@ "protoduck": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "integrity": "sha1-A8NlnKGAB7aaUP2Cp+vMUWJhFR8=", "dev": true, "requires": { "genfun": "^5.0.0" @@ -39864,7 +39864,7 @@ "quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "integrity": "sha1-W4h48ROlgheEjGSCAmxz4bpXcn8=", "dev": true }, "raf-schd": { @@ -40047,7 +40047,7 @@ "react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + "integrity": "sha1-TxonOv38jzSIqMUWv9p4+HI1I2I=" }, "react-overlays": { "version": "5.1.1", @@ -40155,7 +40155,7 @@ "read-cmd-shim": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz", - "integrity": "sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA==", + "integrity": "sha1-h+Q+ulAJi6WjLQzrWDq45DuWHBY=", "dev": true, "requires": { "graceful-fs": "^4.1.2" @@ -40227,7 +40227,7 @@ "read-package-tree": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "integrity": "sha1-oyy2TH8x64pvMe8G+c7fdAaP5jY=", "dev": true, "requires": { "read-package-json": "^2.0.0", @@ -40416,7 +40416,7 @@ "redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "integrity": "sha1-5Ve3mYMWu1PJ8fVvpiY1LGljBZ8=", "dev": true, "requires": { "indent-string": "^4.0.0", @@ -42365,7 +42365,7 @@ "solc": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.4.tgz", - "integrity": "sha512-IVLqAfUkJqgTS0JIgFPeC50ehUeBXu2eE+iU+rqb6UeOyf6w/BB/EsNcTSTpjtUti8BTG/sCd2qVhrWVYy7p0g==", + "integrity": "sha1-nF7YGuBpLj5hTkfNW1ALD5SFuY0=", "dev": true, "requires": { "command-exists": "^1.2.8", @@ -42382,7 +42382,7 @@ "commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "integrity": "sha1-aDfD+2d62ZM9HPukLdFNURfWs54=", "dev": true }, "fs-extra": { @@ -42410,7 +42410,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true }, "tmp": { @@ -42591,7 +42591,7 @@ "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", "dev": true, "requires": { "through": "2" @@ -43076,7 +43076,7 @@ "strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "integrity": "sha1-wy4c7pQLazQyx3G8LFS8znPNMAE=", "dev": true, "requires": { "min-indent": "^1.0.0" @@ -43090,7 +43090,7 @@ "strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "integrity": "sha1-D17XjTJeBCGsb5D38Q5pHWrjrhA=", "dev": true, "requires": { "duplexer": "^0.1.1", @@ -43935,7 +43935,7 @@ "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", "dev": true, "requires": { "pify": "^3.0.0" @@ -44187,7 +44187,7 @@ "text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "integrity": "sha1-GFPkX+45yUXOb2w2stZZtaq8KiY=", "dev": true }, "text-hex": { @@ -44204,7 +44204,7 @@ "thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", "dev": true, "requires": { "any-promise": "^1.0.0" @@ -45284,7 +45284,7 @@ "universal-user-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz", - "integrity": "sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==", + "integrity": "sha1-/Y1st3OmeacJ6WfvgoijH8wD5Vc=", "dev": true, "requires": { "os-name": "^3.1.0" @@ -45923,7 +45923,7 @@ "warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", "requires": { "loose-envify": "^1.0.0" } @@ -47421,7 +47421,7 @@ "write-json-file": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", + "integrity": "sha1-Zbvcns2KFFjhWVJ3DMut/P9f5io=", "dev": true, "requires": { "detect-indent": "^5.0.0", @@ -47444,7 +47444,7 @@ "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "integrity": "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -47457,7 +47457,7 @@ "write-pkg": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", - "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", + "integrity": "sha1-DheP6Xgg04mokovHlTXb5ows/yE=", "dev": true, "requires": { "sort-keys": "^2.0.0", @@ -47467,7 +47467,7 @@ "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", "dev": true, "requires": { "pify": "^3.0.0" @@ -47491,7 +47491,7 @@ "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "integrity": "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=", "dev": true, "requires": { "graceful-fs": "^4.1.11", From 6109266f13e08707b107471b93197f803dbd5aed Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 10:43:14 +0100 Subject: [PATCH 06/16] default class --- apps/remix-ide/src/app.js | 2 +- apps/remix-ide/src/app/components/vertical-icons.js | 2 +- apps/remix-ide/src/app/editor/contextView.js | 2 +- apps/remix-ide/src/app/files/fileManager.js | 2 +- apps/remix-ide/src/app/panels/file-panel.js | 2 +- apps/remix-ide/src/app/panels/main-view.js | 2 +- apps/remix-ide/src/app/panels/terminal.js | 2 +- apps/remix-ide/src/app/plugins/config.ts | 2 +- apps/remix-ide/src/app/state/registry.ts | 2 +- apps/remix-ide/src/app/tabs/analysis-tab.js | 2 +- apps/remix-ide/src/app/tabs/runTab/settings.js | 2 +- apps/remix-ide/src/app/tabs/settings-tab.js | 2 +- apps/remix-ide/src/app/tabs/theme-module.js | 2 +- apps/remix-ide/src/app/udapp/make-udapp.js | 2 +- apps/remix-ide/src/app/ui/persmission-handler.js | 2 +- apps/remix-ide/src/lib/cmdInterpreterAPI.js | 2 +- .../vertical-icons-panel/types/vertical-icons-panel.d.ts | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 282f511464..0698c90ee5 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -18,7 +18,7 @@ import { WalkthroughService } from './walkthroughService' import { OffsetToLineColumnConverter, CompilerMetadata, CompilerArtefacts, FetchAndCompile, CompilerImports, EditorContextListener } from '@remix-project/core-plugin' import migrateFileSystem from './migrateFileSystem' -import { Registry } from './app/state/registry' +import Registry from './app/state/registry' import { ConfigPlugin } from './app/plugins/config' const isElectron = require('is-electron') diff --git a/apps/remix-ide/src/app/components/vertical-icons.js b/apps/remix-ide/src/app/components/vertical-icons.js index 4ffa445719..cd86b1d796 100644 --- a/apps/remix-ide/src/app/components/vertical-icons.js +++ b/apps/remix-ide/src/app/components/vertical-icons.js @@ -5,7 +5,7 @@ import ReactDOM from 'react-dom' import React from 'react' // eslint-disable-line // eslint-disable-next-line no-unused-vars import { RemixUiVerticalIconsPanel } from '@remix-ui/vertical-icons-panel' -import { Registry } from '../state/registry' +import Registry from '../state/registry' // var helper = require('../../lib/helper') const { Plugin } = require('@remixproject/engine') const EventEmitter = require('events') diff --git a/apps/remix-ide/src/app/editor/contextView.js b/apps/remix-ide/src/app/editor/contextView.js index 60f30cbe97..9f355a8bde 100644 --- a/apps/remix-ide/src/app/editor/contextView.js +++ b/apps/remix-ide/src/app/editor/contextView.js @@ -1,6 +1,6 @@ 'use strict' import { sourceMappingDecoder } from '@remix-project/remix-debug' -import { Registry } from '../state/registry' +import Registry from '../state/registry' const yo = require('yo-yo') const css = require('./styles/contextView-styles') diff --git a/apps/remix-ide/src/app/files/fileManager.js b/apps/remix-ide/src/app/files/fileManager.js index 0a0c974697..c526f36600 100644 --- a/apps/remix-ide/src/app/files/fileManager.js +++ b/apps/remix-ide/src/app/files/fileManager.js @@ -4,7 +4,7 @@ import yo from 'yo-yo' import async from 'async' import { Plugin } from '@remixproject/engine' import * as packageJson from '../../../../../package.json' -import { Registry } from '../state/registry' +import Registry from '../state/registry' const EventEmitter = require('events') const toaster = require('../ui/tooltip') const modalDialogCustom = require('../ui/modal-dialog-custom') diff --git a/apps/remix-ide/src/app/panels/file-panel.js b/apps/remix-ide/src/app/panels/file-panel.js index e4d4f1b93d..142ff4296e 100644 --- a/apps/remix-ide/src/app/panels/file-panel.js +++ b/apps/remix-ide/src/app/panels/file-panel.js @@ -4,7 +4,7 @@ import * as packageJson from '../../../../../package.json' import React from 'react' // eslint-disable-line import ReactDOM from 'react-dom' import { FileSystemProvider } from '@remix-ui/workspace' // eslint-disable-line -import { Registry } from '../state/registry' +import Registry from '../state/registry' const { RemixdHandle } = require('../files/remixd-handle.js') const { GitHandle } = require('../files/git-handle.js') const { HardhatHandle } = require('../files/hardhat-handle.js') diff --git a/apps/remix-ide/src/app/panels/main-view.js b/apps/remix-ide/src/app/panels/main-view.js index b5e97ec5e1..bf3a07a35b 100644 --- a/apps/remix-ide/src/app/panels/main-view.js +++ b/apps/remix-ide/src/app/panels/main-view.js @@ -1,4 +1,4 @@ -import { Registry } from '../state/registry' +import Registry from '../state/registry' var yo = require('yo-yo') var EventManager = require('../../lib/events') diff --git a/apps/remix-ide/src/app/panels/terminal.js b/apps/remix-ide/src/app/panels/terminal.js index 048e9b41b8..fbb2e56627 100644 --- a/apps/remix-ide/src/app/panels/terminal.js +++ b/apps/remix-ide/src/app/panels/terminal.js @@ -4,7 +4,7 @@ import ReactDOM from 'react-dom' import { RemixUiTerminal } from '@remix-ui/terminal' // eslint-disable-line import { Plugin } from '@remixproject/engine' import * as packageJson from '../../../../../package.json' -import { Registry } from '../state/registry' +import Registry from '../state/registry' const vm = require('vm') const EventManager = require('../../lib/events') diff --git a/apps/remix-ide/src/app/plugins/config.ts b/apps/remix-ide/src/app/plugins/config.ts index 06c762ec9f..61f7cdd41f 100644 --- a/apps/remix-ide/src/app/plugins/config.ts +++ b/apps/remix-ide/src/app/plugins/config.ts @@ -1,6 +1,6 @@ import { Plugin } from '@remixproject/engine' import QueryParams from '../../lib/query-params' -import { Registry } from '../state/registry' +import Registry from '../state/registry' const profile = { name: 'config', diff --git a/apps/remix-ide/src/app/state/registry.ts b/apps/remix-ide/src/app/state/registry.ts index b96a789736..dafe13654b 100644 --- a/apps/remix-ide/src/app/state/registry.ts +++ b/apps/remix-ide/src/app/state/registry.ts @@ -3,7 +3,7 @@ type registryEntry = { name: string } -export class Registry { +export default class Registry { private static instance: Registry; private state: any diff --git a/apps/remix-ide/src/app/tabs/analysis-tab.js b/apps/remix-ide/src/app/tabs/analysis-tab.js index 9d7a31c1a4..fbddc61b61 100644 --- a/apps/remix-ide/src/app/tabs/analysis-tab.js +++ b/apps/remix-ide/src/app/tabs/analysis-tab.js @@ -4,7 +4,7 @@ import ReactDOM from 'react-dom' import { EventEmitter } from 'events' import {RemixUiStaticAnalyser} from '@remix-ui/static-analyser' // eslint-disable-line import * as packageJson from '../../../../../package.json' -import { Registry } from '../state/registry' +import Registry from '../state/registry' var Renderer = require('../ui/renderer') var EventManager = require('../../lib/events') diff --git a/apps/remix-ide/src/app/tabs/runTab/settings.js b/apps/remix-ide/src/app/tabs/runTab/settings.js index e6d045a8fe..cc5a15409d 100644 --- a/apps/remix-ide/src/app/tabs/runTab/settings.js +++ b/apps/remix-ide/src/app/tabs/runTab/settings.js @@ -1,5 +1,5 @@ import { BN } from 'ethereumjs-util' -import { Registry } from '../../state/registry' +import Registry from '../../state/registry' const $ = require('jquery') const yo = require('yo-yo') const remixLib = require('@remix-project/remix-lib') diff --git a/apps/remix-ide/src/app/tabs/settings-tab.js b/apps/remix-ide/src/app/tabs/settings-tab.js index 3a520f1038..133ae6ee5f 100644 --- a/apps/remix-ide/src/app/tabs/settings-tab.js +++ b/apps/remix-ide/src/app/tabs/settings-tab.js @@ -3,7 +3,7 @@ import { ViewPlugin } from '@remixproject/engine-web' import ReactDOM from 'react-dom' import * as packageJson from '../../../../../package.json' import { RemixUiSettings } from '@remix-ui/settings' //eslint-disable-line -import { Registry } from '../state/registry' +import Registry from '../state/registry' const profile = { name: 'settings', diff --git a/apps/remix-ide/src/app/tabs/theme-module.js b/apps/remix-ide/src/app/tabs/theme-module.js index 08075432ad..d66ed07854 100644 --- a/apps/remix-ide/src/app/tabs/theme-module.js +++ b/apps/remix-ide/src/app/tabs/theme-module.js @@ -2,7 +2,7 @@ import { Plugin } from '@remixproject/engine' import { EventEmitter } from 'events' import QueryParams from '../../lib/query-params' import * as packageJson from '../../../../../package.json' -import { Registry } from '../state/registry' +import Registry from '../state/registry' const _paq = window._paq = window._paq || [] const themes = [ diff --git a/apps/remix-ide/src/app/udapp/make-udapp.js b/apps/remix-ide/src/app/udapp/make-udapp.js index f2098ee47d..cab11136f2 100644 --- a/apps/remix-ide/src/app/udapp/make-udapp.js +++ b/apps/remix-ide/src/app/udapp/make-udapp.js @@ -1,4 +1,4 @@ -import { Registry } from '../state/registry' +import Registry from '../state/registry' var remixLib = require('@remix-project/remix-lib') var yo = require('yo-yo') diff --git a/apps/remix-ide/src/app/ui/persmission-handler.js b/apps/remix-ide/src/app/ui/persmission-handler.js index ab79b2c197..f3f10b5b63 100644 --- a/apps/remix-ide/src/app/ui/persmission-handler.js +++ b/apps/remix-ide/src/app/ui/persmission-handler.js @@ -1,4 +1,4 @@ -import { Registry } from '../state/registry' +import Registry from '../state/registry' /* global localStorage */ const yo = require('yo-yo') diff --git a/apps/remix-ide/src/lib/cmdInterpreterAPI.js b/apps/remix-ide/src/lib/cmdInterpreterAPI.js index 9b04e9b898..d72af0f5a7 100644 --- a/apps/remix-ide/src/lib/cmdInterpreterAPI.js +++ b/apps/remix-ide/src/lib/cmdInterpreterAPI.js @@ -1,6 +1,6 @@ 'use strict' import { CompilerImports } from '@remix-project/core-plugin' -import { Registry } from '../app/state/registry' +import Registry from '../app/state/registry' var yo = require('yo-yo') var async = require('async') var EventManager = require('../lib/events') diff --git a/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts b/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts index 6a99205831..21319d412a 100644 --- a/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts +++ b/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts @@ -2,7 +2,7 @@ /* eslint-disable no-use-before-define */ import { Plugin } from '@remixproject/engine/lib/abstract' import * as packageJson from '../../../../package.json' -import { Registry } from 'apps/remix-ide/src/app/state/registry' +import Registry from 'apps/remix-ide/src/app/state/registry' import { RemixAppManager } from '@remix-ui/plugin-manager' From 8c176cd2d0c93801f4c05e19721019d48004b75d Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 10:45:27 +0100 Subject: [PATCH 07/16] fix lint --- .../vertical-icons-panel/types/vertical-icons-panel.d.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts b/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts index 21319d412a..a46176ad89 100644 --- a/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts +++ b/libs/remix-ui/vertical-icons-panel/types/vertical-icons-panel.d.ts @@ -109,4 +109,3 @@ export class VerticalIcons extends Plugin { view: any } import EventEmitter = require('events') - From 34ba9d4a7899865d5e40ee3dadd552bdd75659c0 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 10:52:54 +0100 Subject: [PATCH 08/16] fix imports --- apps/remix-ide/src/app/ui/renderer.js | 2 +- apps/remix-ide/src/app/ui/txLogger.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/app/ui/renderer.js b/apps/remix-ide/src/app/ui/renderer.js index fc1fd60d70..538f3e393f 100644 --- a/apps/remix-ide/src/app/ui/renderer.js +++ b/apps/remix-ide/src/app/ui/renderer.js @@ -4,7 +4,7 @@ var $ = require('jquery') var yo = require('yo-yo') var css = require('./styles/renderer-styles') -const { Registry } = require('../state/registry') +const Registry = require('../state/registry') /** * After refactor, the renderer is only used to render error/warning diff --git a/apps/remix-ide/src/app/ui/txLogger.js b/apps/remix-ide/src/app/ui/txLogger.js index 63dc0579a7..5a69e1c6a9 100644 --- a/apps/remix-ide/src/app/ui/txLogger.js +++ b/apps/remix-ide/src/app/ui/txLogger.js @@ -9,7 +9,7 @@ var remixLib = require('@remix-project/remix-lib') var EventManager = require('../../lib/events') var helper = require('../../lib/helper') var modalDialog = require('./modal-dialog-custom') -const { Registry } = require('../state/registry') +const Registry = require('../state/registry') var typeConversion = remixLib.execution.typeConversion var css = csjs` From 67cc1bb11a85f372d588c258c91edf045b665846 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 10:57:36 +0100 Subject: [PATCH 09/16] update imports --- apps/remix-ide/src/app/ui/renderer.js | 3 ++- apps/remix-ide/src/app/ui/txLogger.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/app/ui/renderer.js b/apps/remix-ide/src/app/ui/renderer.js index 538f3e393f..26a90441a1 100644 --- a/apps/remix-ide/src/app/ui/renderer.js +++ b/apps/remix-ide/src/app/ui/renderer.js @@ -2,9 +2,10 @@ var $ = require('jquery') var yo = require('yo-yo') +const { default: Registry } = require('../state/registry') var css = require('./styles/renderer-styles') -const Registry = require('../state/registry') + /** * After refactor, the renderer is only used to render error/warning diff --git a/apps/remix-ide/src/app/ui/txLogger.js b/apps/remix-ide/src/app/ui/txLogger.js index 5a69e1c6a9..9ae277c304 100644 --- a/apps/remix-ide/src/app/ui/txLogger.js +++ b/apps/remix-ide/src/app/ui/txLogger.js @@ -9,7 +9,8 @@ var remixLib = require('@remix-project/remix-lib') var EventManager = require('../../lib/events') var helper = require('../../lib/helper') var modalDialog = require('./modal-dialog-custom') -const Registry = require('../state/registry') +const { default: Registry } = require('../state/registry') + var typeConversion = remixLib.execution.typeConversion var css = csjs` From 5653c2e2905855ff4df641ee4e792fe8455f5ed5 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 11:35:55 +0100 Subject: [PATCH 10/16] async --- apps/remix-ide/src/app/plugins/config.ts | 2 + apps/remix-ide/src/app/tabs/compile-tab.js | 8 ++-- .../solidity-compiler/src/app/compiler-api.ts | 4 +- .../src/lib/compiler-container.tsx | 40 +++++++++++-------- 4 files changed, 31 insertions(+), 23 deletions(-) diff --git a/apps/remix-ide/src/app/plugins/config.ts b/apps/remix-ide/src/app/plugins/config.ts index 61f7cdd41f..3d4ce015e4 100644 --- a/apps/remix-ide/src/app/plugins/config.ts +++ b/apps/remix-ide/src/app/plugins/config.ts @@ -21,10 +21,12 @@ export class ConfigPlugin extends Plugin { const param = params[name] ? params[name] : config.get(name) if (param === 'true') return true if (param === 'false') return false + console.log(param) return param } setAppParameter (name: string, value: any) { + console.log('setAppParameter', name, value) const config = Registry.getInstance().get('config').api config.set(name, value) } diff --git a/apps/remix-ide/src/app/tabs/compile-tab.js b/apps/remix-ide/src/app/tabs/compile-tab.js index 2c447d49b3..f409129bb1 100644 --- a/apps/remix-ide/src/app/tabs/compile-tab.js +++ b/apps/remix-ide/src/app/tabs/compile-tab.js @@ -144,12 +144,12 @@ class CompileTab extends CompilerApiMixin(ViewPlugin) { // implements ICompilerA this.queryParams.update(params) } - getAppParameter (name) { - return this.call('config', 'getAppParameter', name) + async getAppParameter (name) { + return await this.call('config', 'getAppParameter', name) } - setAppParameter (name, value) { - this.call('config', 'setAppParameter', name, value) + async setAppParameter (name, value) { + await this.call('config', 'setAppParameter', name, value) } } diff --git a/apps/solidity-compiler/src/app/compiler-api.ts b/apps/solidity-compiler/src/app/compiler-api.ts index 0a456ab6a4..2e81d08ba1 100644 --- a/apps/solidity-compiler/src/app/compiler-api.ts +++ b/apps/solidity-compiler/src/app/compiler-api.ts @@ -291,11 +291,11 @@ export const CompilerApiMixin = (Base) => class extends Base { this.on('themeModule', 'themeChanged', this.data.eventHandlers.onThemeChanged) // Run the compiler instead of trying to save the website - this.data.eventHandlers.onKeyDown = (e) => { + this.data.eventHandlers.onKeyDown = async (e) => { // ctrl+s or command+s if ((e.metaKey || e.ctrlKey) && e.keyCode === 83 && this.currentFile !== '') { e.preventDefault() - this.compileTabLogic.runCompiler(this.getAppParameter('hardhat-compilation')) + this.compileTabLogic.runCompiler(await this.getAppParameter('hardhat-compilation')) } } window.document.addEventListener('keydown', this.data.eventHandlers.onKeyDown) diff --git a/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx b/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx index 2636c9d77c..eabccbd8a8 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx @@ -64,23 +64,29 @@ export const CompilerContainer = (props: CompilerContainerProps) => { }, []) useEffect(() => { - if (compileTabLogic && compileTabLogic.compiler) { - setState(prevState => { - const params = api.getCompilerParameters() - const optimize = params.optimize - const runs = params.runs as string - const evmVersion = params.evmVersion - return { - ...prevState, - hideWarnings: api.getAppParameter('hideWarnings') as boolean || false, - autoCompile: api.getAppParameter('autoCompile') as boolean || false, - includeNightlies: api.getAppParameter('includeNightlies') as boolean || false, - optimize: optimize, - runs: runs, - evmVersion: (evmVersion !== null) && (evmVersion !== 'null') && (evmVersion !== undefined) && (evmVersion !== 'undefined') ? evmVersion : 'default' - } - }) - } + (async () => { + if (compileTabLogic && compileTabLogic.compiler) { + const autocompile = await api.getAppParameter('autoCompile') as boolean || false + const hideWarnings = await api.getAppParameter('hideWarnings') as boolean || false + const includeNightlies = await api.getAppParameter('includeNightlies') as boolean || false + setState(prevState => { + const params = api.getCompilerParameters() + const optimize = params.optimize + const runs = params.runs as string + const evmVersion = params.evmVersion + + return { + ...prevState, + hideWarnings: hideWarnings, + autoCompile: autocompile, + includeNightlies: includeNightlies, + optimize: optimize, + runs: runs, + evmVersion: (evmVersion !== null) && (evmVersion !== 'null') && (evmVersion !== undefined) && (evmVersion !== 'undefined') ? evmVersion : 'default' + } + }) + } + })() }, [compileTabLogic]) useEffect(() => { From f33630e8261162a20a36b247ffd7b122c4f0f86f Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 11:43:35 +0100 Subject: [PATCH 11/16] hideWarnings --- apps/remix-ide/src/app/plugins/config.ts | 2 -- .../solidity-compiler/src/lib/solidity-compiler.tsx | 12 ++++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/remix-ide/src/app/plugins/config.ts b/apps/remix-ide/src/app/plugins/config.ts index 3d4ce015e4..61f7cdd41f 100644 --- a/apps/remix-ide/src/app/plugins/config.ts +++ b/apps/remix-ide/src/app/plugins/config.ts @@ -21,12 +21,10 @@ export class ConfigPlugin extends Plugin { const param = params[name] ? params[name] : config.get(name) if (param === 'true') return true if (param === 'false') return false - console.log(param) return param } setAppParameter (name: string, value: any) { - console.log('setAppParameter', name, value) const config = Registry.getInstance().get('config').api config.set(name, value) } diff --git a/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx b/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx index ba0c420702..11852a17ca 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react' // eslint-disable-line +import React, { useEffect, useState } from 'react' // eslint-disable-line import { SolidityCompilerProps } from './types' import { CompilerContainer } from './compiler-container' // eslint-disable-line import { ContractSelection } from './contract-selection' // eslint-disable-line @@ -31,6 +31,14 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => { } }) const [currentVersion, setCurrentVersion] = useState('') + const [hideWarnings, setHideWarnings] = useState(false) + + useEffect(() => { + (async () => { + const hide = await api.getAppParameter('hideWarnings') as boolean || false + setHideWarnings(hide) + })() + }, []) api.onCurrentFileChanged = (currentFile: string) => { setState(prevState => { @@ -118,7 +126,7 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => { { compileErrors.error && } { compileErrors.error && (compileErrors.error.mode === 'panic') && modal('Error', panicMessage(compileErrors.error.formattedMessage), 'Close', null) } { compileErrors.errors && compileErrors.errors.length && compileErrors.errors.map((err, index) => { - if (api.getAppParameter('hideWarnings')) { + if (hideWarnings) { if (err.severity !== 'warning') { return } From 64df6672c8f215dce9a850992dc59bbee7f268cc Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 11:44:24 +0100 Subject: [PATCH 12/16] lint --- apps/remix-ide/src/app/ui/renderer.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/remix-ide/src/app/ui/renderer.js b/apps/remix-ide/src/app/ui/renderer.js index 26a90441a1..315bc4b22c 100644 --- a/apps/remix-ide/src/app/ui/renderer.js +++ b/apps/remix-ide/src/app/ui/renderer.js @@ -5,8 +5,6 @@ var yo = require('yo-yo') const { default: Registry } = require('../state/registry') var css = require('./styles/renderer-styles') - - /** * After refactor, the renderer is only used to render error/warning * TODO: This don't need to be an object anymore. Simplify and just export the renderError function. From f433b8e6cb164570201c06ec7a57a511fa1f6de4 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 23 Dec 2021 11:48:06 +0100 Subject: [PATCH 13/16] addannotation async --- libs/remix-ui/renderer/src/lib/renderer.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index f83223e14b..eae9e0d4b0 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -68,9 +68,9 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { return result } - const addAnnotation = (file, error) => { - if (file === plugin.call('config', 'getAppParameter', 'currentFile')) { - plugin.call('editor', 'addAnnotation', error, file) + const addAnnotation = async (file, error) => { + if (file === await plugin.call('config', 'getAppParameter', 'currentFile')) { + await plugin.call('editor', 'addAnnotation', error, file) } } From 211287de2ff04a9739d10338423844e5e4077eba Mon Sep 17 00:00:00 2001 From: bunsenstraat Date: Mon, 27 Dec 2021 14:52:23 +0100 Subject: [PATCH 14/16] use config app --- apps/solidity-compiler/src/app/compiler.ts | 11 ++++------- libs/remix-lib/src/types/ICompilerApi.ts | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/apps/solidity-compiler/src/app/compiler.ts b/apps/solidity-compiler/src/app/compiler.ts index 8e4b34b703..a58ff585a2 100644 --- a/apps/solidity-compiler/src/app/compiler.ts +++ b/apps/solidity-compiler/src/app/compiler.ts @@ -59,15 +59,12 @@ export class CompilerClientApi extends CompilerApiMixin(PluginClient) implements } } - getAppParameter (name) { - const param = localStorage.getItem(name) || defaultAppParameters[name] - if (param === 'true') return true - if (param === 'false') return false - return param + async getAppParameter (name) { + return await PluginClient.call('config', 'getAppParameter', name) } - setAppParameter (name, value) { - localStorage.setItem(name, value) + async setAppParameter (name, value) { + await PluginClient.call('config', 'setAppParameter', name, value) } getFileManagerMode () { diff --git a/libs/remix-lib/src/types/ICompilerApi.ts b/libs/remix-lib/src/types/ICompilerApi.ts index de765327ad..1a6166b2aa 100644 --- a/libs/remix-lib/src/types/ICompilerApi.ts +++ b/libs/remix-lib/src/types/ICompilerApi.ts @@ -11,7 +11,7 @@ export interface ICompilerApi { getCompilerParameters: () => ConfigurationSettings setCompilerParameters: (ConfigurationSettings?) => void - getAppParameter: (value: string) => string | boolean + getAppParameter: (value: string) => Promise setAppParameter: (name: string, value: string | boolean) => void getFileManagerMode: () => string From eb6ace7344d9b480dbe5c0547b5f443bb403c721 Mon Sep 17 00:00:00 2001 From: bunsenstraat Date: Mon, 27 Dec 2021 15:05:27 +0100 Subject: [PATCH 15/16] rm local --- apps/remix-ide/src/app/editor/contextView.js | 2 +- apps/remix-ide/src/app/panels/terminal.js | 2 +- apps/remix-ide/src/lib/cmdInterpreterAPI.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/remix-ide/src/app/editor/contextView.js b/apps/remix-ide/src/app/editor/contextView.js index 9f355a8bde..8cb5870400 100644 --- a/apps/remix-ide/src/app/editor/contextView.js +++ b/apps/remix-ide/src/app/editor/contextView.js @@ -15,7 +15,7 @@ const css = require('./styles/contextView-styles') class ContextView { constructor (opts, localRegistry) { this._components = {} - this._components.registry = localRegistry || Registry.getInstance() + this._components.registry = Registry.getInstance() this.contextualListener = opts.contextualListener this.editor = opts.editor this._deps = { diff --git a/apps/remix-ide/src/app/panels/terminal.js b/apps/remix-ide/src/app/panels/terminal.js index fbb2e56627..4837f24203 100644 --- a/apps/remix-ide/src/app/panels/terminal.js +++ b/apps/remix-ide/src/app/panels/terminal.js @@ -68,7 +68,7 @@ class Terminal extends Plugin { } this._view = { el: null, bar: null, input: null, term: null, journal: null, cli: null } this._components = {} - this._components.cmdInterpreter = new CommandInterpreterAPI(this, null, this.blockchain) + this._components.cmdInterpreter = new CommandInterpreterAPI(this, this.blockchain) this._components.autoCompletePopup = new AutoCompletePopup(this._opts) this._commands = {} this.commands = {} diff --git a/apps/remix-ide/src/lib/cmdInterpreterAPI.js b/apps/remix-ide/src/lib/cmdInterpreterAPI.js index d72af0f5a7..530846873d 100644 --- a/apps/remix-ide/src/lib/cmdInterpreterAPI.js +++ b/apps/remix-ide/src/lib/cmdInterpreterAPI.js @@ -9,12 +9,12 @@ var toolTip = require('../app/ui/tooltip') var GistHandler = require('./gist-handler') class CmdInterpreterAPI { - constructor (terminal, localRegistry, blockchain) { + constructor (terminal, blockchain) { const self = this self.event = new EventManager() self.blockchain = blockchain self._components = {} - self._components.registry = localRegistry || Registry.getInstance() + self._components.registry = Registry.getInstance() self._components.terminal = terminal self._components.fileImport = new CompilerImports() self._components.gistHandler = new GistHandler() From 2705f7bd9781dbfab927b2268fa5c9642526d48c Mon Sep 17 00:00:00 2001 From: bunsenstraat Date: Mon, 27 Dec 2021 15:08:26 +0100 Subject: [PATCH 16/16] rm local --- apps/remix-ide/src/app/editor/contextView.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/remix-ide/src/app/editor/contextView.js b/apps/remix-ide/src/app/editor/contextView.js index 8cb5870400..dd3f695763 100644 --- a/apps/remix-ide/src/app/editor/contextView.js +++ b/apps/remix-ide/src/app/editor/contextView.js @@ -13,7 +13,7 @@ const css = require('./styles/contextView-styles') - rename declaration/references */ class ContextView { - constructor (opts, localRegistry) { + constructor (opts) { this._components = {} this._components.registry = Registry.getInstance() this.contextualListener = opts.contextualListener