From ebf502ace2caddebea379491062d26ba59c8b38d Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 04:02:26 -0500 Subject: [PATCH 01/53] decaffeinate decaffeinate . --use-js-modules --loose decaffeinate . --modernize-js Get-ChildItem *.coffee -Recurse | foreach { Remove-Item -Path $_.FullName } --- lib/cursor-position-view.coffee | 63 ------- lib/cursor-position-view.js | 95 ++++++++++ lib/file-info-view.coffee | 118 ------------ lib/file-info-view.js | 184 ++++++++++++++++++ lib/git-view.coffee | 222 ---------------------- lib/git-view.js | 321 ++++++++++++++++++++++++++++++++ lib/launch-mode-view.coffee | 14 -- lib/launch-mode-view.js | 25 +++ lib/main.coffee | 121 ------------ lib/main.js | 169 +++++++++++++++++ lib/selection-count-view.coffee | 58 ------ lib/selection-count-view.js | 91 +++++++++ lib/status-bar-view.coffee | 107 ----------- lib/status-bar-view.js | 155 +++++++++++++++ lib/tile.coffee | 13 -- lib/tile.js | 27 +++ 16 files changed, 1067 insertions(+), 716 deletions(-) delete mode 100644 lib/cursor-position-view.coffee create mode 100644 lib/cursor-position-view.js delete mode 100644 lib/file-info-view.coffee create mode 100644 lib/file-info-view.js delete mode 100644 lib/git-view.coffee create mode 100644 lib/git-view.js delete mode 100644 lib/launch-mode-view.coffee create mode 100644 lib/launch-mode-view.js delete mode 100644 lib/main.coffee create mode 100644 lib/main.js delete mode 100644 lib/selection-count-view.coffee create mode 100644 lib/selection-count-view.js delete mode 100644 lib/status-bar-view.coffee create mode 100644 lib/status-bar-view.js delete mode 100644 lib/tile.coffee create mode 100644 lib/tile.js diff --git a/lib/cursor-position-view.coffee b/lib/cursor-position-view.coffee deleted file mode 100644 index 847edd2..0000000 --- a/lib/cursor-position-view.coffee +++ /dev/null @@ -1,63 +0,0 @@ -{Disposable} = require 'atom' - -module.exports = -class CursorPositionView - constructor: -> - @viewUpdatePending = false - - @element = document.createElement('status-bar-cursor') - @element.classList.add('cursor-position', 'inline-block') - @goToLineLink = document.createElement('a') - @goToLineLink.classList.add('inline-block') - @element.appendChild(@goToLineLink) - - @formatString = atom.config.get('status-bar.cursorPositionFormat') ? '%L:%C' - - @activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor (activeEditor) => @subscribeToActiveTextEditor() - - @subscribeToConfig() - @subscribeToActiveTextEditor() - - @tooltip = atom.tooltips.add(@element, title: => "Line #{@row}, Column #{@column}") - - @handleClick() - - destroy: -> - @activeItemSubscription.dispose() - @cursorSubscription?.dispose() - @tooltip.dispose() - @configSubscription?.dispose() - @clickSubscription.dispose() - @updateSubscription?.dispose() - - subscribeToActiveTextEditor: -> - @cursorSubscription?.dispose() - selectionsMarkerLayer = atom.workspace.getActiveTextEditor()?.selectionsMarkerLayer - @cursorSubscription = selectionsMarkerLayer?.onDidUpdate(@scheduleUpdate.bind(this)) - @scheduleUpdate() - - subscribeToConfig: -> - @configSubscription?.dispose() - @configSubscription = atom.config.observe 'status-bar.cursorPositionFormat', (value) => - @formatString = value ? '%L:%C' - @scheduleUpdate() - - handleClick: -> - clickHandler = -> atom.commands.dispatch(atom.views.getView(atom.workspace.getActiveTextEditor()), 'go-to-line:toggle') - @element.addEventListener('click', clickHandler) - @clickSubscription = new Disposable => @element.removeEventListener('click', clickHandler) - - scheduleUpdate: -> - return if @viewUpdatePending - - @viewUpdatePending = true - @updateSubscription = atom.views.updateDocument => - @viewUpdatePending = false - if position = atom.workspace.getActiveTextEditor()?.getCursorBufferPosition() - @row = position.row + 1 - @column = position.column + 1 - @goToLineLink.textContent = @formatString.replace('%L', @row).replace('%C', @column) - @element.classList.remove('hide') - else - @goToLineLink.textContent = '' - @element.classList.add('hide') diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js new file mode 100644 index 0000000..897246e --- /dev/null +++ b/lib/cursor-position-view.js @@ -0,0 +1,95 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS103: Rewrite code to no longer use __guard__ + * DS104: Avoid inline assignments + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let CursorPositionView; +import { Disposable } from 'atom'; + +export default CursorPositionView = class CursorPositionView { + constructor() { + let left; + this.viewUpdatePending = false; + + this.element = document.createElement('status-bar-cursor'); + this.element.classList.add('cursor-position', 'inline-block'); + this.goToLineLink = document.createElement('a'); + this.goToLineLink.classList.add('inline-block'); + this.element.appendChild(this.goToLineLink); + + this.formatString = (left = atom.config.get('status-bar.cursorPositionFormat')) != null ? left : '%L:%C'; + + this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor(activeEditor => this.subscribeToActiveTextEditor()); + + this.subscribeToConfig(); + this.subscribeToActiveTextEditor(); + + this.tooltip = atom.tooltips.add(this.element, {title: () => `Line ${this.row}, Column ${this.column}`}); + + this.handleClick(); + } + + destroy() { + this.activeItemSubscription.dispose(); + if (this.cursorSubscription != null) { + this.cursorSubscription.dispose(); + } + this.tooltip.dispose(); + if (this.configSubscription != null) { + this.configSubscription.dispose(); + } + this.clickSubscription.dispose(); + return (this.updateSubscription != null ? this.updateSubscription.dispose() : undefined); + } + + subscribeToActiveTextEditor() { + if (this.cursorSubscription != null) { + this.cursorSubscription.dispose(); + } + const selectionsMarkerLayer = __guard__(atom.workspace.getActiveTextEditor(), x => x.selectionsMarkerLayer); + this.cursorSubscription = selectionsMarkerLayer != null ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) : undefined; + return this.scheduleUpdate(); + } + + subscribeToConfig() { + if (this.configSubscription != null) { + this.configSubscription.dispose(); + } + return this.configSubscription = atom.config.observe('status-bar.cursorPositionFormat', value => { + this.formatString = value != null ? value : '%L:%C'; + return this.scheduleUpdate(); + }); + } + + handleClick() { + const clickHandler = () => atom.commands.dispatch(atom.views.getView(atom.workspace.getActiveTextEditor()), 'go-to-line:toggle'); + this.element.addEventListener('click', clickHandler); + return this.clickSubscription = new Disposable(() => this.element.removeEventListener('click', clickHandler)); + } + + scheduleUpdate() { + if (this.viewUpdatePending) { return; } + + this.viewUpdatePending = true; + return this.updateSubscription = atom.views.updateDocument(() => { + let position; + this.viewUpdatePending = false; + if (position = __guard__(atom.workspace.getActiveTextEditor(), x => x.getCursorBufferPosition())) { + this.row = position.row + 1; + this.column = position.column + 1; + this.goToLineLink.textContent = this.formatString.replace('%L', this.row).replace('%C', this.column); + return this.element.classList.remove('hide'); + } else { + this.goToLineLink.textContent = ''; + return this.element.classList.add('hide'); + } + }); + } +}; + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} \ No newline at end of file diff --git a/lib/file-info-view.coffee b/lib/file-info-view.coffee deleted file mode 100644 index 3665494..0000000 --- a/lib/file-info-view.coffee +++ /dev/null @@ -1,118 +0,0 @@ -{Disposable} = require 'atom' -url = require 'url' -fs = require 'fs-plus' - -module.exports = -class FileInfoView - constructor: -> - @element = document.createElement('status-bar-file') - @element.classList.add('file-info', 'inline-block') - - @currentPath = document.createElement('a') - @currentPath.classList.add('current-path') - @element.appendChild(@currentPath) - @element.currentPath = @currentPath - - @element.getActiveItem = @getActiveItem.bind(this) - - @activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem => - @subscribeToActiveItem() - @subscribeToActiveItem() - - @registerTooltip() - clickHandler = (event) => - isShiftClick = event.shiftKey - @showCopiedTooltip(isShiftClick) - text = @getActiveItemCopyText(isShiftClick) - atom.clipboard.write(text) - setTimeout => - @clearCopiedTooltip() - , 2000 - - @element.addEventListener('click', clickHandler) - @clickSubscription = new Disposable => @element.removeEventListener('click', clickHandler) - - registerTooltip: -> - @tooltip = atom.tooltips.add(@element, title: -> - "Click to copy absolute file path (Shift + Click to copy relative path)") - - clearCopiedTooltip: -> - @copiedTooltip?.dispose() - @registerTooltip() - - showCopiedTooltip: (copyRelativePath) -> - @tooltip?.dispose() - @copiedTooltip?.dispose() - text = @getActiveItemCopyText(copyRelativePath) - @copiedTooltip = atom.tooltips.add @element, - title: "Copied: #{text}" - trigger: 'manual' - delay: - show: 0 - - getActiveItemCopyText: (copyRelativePath) -> - activeItem = @getActiveItem() - path = activeItem?.getPath?() - return activeItem?.getTitle?() or '' if not path? - - # Make sure we try to relativize before parsing URLs. - if copyRelativePath - relativized = atom.project.relativize(path) - if relativized isnt path - return relativized - - # An item path could be a url, we only want to copy the `path` part - if path?.indexOf('://') > 0 - path = url.parse(path).path - path - - subscribeToActiveItem: -> - @modifiedSubscription?.dispose() - @titleSubscription?.dispose() - - if activeItem = @getActiveItem() - @updateCallback ?= => @update() - - if typeof activeItem.onDidChangeTitle is 'function' - @titleSubscription = activeItem.onDidChangeTitle(@updateCallback) - else if typeof activeItem.on is 'function' - #TODO Remove once title-changed event support is removed - activeItem.on('title-changed', @updateCallback) - @titleSubscription = dispose: => - activeItem.off?('title-changed', @updateCallback) - - @modifiedSubscription = activeItem.onDidChangeModified?(@updateCallback) - - @update() - - destroy: -> - @activeItemSubscription.dispose() - @titleSubscription?.dispose() - @modifiedSubscription?.dispose() - @clickSubscription?.dispose() - @copiedTooltip?.dispose() - @tooltip?.dispose() - - getActiveItem: -> - atom.workspace.getCenter().getActivePaneItem() - - update: -> - @updatePathText() - @updateBufferHasModifiedText(@getActiveItem()?.isModified?()) - - updateBufferHasModifiedText: (isModified) -> - if isModified - @element.classList.add('buffer-modified') - @isModified = true - else - @element.classList.remove('buffer-modified') - @isModified = false - - updatePathText: -> - if path = @getActiveItem()?.getPath?() - relativized = atom.project.relativize(path) - @currentPath.textContent = if relativized? then fs.tildify(relativized) else path - else if title = @getActiveItem()?.getTitle?() - @currentPath.textContent = title - else - @currentPath.textContent = '' diff --git a/lib/file-info-view.js b/lib/file-info-view.js new file mode 100644 index 0000000..3c42669 --- /dev/null +++ b/lib/file-info-view.js @@ -0,0 +1,184 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS103: Rewrite code to no longer use __guard__ + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let FileInfoView; +import { Disposable } from 'atom'; +import url from 'url'; +import fs from 'fs-plus'; + +export default FileInfoView = class FileInfoView { + constructor() { + this.element = document.createElement('status-bar-file'); + this.element.classList.add('file-info', 'inline-block'); + + this.currentPath = document.createElement('a'); + this.currentPath.classList.add('current-path'); + this.element.appendChild(this.currentPath); + this.element.currentPath = this.currentPath; + + this.element.getActiveItem = this.getActiveItem.bind(this); + + this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { + return this.subscribeToActiveItem(); + }); + this.subscribeToActiveItem(); + + this.registerTooltip(); + const clickHandler = event => { + const isShiftClick = event.shiftKey; + this.showCopiedTooltip(isShiftClick); + const text = this.getActiveItemCopyText(isShiftClick); + atom.clipboard.write(text); + return setTimeout(() => { + return this.clearCopiedTooltip(); + } + , 2000); + }; + + this.element.addEventListener('click', clickHandler); + this.clickSubscription = new Disposable(() => this.element.removeEventListener('click', clickHandler)); + } + + registerTooltip() { + return this.tooltip = atom.tooltips.add(this.element, { title() { + return "Click to copy absolute file path (Shift + Click to copy relative path)"; + } + }); + } + + clearCopiedTooltip() { + if (this.copiedTooltip != null) { + this.copiedTooltip.dispose(); + } + return this.registerTooltip(); + } + + showCopiedTooltip(copyRelativePath) { + if (this.tooltip != null) { + this.tooltip.dispose(); + } + if (this.copiedTooltip != null) { + this.copiedTooltip.dispose(); + } + const text = this.getActiveItemCopyText(copyRelativePath); + return this.copiedTooltip = atom.tooltips.add(this.element, { + title: `Copied: ${text}`, + trigger: 'manual', + delay: { + show: 0 + } + } + ); + } + + getActiveItemCopyText(copyRelativePath) { + const activeItem = this.getActiveItem(); + let path = __guardMethod__(activeItem, 'getPath', o => o.getPath()); + if ((path == null)) { return __guardMethod__(activeItem, 'getTitle', o1 => o1.getTitle()) || ''; } + + // Make sure we try to relativize before parsing URLs. + if (copyRelativePath) { + const relativized = atom.project.relativize(path); + if (relativized !== path) { + return relativized; + } + } + + // An item path could be a url, we only want to copy the `path` part + if ((path != null ? path.indexOf('://') : undefined) > 0) { + ({ + path + } = url.parse(path)); + } + return path; + } + + subscribeToActiveItem() { + let activeItem; + if (this.modifiedSubscription != null) { + this.modifiedSubscription.dispose(); + } + if (this.titleSubscription != null) { + this.titleSubscription.dispose(); + } + + if (activeItem = this.getActiveItem()) { + if (this.updateCallback == null) { this.updateCallback = () => this.update(); } + + if (typeof activeItem.onDidChangeTitle === 'function') { + this.titleSubscription = activeItem.onDidChangeTitle(this.updateCallback); + } else if (typeof activeItem.on === 'function') { + //TODO Remove once title-changed event support is removed + activeItem.on('title-changed', this.updateCallback); + this.titleSubscription = { dispose: () => { + return (typeof activeItem.off === 'function' ? activeItem.off('title-changed', this.updateCallback) : undefined); + } + }; + } + + this.modifiedSubscription = typeof activeItem.onDidChangeModified === 'function' ? activeItem.onDidChangeModified(this.updateCallback) : undefined; + } + + return this.update(); + } + + destroy() { + this.activeItemSubscription.dispose(); + if (this.titleSubscription != null) { + this.titleSubscription.dispose(); + } + if (this.modifiedSubscription != null) { + this.modifiedSubscription.dispose(); + } + if (this.clickSubscription != null) { + this.clickSubscription.dispose(); + } + if (this.copiedTooltip != null) { + this.copiedTooltip.dispose(); + } + return (this.tooltip != null ? this.tooltip.dispose() : undefined); + } + + getActiveItem() { + return atom.workspace.getCenter().getActivePaneItem(); + } + + update() { + this.updatePathText(); + return this.updateBufferHasModifiedText(__guardMethod__(this.getActiveItem(), 'isModified', o => o.isModified())); + } + + updateBufferHasModifiedText(isModified) { + if (isModified) { + this.element.classList.add('buffer-modified'); + return this.isModified = true; + } else { + this.element.classList.remove('buffer-modified'); + return this.isModified = false; + } + } + + updatePathText() { + let path, title; + if (path = __guardMethod__(this.getActiveItem(), 'getPath', o => o.getPath())) { + const relativized = atom.project.relativize(path); + return this.currentPath.textContent = (relativized != null) ? fs.tildify(relativized) : path; + } else if ((title = __guardMethod__(this.getActiveItem(), 'getTitle', o1 => o1.getTitle()))) { + return this.currentPath.textContent = title; + } else { + return this.currentPath.textContent = ''; + } + } +}; + +function __guardMethod__(obj, methodName, transform) { + if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { + return transform(obj, methodName); + } else { + return undefined; + } +} \ No newline at end of file diff --git a/lib/git-view.coffee b/lib/git-view.coffee deleted file mode 100644 index 624ab17..0000000 --- a/lib/git-view.coffee +++ /dev/null @@ -1,222 +0,0 @@ -_ = require "underscore-plus" -{CompositeDisposable, GitRepositoryAsync} = require "atom" - -module.exports = -class GitView - constructor: -> - @element = document.createElement('status-bar-git') - @element.classList.add('git-view') - - @createBranchArea() - @createCommitsArea() - @createStatusArea() - - @activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem => - @subscribeToActiveItem() - @projectPathSubscription = atom.project.onDidChangePaths => - @subscribeToRepositories() - @subscribeToRepositories() - @subscribeToActiveItem() - - createBranchArea: -> - @branchArea = document.createElement('div') - @branchArea.classList.add('git-branch', 'inline-block') - @element.appendChild(@branchArea) - @element.branchArea = @branchArea - - branchIcon = document.createElement('span') - branchIcon.classList.add('icon', 'icon-git-branch') - @branchArea.appendChild(branchIcon) - - @branchLabel = document.createElement('span') - @branchLabel.classList.add('branch-label') - @branchArea.appendChild(@branchLabel) - @element.branchLabel = @branchLabel - - createCommitsArea: -> - @commitsArea = document.createElement('div') - @commitsArea.classList.add('git-commits', 'inline-block') - @element.appendChild(@commitsArea) - - @commitsAhead = document.createElement('span') - @commitsAhead.classList.add('icon', 'icon-arrow-up', 'commits-ahead-label') - @commitsArea.appendChild(@commitsAhead) - - @commitsBehind = document.createElement('span') - @commitsBehind.classList.add('icon', 'icon-arrow-down', 'commits-behind-label') - @commitsArea.appendChild(@commitsBehind) - - createStatusArea: -> - @gitStatus = document.createElement('div') - @gitStatus.classList.add('git-status', 'inline-block') - @element.appendChild(@gitStatus) - - @gitStatusIcon = document.createElement('span') - @gitStatusIcon.classList.add('icon') - @gitStatus.appendChild(@gitStatusIcon) - @element.gitStatusIcon = @gitStatusIcon - - subscribeToActiveItem: -> - activeItem = @getActiveItem() - - @savedSubscription?.dispose() - @savedSubscription = activeItem?.onDidSave? => @update() - - @update() - - subscribeToRepositories: -> - @repositorySubscriptions?.dispose() - @repositorySubscriptions = new CompositeDisposable - - for repo in atom.project.getRepositories() when repo? - @repositorySubscriptions.add repo.onDidChangeStatus ({path, status}) => - @update() if path is @getActiveItemPath() - @repositorySubscriptions.add repo.onDidChangeStatuses => - @update() - - destroy: -> - @activeItemSubscription?.dispose() - @projectPathSubscription?.dispose() - @savedSubscription?.dispose() - @repositorySubscriptions?.dispose() - @branchTooltipDisposable?.dispose() - @commitsAheadTooltipDisposable?.dispose() - @commitsBehindTooltipDisposable?.dispose() - @statusTooltipDisposable?.dispose() - - getActiveItemPath: -> - @getActiveItem()?.getPath?() - - getRepositoryForActiveItem: -> - [rootDir] = atom.project.relativizePath(@getActiveItemPath()) - rootDirIndex = atom.project.getPaths().indexOf(rootDir) - if rootDirIndex >= 0 - atom.project.getRepositories()[rootDirIndex] - else - for repo in atom.project.getRepositories() when repo - return repo - - getActiveItem: -> - atom.workspace.getCenter().getActivePaneItem() - - update: -> - repo = @getRepositoryForActiveItem() - @updateBranchText(repo) - @updateAheadBehindCount(repo) - @updateStatusText(repo) - - updateBranchText: (repo) -> - if @showGitInformation(repo) - head = repo.getShortHead(@getActiveItemPath()) - @branchLabel.textContent = head - @branchArea.style.display = '' if head - @branchTooltipDisposable?.dispose() - @branchTooltipDisposable = atom.tooltips.add @branchArea, title: "On branch #{head}" - else - @branchArea.style.display = 'none' - - showGitInformation: (repo) -> - return false unless repo? - - if itemPath = @getActiveItemPath() - atom.project.contains(itemPath) - else - not @getActiveItem()? - - updateAheadBehindCount: (repo) -> - unless @showGitInformation(repo) - @commitsArea.style.display = 'none' - return - - itemPath = @getActiveItemPath() - {ahead, behind} = repo.getCachedUpstreamAheadBehindCount(itemPath) - if ahead > 0 - @commitsAhead.textContent = ahead - @commitsAhead.style.display = '' - @commitsAheadTooltipDisposable?.dispose() - @commitsAheadTooltipDisposable = atom.tooltips.add @commitsAhead, title: "#{_.pluralize(ahead, 'commit')} ahead of upstream" - else - @commitsAhead.style.display = 'none' - - if behind > 0 - @commitsBehind.textContent = behind - @commitsBehind.style.display = '' - @commitsBehindTooltipDisposable?.dispose() - @commitsBehindTooltipDisposable = atom.tooltips.add @commitsBehind, title: "#{_.pluralize(behind, 'commit')} behind upstream" - else - @commitsBehind.style.display = 'none' - - if ahead > 0 or behind > 0 - @commitsArea.style.display = '' - else - @commitsArea.style.display = 'none' - - clearStatus: -> - @gitStatusIcon.classList.remove('icon-diff-modified', 'status-modified', 'icon-diff-added', 'status-added', 'icon-diff-ignored', 'status-ignored') - - updateAsNewFile: -> - @clearStatus() - - @gitStatusIcon.classList.add('icon-diff-added', 'status-added') - if textEditor = atom.workspace.getActiveTextEditor() - @gitStatusIcon.textContent = "+#{textEditor.getLineCount()}" - @updateTooltipText("#{_.pluralize(textEditor.getLineCount(), 'line')} in this new file not yet committed") - else - @gitStatusIcon.textContent = '' - @updateTooltipText() - - @gitStatus.style.display = '' - - updateAsModifiedFile: (repo, path) -> - stats = repo.getDiffStats(path) - @clearStatus() - - @gitStatusIcon.classList.add('icon-diff-modified', 'status-modified') - if stats.added and stats.deleted - @gitStatusIcon.textContent = "+#{stats.added}, -#{stats.deleted}" - @updateTooltipText("#{_.pluralize(stats.added, 'line')} added and #{_.pluralize(stats.deleted, 'line')} deleted in this file not yet committed") - else if stats.added - @gitStatusIcon.textContent = "+#{stats.added}" - @updateTooltipText("#{_.pluralize(stats.added, 'line')} added to this file not yet committed") - else if stats.deleted - @gitStatusIcon.textContent = "-#{stats.deleted}" - @updateTooltipText("#{_.pluralize(stats.deleted, 'line')} deleted from this file not yet committed") - else - @gitStatusIcon.textContent = '' - @updateTooltipText() - - @gitStatus.style.display = '' - - updateAsIgnoredFile: -> - @clearStatus() - - @gitStatusIcon.classList.add('icon-diff-ignored', 'status-ignored') - @gitStatusIcon.textContent = '' - @gitStatus.style.display = '' - @updateTooltipText("File is ignored by git") - - updateTooltipText: (text) -> - @statusTooltipDisposable?.dispose() - if text - @statusTooltipDisposable = atom.tooltips.add @gitStatusIcon, title: text - - updateStatusText: (repo) -> - hideStatus = => - @clearStatus() - @gitStatus.style.display = 'none' - - itemPath = @getActiveItemPath() - if @showGitInformation(repo) and itemPath? - status = repo.getCachedPathStatus(itemPath) ? 0 - if repo.isStatusNew(status) - return @updateAsNewFile() - - if repo.isStatusModified(status) - return @updateAsModifiedFile(repo, itemPath) - - if repo.isPathIgnored(itemPath) - @updateAsIgnoredFile() - else - hideStatus() - else - hideStatus() diff --git a/lib/git-view.js b/lib/git-view.js new file mode 100644 index 0000000..4b9b83b --- /dev/null +++ b/lib/git-view.js @@ -0,0 +1,321 @@ +/* + * decaffeinate suggestions: + * DS101: Remove unnecessary use of Array.from + * DS102: Remove unnecessary code created because of implicit returns + * DS103: Rewrite code to no longer use __guard__ + * DS104: Avoid inline assignments + * DS205: Consider reworking code to avoid use of IIFEs + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let GitView; +import _ from "underscore-plus"; +import { CompositeDisposable, GitRepositoryAsync } from "atom"; + +export default GitView = class GitView { + constructor() { + this.element = document.createElement('status-bar-git'); + this.element.classList.add('git-view'); + + this.createBranchArea(); + this.createCommitsArea(); + this.createStatusArea(); + + this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { + return this.subscribeToActiveItem(); + }); + this.projectPathSubscription = atom.project.onDidChangePaths(() => { + return this.subscribeToRepositories(); + }); + this.subscribeToRepositories(); + this.subscribeToActiveItem(); + } + + createBranchArea() { + this.branchArea = document.createElement('div'); + this.branchArea.classList.add('git-branch', 'inline-block'); + this.element.appendChild(this.branchArea); + this.element.branchArea = this.branchArea; + + const branchIcon = document.createElement('span'); + branchIcon.classList.add('icon', 'icon-git-branch'); + this.branchArea.appendChild(branchIcon); + + this.branchLabel = document.createElement('span'); + this.branchLabel.classList.add('branch-label'); + this.branchArea.appendChild(this.branchLabel); + return this.element.branchLabel = this.branchLabel; + } + + createCommitsArea() { + this.commitsArea = document.createElement('div'); + this.commitsArea.classList.add('git-commits', 'inline-block'); + this.element.appendChild(this.commitsArea); + + this.commitsAhead = document.createElement('span'); + this.commitsAhead.classList.add('icon', 'icon-arrow-up', 'commits-ahead-label'); + this.commitsArea.appendChild(this.commitsAhead); + + this.commitsBehind = document.createElement('span'); + this.commitsBehind.classList.add('icon', 'icon-arrow-down', 'commits-behind-label'); + return this.commitsArea.appendChild(this.commitsBehind); + } + + createStatusArea() { + this.gitStatus = document.createElement('div'); + this.gitStatus.classList.add('git-status', 'inline-block'); + this.element.appendChild(this.gitStatus); + + this.gitStatusIcon = document.createElement('span'); + this.gitStatusIcon.classList.add('icon'); + this.gitStatus.appendChild(this.gitStatusIcon); + return this.element.gitStatusIcon = this.gitStatusIcon; + } + + subscribeToActiveItem() { + const activeItem = this.getActiveItem(); + + if (this.savedSubscription != null) { + this.savedSubscription.dispose(); + } + this.savedSubscription = __guardMethod__(activeItem, 'onDidSave', o => o.onDidSave(() => this.update())); + + return this.update(); + } + + subscribeToRepositories() { + if (this.repositorySubscriptions != null) { + this.repositorySubscriptions.dispose(); + } + this.repositorySubscriptions = new CompositeDisposable; + + return (() => { + const result = []; + for (let repo of atom.project.getRepositories()) { + if (repo != null) { + this.repositorySubscriptions.add(repo.onDidChangeStatus(({path, status}) => { + if (path === this.getActiveItemPath()) { return this.update(); } + }) + ); + result.push(this.repositorySubscriptions.add(repo.onDidChangeStatuses(() => { + return this.update(); + }) + )); + } + } + return result; + })(); + } + + destroy() { + if (this.activeItemSubscription != null) { + this.activeItemSubscription.dispose(); + } + if (this.projectPathSubscription != null) { + this.projectPathSubscription.dispose(); + } + if (this.savedSubscription != null) { + this.savedSubscription.dispose(); + } + if (this.repositorySubscriptions != null) { + this.repositorySubscriptions.dispose(); + } + if (this.branchTooltipDisposable != null) { + this.branchTooltipDisposable.dispose(); + } + if (this.commitsAheadTooltipDisposable != null) { + this.commitsAheadTooltipDisposable.dispose(); + } + if (this.commitsBehindTooltipDisposable != null) { + this.commitsBehindTooltipDisposable.dispose(); + } + return (this.statusTooltipDisposable != null ? this.statusTooltipDisposable.dispose() : undefined); + } + + getActiveItemPath() { + return __guardMethod__(this.getActiveItem(), 'getPath', o => o.getPath()); + } + + getRepositoryForActiveItem() { + const [rootDir] = Array.from(atom.project.relativizePath(this.getActiveItemPath())); + const rootDirIndex = atom.project.getPaths().indexOf(rootDir); + if (rootDirIndex >= 0) { + return atom.project.getRepositories()[rootDirIndex]; + } else { + for (let repo of atom.project.getRepositories()) { + if (repo) { + return repo; + } + } + } + } + + getActiveItem() { + return atom.workspace.getCenter().getActivePaneItem(); + } + + update() { + const repo = this.getRepositoryForActiveItem(); + this.updateBranchText(repo); + this.updateAheadBehindCount(repo); + return this.updateStatusText(repo); + } + + updateBranchText(repo) { + if (this.showGitInformation(repo)) { + const head = repo.getShortHead(this.getActiveItemPath()); + this.branchLabel.textContent = head; + if (head) { this.branchArea.style.display = ''; } + if (this.branchTooltipDisposable != null) { + this.branchTooltipDisposable.dispose(); + } + return this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, {title: `On branch ${head}`}); + } else { + return this.branchArea.style.display = 'none'; + } + } + + showGitInformation(repo) { + let itemPath; + if (repo == null) { return false; } + + if ((itemPath = this.getActiveItemPath())) { + return atom.project.contains(itemPath); + } else { + return (this.getActiveItem() == null); + } + } + + updateAheadBehindCount(repo) { + if (!this.showGitInformation(repo)) { + this.commitsArea.style.display = 'none'; + return; + } + + const itemPath = this.getActiveItemPath(); + const {ahead, behind} = repo.getCachedUpstreamAheadBehindCount(itemPath); + if (ahead > 0) { + this.commitsAhead.textContent = ahead; + this.commitsAhead.style.display = ''; + if (this.commitsAheadTooltipDisposable != null) { + this.commitsAheadTooltipDisposable.dispose(); + } + this.commitsAheadTooltipDisposable = atom.tooltips.add(this.commitsAhead, {title: `${_.pluralize(ahead, 'commit')} ahead of upstream`}); + } else { + this.commitsAhead.style.display = 'none'; + } + + if (behind > 0) { + this.commitsBehind.textContent = behind; + this.commitsBehind.style.display = ''; + if (this.commitsBehindTooltipDisposable != null) { + this.commitsBehindTooltipDisposable.dispose(); + } + this.commitsBehindTooltipDisposable = atom.tooltips.add(this.commitsBehind, {title: `${_.pluralize(behind, 'commit')} behind upstream`}); + } else { + this.commitsBehind.style.display = 'none'; + } + + if ((ahead > 0) || (behind > 0)) { + return this.commitsArea.style.display = ''; + } else { + return this.commitsArea.style.display = 'none'; + } + } + + clearStatus() { + return this.gitStatusIcon.classList.remove('icon-diff-modified', 'status-modified', 'icon-diff-added', 'status-added', 'icon-diff-ignored', 'status-ignored'); + } + + updateAsNewFile() { + let textEditor; + this.clearStatus(); + + this.gitStatusIcon.classList.add('icon-diff-added', 'status-added'); + if (textEditor = atom.workspace.getActiveTextEditor()) { + this.gitStatusIcon.textContent = `+${textEditor.getLineCount()}`; + this.updateTooltipText(`${_.pluralize(textEditor.getLineCount(), 'line')} in this new file not yet committed`); + } else { + this.gitStatusIcon.textContent = ''; + this.updateTooltipText(); + } + + return this.gitStatus.style.display = ''; + } + + updateAsModifiedFile(repo, path) { + const stats = repo.getDiffStats(path); + this.clearStatus(); + + this.gitStatusIcon.classList.add('icon-diff-modified', 'status-modified'); + if (stats.added && stats.deleted) { + this.gitStatusIcon.textContent = `+${stats.added}, -${stats.deleted}`; + this.updateTooltipText(`${_.pluralize(stats.added, 'line')} added and ${_.pluralize(stats.deleted, 'line')} deleted in this file not yet committed`); + } else if (stats.added) { + this.gitStatusIcon.textContent = `+${stats.added}`; + this.updateTooltipText(`${_.pluralize(stats.added, 'line')} added to this file not yet committed`); + } else if (stats.deleted) { + this.gitStatusIcon.textContent = `-${stats.deleted}`; + this.updateTooltipText(`${_.pluralize(stats.deleted, 'line')} deleted from this file not yet committed`); + } else { + this.gitStatusIcon.textContent = ''; + this.updateTooltipText(); + } + + return this.gitStatus.style.display = ''; + } + + updateAsIgnoredFile() { + this.clearStatus(); + + this.gitStatusIcon.classList.add('icon-diff-ignored', 'status-ignored'); + this.gitStatusIcon.textContent = ''; + this.gitStatus.style.display = ''; + return this.updateTooltipText("File is ignored by git"); + } + + updateTooltipText(text) { + if (this.statusTooltipDisposable != null) { + this.statusTooltipDisposable.dispose(); + } + if (text) { + return this.statusTooltipDisposable = atom.tooltips.add(this.gitStatusIcon, {title: text}); + } + } + + updateStatusText(repo) { + const hideStatus = () => { + this.clearStatus(); + return this.gitStatus.style.display = 'none'; + }; + + const itemPath = this.getActiveItemPath(); + if (this.showGitInformation(repo) && (itemPath != null)) { + let left; + const status = (left = repo.getCachedPathStatus(itemPath)) != null ? left : 0; + if (repo.isStatusNew(status)) { + return this.updateAsNewFile(); + } + + if (repo.isStatusModified(status)) { + return this.updateAsModifiedFile(repo, itemPath); + } + + if (repo.isPathIgnored(itemPath)) { + return this.updateAsIgnoredFile(); + } else { + return hideStatus(); + } + } else { + return hideStatus(); + } + } +}; + +function __guardMethod__(obj, methodName, transform) { + if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { + return transform(obj, methodName); + } else { + return undefined; + } +} \ No newline at end of file diff --git a/lib/launch-mode-view.coffee b/lib/launch-mode-view.coffee deleted file mode 100644 index 2611ca4..0000000 --- a/lib/launch-mode-view.coffee +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = -class LaunchModeView - constructor: ({safeMode, devMode}={}) -> - @element = document.createElement('status-bar-launch-mode') - @element.classList.add('inline-block', 'icon', 'icon-color-mode') - if devMode - @element.classList.add('text-error') - @tooltipDisposable = atom.tooltips.add(@element, title: 'This window is in dev mode') - else if safeMode - @element.classList.add('text-success') - @tooltipDisposable = atom.tooltips.add(@element, title: 'This window is in safe mode') - - detachedCallback: -> - @tooltipDisposable?.dispose() diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js new file mode 100644 index 0000000..04a3f9d --- /dev/null +++ b/lib/launch-mode-view.js @@ -0,0 +1,25 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let LaunchModeView; + +export default LaunchModeView = class LaunchModeView { + constructor({safeMode, devMode}={}) { + this.element = document.createElement('status-bar-launch-mode'); + this.element.classList.add('inline-block', 'icon', 'icon-color-mode'); + if (devMode) { + this.element.classList.add('text-error'); + this.tooltipDisposable = atom.tooltips.add(this.element, {title: 'This window is in dev mode'}); + } else if (safeMode) { + this.element.classList.add('text-success'); + this.tooltipDisposable = atom.tooltips.add(this.element, {title: 'This window is in safe mode'}); + } + } + + detachedCallback() { + return (this.tooltipDisposable != null ? this.tooltipDisposable.dispose() : undefined); + } +}; diff --git a/lib/main.coffee b/lib/main.coffee deleted file mode 100644 index fecdd20..0000000 --- a/lib/main.coffee +++ /dev/null @@ -1,121 +0,0 @@ -{CompositeDisposable, Emitter} = require 'atom' -Grim = require 'grim' -StatusBarView = require './status-bar-view' -FileInfoView = require './file-info-view' -CursorPositionView = require './cursor-position-view' -SelectionCountView = require './selection-count-view' -GitView = require './git-view' -LaunchModeView = require './launch-mode-view' - -module.exports = - activate: -> - @emitters = new Emitter() - @subscriptions = new CompositeDisposable() - - @statusBar = new StatusBarView() - @attachStatusBar() - - @subscriptions.add atom.config.onDidChange 'status-bar.fullWidth', => - @attachStatusBar() - - @updateStatusBarVisibility() - - @statusBarVisibilitySubscription = - atom.config.observe 'status-bar.isVisible', => - @updateStatusBarVisibility() - - atom.commands.add 'atom-workspace', 'status-bar:toggle', => - if @statusBarPanel.isVisible() - atom.config.set 'status-bar.isVisible', false - else - atom.config.set 'status-bar.isVisible', true - - {safeMode, devMode} = atom.getLoadSettings() - if safeMode or devMode - launchModeView = new LaunchModeView({safeMode, devMode}) - @statusBar.addLeftTile(item: launchModeView.element, priority: -1) - - @fileInfo = new FileInfoView() - @statusBar.addLeftTile(item: @fileInfo.element, priority: 0) - - @cursorPosition = new CursorPositionView() - @statusBar.addLeftTile(item: @cursorPosition.element, priority: 1) - - @selectionCount = new SelectionCountView() - @statusBar.addLeftTile(item: @selectionCount.element, priority: 2) - - @gitInfo = new GitView() - @gitInfoTile = @statusBar.addRightTile(item: @gitInfo.element, priority: 0) - - deactivate: -> - @statusBarVisibilitySubscription?.dispose() - @statusBarVisibilitySubscription = null - - @gitInfo?.destroy() - @gitInfo = null - - @fileInfo?.destroy() - @fileInfo = null - - @cursorPosition?.destroy() - @cursorPosition = null - - @selectionCount?.destroy() - @selectionCount = null - - @statusBarPanel?.destroy() - @statusBarPanel = null - - @statusBar?.destroy() - @statusBar = null - - @subscriptions?.dispose() - @subscriptions = null - - @emitters?.dispose() - @emitters = null - - delete atom.__workspaceView.statusBar if atom.__workspaceView? - - updateStatusBarVisibility: -> - if atom.config.get 'status-bar.isVisible' - @statusBarPanel.show() - else - @statusBarPanel.hide() - - provideStatusBar: -> - addLeftTile: @statusBar.addLeftTile.bind(@statusBar) - addRightTile: @statusBar.addRightTile.bind(@statusBar) - getLeftTiles: @statusBar.getLeftTiles.bind(@statusBar) - getRightTiles: @statusBar.getRightTiles.bind(@statusBar) - disableGitInfoTile: @gitInfoTile.destroy.bind(@gitInfoTile) - - attachStatusBar: -> - @statusBarPanel.destroy() if @statusBarPanel? - - panelArgs = {item: @statusBar, priority: 0} - if atom.config.get('status-bar.fullWidth') - @statusBarPanel = atom.workspace.addFooterPanel panelArgs - else - @statusBarPanel = atom.workspace.addBottomPanel panelArgs - - # Deprecated - # - # Wrap deprecation calls on the methods returned rather than - # Services API method which would be registered and trigger - # a deprecation call - legacyProvideStatusBar: -> - statusbar = @provideStatusBar() - - addLeftTile: (args...) -> - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API.") - statusbar.addLeftTile(args...) - addRightTile: (args...) -> - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API.") - statusbar.addRightTile(args...) - getLeftTiles: -> - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API.") - statusbar.getLeftTiles() - getRightTiles: -> - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API.") - statusbar.getRightTiles() diff --git a/lib/main.js b/lib/main.js new file mode 100644 index 0000000..fb027fc --- /dev/null +++ b/lib/main.js @@ -0,0 +1,169 @@ +/* + * decaffeinate suggestions: + * DS101: Remove unnecessary use of Array.from + * DS102: Remove unnecessary code created because of implicit returns + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +import { CompositeDisposable, Emitter } from 'atom'; +import Grim from 'grim'; +import StatusBarView from './status-bar-view'; +import FileInfoView from './file-info-view'; +import CursorPositionView from './cursor-position-view'; +import SelectionCountView from './selection-count-view'; +import GitView from './git-view'; +import LaunchModeView from './launch-mode-view'; + +export default { + activate() { + this.emitters = new Emitter(); + this.subscriptions = new CompositeDisposable(); + + this.statusBar = new StatusBarView(); + this.attachStatusBar(); + + this.subscriptions.add(atom.config.onDidChange('status-bar.fullWidth', () => { + return this.attachStatusBar(); + }) + ); + + this.updateStatusBarVisibility(); + + this.statusBarVisibilitySubscription = + atom.config.observe('status-bar.isVisible', () => { + return this.updateStatusBarVisibility(); + }); + + atom.commands.add('atom-workspace', 'status-bar:toggle', () => { + if (this.statusBarPanel.isVisible()) { + return atom.config.set('status-bar.isVisible', false); + } else { + return atom.config.set('status-bar.isVisible', true); + } + }); + + const {safeMode, devMode} = atom.getLoadSettings(); + if (safeMode || devMode) { + const launchModeView = new LaunchModeView({safeMode, devMode}); + this.statusBar.addLeftTile({item: launchModeView.element, priority: -1}); + } + + this.fileInfo = new FileInfoView(); + this.statusBar.addLeftTile({item: this.fileInfo.element, priority: 0}); + + this.cursorPosition = new CursorPositionView(); + this.statusBar.addLeftTile({item: this.cursorPosition.element, priority: 1}); + + this.selectionCount = new SelectionCountView(); + this.statusBar.addLeftTile({item: this.selectionCount.element, priority: 2}); + + this.gitInfo = new GitView(); + return this.gitInfoTile = this.statusBar.addRightTile({item: this.gitInfo.element, priority: 0}); + }, + + deactivate() { + if (this.statusBarVisibilitySubscription != null) { + this.statusBarVisibilitySubscription.dispose(); + } + this.statusBarVisibilitySubscription = null; + + if (this.gitInfo != null) { + this.gitInfo.destroy(); + } + this.gitInfo = null; + + if (this.fileInfo != null) { + this.fileInfo.destroy(); + } + this.fileInfo = null; + + if (this.cursorPosition != null) { + this.cursorPosition.destroy(); + } + this.cursorPosition = null; + + if (this.selectionCount != null) { + this.selectionCount.destroy(); + } + this.selectionCount = null; + + if (this.statusBarPanel != null) { + this.statusBarPanel.destroy(); + } + this.statusBarPanel = null; + + if (this.statusBar != null) { + this.statusBar.destroy(); + } + this.statusBar = null; + + if (this.subscriptions != null) { + this.subscriptions.dispose(); + } + this.subscriptions = null; + + if (this.emitters != null) { + this.emitters.dispose(); + } + this.emitters = null; + + if (atom.__workspaceView != null) { return delete atom.__workspaceView.statusBar; } + }, + + updateStatusBarVisibility() { + if (atom.config.get('status-bar.isVisible')) { + return this.statusBarPanel.show(); + } else { + return this.statusBarPanel.hide(); + } + }, + + provideStatusBar() { + return { + addLeftTile: this.statusBar.addLeftTile.bind(this.statusBar), + addRightTile: this.statusBar.addRightTile.bind(this.statusBar), + getLeftTiles: this.statusBar.getLeftTiles.bind(this.statusBar), + getRightTiles: this.statusBar.getRightTiles.bind(this.statusBar), + disableGitInfoTile: this.gitInfoTile.destroy.bind(this.gitInfoTile) + }; + }, + + attachStatusBar() { + if (this.statusBarPanel != null) { this.statusBarPanel.destroy(); } + + const panelArgs = {item: this.statusBar, priority: 0}; + if (atom.config.get('status-bar.fullWidth')) { + return this.statusBarPanel = atom.workspace.addFooterPanel(panelArgs); + } else { + return this.statusBarPanel = atom.workspace.addBottomPanel(panelArgs); + } + }, + + // Deprecated + // + // Wrap deprecation calls on the methods returned rather than + // Services API method which would be registered and trigger + // a deprecation call + legacyProvideStatusBar() { + const statusbar = this.provideStatusBar(); + + return { + addLeftTile(...args) { + Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + return statusbar.addLeftTile(...Array.from(args || [])); + }, + addRightTile(...args) { + Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + return statusbar.addRightTile(...Array.from(args || [])); + }, + getLeftTiles() { + Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + return statusbar.getLeftTiles(); + }, + getRightTiles() { + Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + return statusbar.getRightTiles(); + } + }; + } +}; diff --git a/lib/selection-count-view.coffee b/lib/selection-count-view.coffee deleted file mode 100644 index 35bb9f6..0000000 --- a/lib/selection-count-view.coffee +++ /dev/null @@ -1,58 +0,0 @@ -_ = require 'underscore-plus' - -module.exports = -class SelectionCountView - constructor: -> - @element = document.createElement('status-bar-selection') - @element.classList.add('selection-count', 'inline-block') - - @tooltipElement = document.createElement('div') - @tooltipDisposable = atom.tooltips.add @element, item: @tooltipElement - - @formatString = atom.config.get('status-bar.selectionCountFormat') ? '(%L, %C)' - - @activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor => @subscribeToActiveTextEditor() - - @subscribeToConfig() - @subscribeToActiveTextEditor() - - destroy: -> - @activeItemSubscription.dispose() - @selectionSubscription?.dispose() - @configSubscription?.dispose() - @tooltipDisposable.dispose() - - subscribeToConfig: -> - @configSubscription?.dispose() - @configSubscription = atom.config.observe 'status-bar.selectionCountFormat', (value) => - @formatString = value ? '(%L, %C)' - @scheduleUpdateCount() - - subscribeToActiveTextEditor: -> - @selectionSubscription?.dispose() - activeEditor = @getActiveTextEditor() - selectionsMarkerLayer = activeEditor?.selectionsMarkerLayer - @selectionSubscription = selectionsMarkerLayer?.onDidUpdate(@scheduleUpdateCount.bind(this)) - @scheduleUpdateCount() - - getActiveTextEditor: -> - atom.workspace.getActiveTextEditor() - - scheduleUpdateCount: -> - unless @scheduledUpdate - @scheduledUpdate = true - atom.views.updateDocument => - @updateCount() - @scheduledUpdate = false - - updateCount: -> - count = @getActiveTextEditor()?.getSelectedText().length - range = @getActiveTextEditor()?.getSelectedBufferRange() - lineCount = range?.getRowCount() - lineCount -= 1 if range?.end.column is 0 - if count > 0 - @element.textContent = @formatString.replace('%L', lineCount).replace('%C', count) - @tooltipElement.textContent = "#{_.pluralize(lineCount, 'line')}, #{_.pluralize(count, 'character')} selected" - else - @element.textContent = '' - @tooltipElement.textContent = '' diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js new file mode 100644 index 0000000..c7f408a --- /dev/null +++ b/lib/selection-count-view.js @@ -0,0 +1,91 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS103: Rewrite code to no longer use __guard__ + * DS104: Avoid inline assignments + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let SelectionCountView; +import _ from 'underscore-plus'; + +export default SelectionCountView = class SelectionCountView { + constructor() { + let left; + this.element = document.createElement('status-bar-selection'); + this.element.classList.add('selection-count', 'inline-block'); + + this.tooltipElement = document.createElement('div'); + this.tooltipDisposable = atom.tooltips.add(this.element, {item: this.tooltipElement}); + + this.formatString = (left = atom.config.get('status-bar.selectionCountFormat')) != null ? left : '(%L, %C)'; + + this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor(() => this.subscribeToActiveTextEditor()); + + this.subscribeToConfig(); + this.subscribeToActiveTextEditor(); + } + + destroy() { + this.activeItemSubscription.dispose(); + if (this.selectionSubscription != null) { + this.selectionSubscription.dispose(); + } + if (this.configSubscription != null) { + this.configSubscription.dispose(); + } + return this.tooltipDisposable.dispose(); + } + + subscribeToConfig() { + if (this.configSubscription != null) { + this.configSubscription.dispose(); + } + return this.configSubscription = atom.config.observe('status-bar.selectionCountFormat', value => { + this.formatString = value != null ? value : '(%L, %C)'; + return this.scheduleUpdateCount(); + }); + } + + subscribeToActiveTextEditor() { + if (this.selectionSubscription != null) { + this.selectionSubscription.dispose(); + } + const activeEditor = this.getActiveTextEditor(); + const selectionsMarkerLayer = activeEditor != null ? activeEditor.selectionsMarkerLayer : undefined; + this.selectionSubscription = selectionsMarkerLayer != null ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdateCount.bind(this)) : undefined; + return this.scheduleUpdateCount(); + } + + getActiveTextEditor() { + return atom.workspace.getActiveTextEditor(); + } + + scheduleUpdateCount() { + if (!this.scheduledUpdate) { + this.scheduledUpdate = true; + return atom.views.updateDocument(() => { + this.updateCount(); + return this.scheduledUpdate = false; + }); + } + } + + updateCount() { + const count = __guard__(this.getActiveTextEditor(), x => x.getSelectedText().length); + const range = __guard__(this.getActiveTextEditor(), x1 => x1.getSelectedBufferRange()); + let lineCount = range != null ? range.getRowCount() : undefined; + if ((range != null ? range.end.column : undefined) === 0) { lineCount -= 1; } + if (count > 0) { + this.element.textContent = this.formatString.replace('%L', lineCount).replace('%C', count); + return this.tooltipElement.textContent = `${_.pluralize(lineCount, 'line')}, ${_.pluralize(count, 'character')} selected`; + } else { + this.element.textContent = ''; + return this.tooltipElement.textContent = ''; + } + } +}; + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} \ No newline at end of file diff --git a/lib/status-bar-view.coffee b/lib/status-bar-view.coffee deleted file mode 100644 index ac707da..0000000 --- a/lib/status-bar-view.coffee +++ /dev/null @@ -1,107 +0,0 @@ -{Disposable} = require 'atom' -Tile = require './tile' - -module.exports = -class StatusBarView - constructor: -> - @element = document.createElement('status-bar') - @element.classList.add('status-bar') - - flexboxHackElement = document.createElement('div') - flexboxHackElement.classList.add('flexbox-repaint-hack') - @element.appendChild(flexboxHackElement) - - @leftPanel = document.createElement('div') - @leftPanel.classList.add('status-bar-left') - flexboxHackElement.appendChild(@leftPanel) - @element.leftPanel = @leftPanel - - @rightPanel = document.createElement('div') - @rightPanel.classList.add('status-bar-right') - flexboxHackElement.appendChild(@rightPanel) - @element.rightPanel = @rightPanel - - @leftTiles = [] - @rightTiles = [] - - @element.getLeftTiles = @getLeftTiles.bind(this) - @element.getRightTiles = @getRightTiles.bind(this) - @element.addLeftTile = @addLeftTile.bind(this) - @element.addRightTile = @addRightTile.bind(this) - - @bufferSubscriptions = [] - - @activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem => - @unsubscribeAllFromBuffer() - @storeActiveBuffer() - @subscribeAllToBuffer() - - @element.dispatchEvent(new CustomEvent('active-buffer-changed', bubbles: true)) - - @storeActiveBuffer() - - destroy: -> - @activeItemSubscription.dispose() - @unsubscribeAllFromBuffer() - @element.remove() - - addLeftTile: (options) -> - newItem = options.item - newPriority = options?.priority ? @leftTiles[@leftTiles.length - 1].priority + 1 - nextItem = null - for {priority, item}, index in @leftTiles - if priority > newPriority - nextItem = item - break - - newTile = new Tile(newItem, newPriority, @leftTiles) - @leftTiles.splice(index, 0, newTile) - newElement = atom.views.getView(newItem) - nextElement = atom.views.getView(nextItem) - @leftPanel.insertBefore(newElement, nextElement) - newTile - - addRightTile: (options) -> - newItem = options.item - newPriority = options?.priority ? @rightTiles[0].priority + 1 - nextItem = null - for {priority, item}, index in @rightTiles - if priority < newPriority - nextItem = item - break - - newTile = new Tile(newItem, newPriority, @rightTiles) - @rightTiles.splice(index, 0, newTile) - newElement = atom.views.getView(newItem) - nextElement = atom.views.getView(nextItem) - @rightPanel.insertBefore(newElement, nextElement) - newTile - - getLeftTiles: -> - @leftTiles - - getRightTiles: -> - @rightTiles - - getActiveBuffer: -> - @buffer - - getActiveItem: -> - atom.workspace.getCenter().getActivePaneItem() - - storeActiveBuffer: -> - @buffer = @getActiveItem()?.getBuffer?() - - subscribeToBuffer: (event, callback) -> - @bufferSubscriptions.push([event, callback]) - @buffer.on(event, callback) if @buffer - - subscribeAllToBuffer: -> - return unless @buffer - for [event, callback] in @bufferSubscriptions - @buffer.on(event, callback) - - unsubscribeAllFromBuffer: -> - return unless @buffer - for [event, callback] in @bufferSubscriptions - @buffer.off(event, callback) diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js new file mode 100644 index 0000000..9b9d7d5 --- /dev/null +++ b/lib/status-bar-view.js @@ -0,0 +1,155 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS103: Rewrite code to no longer use __guard__ + * DS205: Consider reworking code to avoid use of IIFEs + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let StatusBarView; +import { Disposable } from 'atom'; +import Tile from './tile'; + +export default StatusBarView = class StatusBarView { + constructor() { + this.element = document.createElement('status-bar'); + this.element.classList.add('status-bar'); + + const flexboxHackElement = document.createElement('div'); + flexboxHackElement.classList.add('flexbox-repaint-hack'); + this.element.appendChild(flexboxHackElement); + + this.leftPanel = document.createElement('div'); + this.leftPanel.classList.add('status-bar-left'); + flexboxHackElement.appendChild(this.leftPanel); + this.element.leftPanel = this.leftPanel; + + this.rightPanel = document.createElement('div'); + this.rightPanel.classList.add('status-bar-right'); + flexboxHackElement.appendChild(this.rightPanel); + this.element.rightPanel = this.rightPanel; + + this.leftTiles = []; + this.rightTiles = []; + + this.element.getLeftTiles = this.getLeftTiles.bind(this); + this.element.getRightTiles = this.getRightTiles.bind(this); + this.element.addLeftTile = this.addLeftTile.bind(this); + this.element.addRightTile = this.addRightTile.bind(this); + + this.bufferSubscriptions = []; + + this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { + this.unsubscribeAllFromBuffer(); + this.storeActiveBuffer(); + this.subscribeAllToBuffer(); + + return this.element.dispatchEvent(new CustomEvent('active-buffer-changed', {bubbles: true})); + }); + + this.storeActiveBuffer(); + } + + destroy() { + this.activeItemSubscription.dispose(); + this.unsubscribeAllFromBuffer(); + return this.element.remove(); + } + + addLeftTile(options) { + let index; + const newItem = options.item; + const newPriority = (options != null ? options.priority : undefined) != null ? (options != null ? options.priority : undefined) : this.leftTiles[this.leftTiles.length - 1].priority + 1; + let nextItem = null; + for (index = 0; index < this.leftTiles.length; index++) { + const {priority, item} = this.leftTiles[index]; + if (priority > newPriority) { + nextItem = item; + break; + } + } + + const newTile = new Tile(newItem, newPriority, this.leftTiles); + this.leftTiles.splice(index, 0, newTile); + const newElement = atom.views.getView(newItem); + const nextElement = atom.views.getView(nextItem); + this.leftPanel.insertBefore(newElement, nextElement); + return newTile; + } + + addRightTile(options) { + let index; + const newItem = options.item; + const newPriority = (options != null ? options.priority : undefined) != null ? (options != null ? options.priority : undefined) : this.rightTiles[0].priority + 1; + let nextItem = null; + for (index = 0; index < this.rightTiles.length; index++) { + const {priority, item} = this.rightTiles[index]; + if (priority < newPriority) { + nextItem = item; + break; + } + } + + const newTile = new Tile(newItem, newPriority, this.rightTiles); + this.rightTiles.splice(index, 0, newTile); + const newElement = atom.views.getView(newItem); + const nextElement = atom.views.getView(nextItem); + this.rightPanel.insertBefore(newElement, nextElement); + return newTile; + } + + getLeftTiles() { + return this.leftTiles; + } + + getRightTiles() { + return this.rightTiles; + } + + getActiveBuffer() { + return this.buffer; + } + + getActiveItem() { + return atom.workspace.getCenter().getActivePaneItem(); + } + + storeActiveBuffer() { + return this.buffer = __guardMethod__(this.getActiveItem(), 'getBuffer', o => o.getBuffer()); + } + + subscribeToBuffer(event, callback) { + this.bufferSubscriptions.push([event, callback]); + if (this.buffer) { return this.buffer.on(event, callback); } + } + + subscribeAllToBuffer() { + if (!this.buffer) { return; } + return (() => { + const result = []; + for (let [event, callback] of this.bufferSubscriptions) { + result.push(this.buffer.on(event, callback)); + } + return result; + })(); + } + + unsubscribeAllFromBuffer() { + if (!this.buffer) { return; } + return (() => { + const result = []; + for (let [event, callback] of this.bufferSubscriptions) { + result.push(this.buffer.off(event, callback)); + } + return result; + })(); + } +}; + +function __guardMethod__(obj, methodName, transform) { + if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { + return transform(obj, methodName); + } else { + return undefined; + } +} \ No newline at end of file diff --git a/lib/tile.coffee b/lib/tile.coffee deleted file mode 100644 index b38d3e4..0000000 --- a/lib/tile.coffee +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = -class Tile - constructor: (@item, @priority, @collection) -> - - getItem: -> - @item - - getPriority: -> - @priority - - destroy: -> - @collection.splice(@collection.indexOf(this), 1) - atom.views.getView(@item).remove() diff --git a/lib/tile.js b/lib/tile.js new file mode 100644 index 0000000..a351247 --- /dev/null +++ b/lib/tile.js @@ -0,0 +1,27 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let Tile; + +export default Tile = class Tile { + constructor(item, priority, collection) { + this.item = item; + this.priority = priority; + this.collection = collection; + } + + getItem() { + return this.item; + } + + getPriority() { + return this.priority; + } + + destroy() { + this.collection.splice(this.collection.indexOf(this), 1); + return atom.views.getView(this.item).remove(); + } +}; From 4a73c94fe2597ea0c8ca2dd3b55d8c73e99adc5e Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 04:36:27 -0500 Subject: [PATCH 02/53] use babel to support import/export --- lib/cursor-position-view.js | 3 ++- lib/file-info-view.js | 3 ++- lib/git-view.js | 3 ++- lib/launch-mode-view.js | 1 + lib/main.js | 1 + lib/selection-count-view.js | 3 ++- lib/status-bar-view.js | 3 ++- lib/tile.js | 1 + 8 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index 897246e..f1bfbf7 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns @@ -92,4 +93,4 @@ export default CursorPositionView = class CursorPositionView { function __guard__(value, transform) { return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} \ No newline at end of file +} diff --git a/lib/file-info-view.js b/lib/file-info-view.js index 3c42669..d26bdf8 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns @@ -181,4 +182,4 @@ function __guardMethod__(obj, methodName, transform) { } else { return undefined; } -} \ No newline at end of file +} diff --git a/lib/git-view.js b/lib/git-view.js index 4b9b83b..378f8a4 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from @@ -318,4 +319,4 @@ function __guardMethod__(obj, methodName, transform) { } else { return undefined; } -} \ No newline at end of file +} diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js index 04a3f9d..371f1cb 100644 --- a/lib/launch-mode-view.js +++ b/lib/launch-mode-view.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns diff --git a/lib/main.js b/lib/main.js index fb027fc..8e8b113 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index c7f408a..f9958aa 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns @@ -88,4 +89,4 @@ export default SelectionCountView = class SelectionCountView { function __guard__(value, transform) { return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} \ No newline at end of file +} diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index 9b9d7d5..4a2d919 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns @@ -152,4 +153,4 @@ function __guardMethod__(obj, methodName, transform) { } else { return undefined; } -} \ No newline at end of file +} diff --git a/lib/tile.js b/lib/tile.js index a351247..61e396c 100644 --- a/lib/tile.js +++ b/lib/tile.js @@ -1,3 +1,4 @@ +'use babel' /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns From 93200fe91dd67f2fd739d1b5f9e131881dba866a Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 04:38:23 -0500 Subject: [PATCH 03/53] tile: remove implicit returns --- lib/tile.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/tile.js b/lib/tile.js index 61e396c..b1e5eb9 100644 --- a/lib/tile.js +++ b/lib/tile.js @@ -1,11 +1,5 @@ 'use babel' -/* - * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ let Tile; - export default Tile = class Tile { constructor(item, priority, collection) { this.item = item; @@ -23,6 +17,6 @@ export default Tile = class Tile { destroy() { this.collection.splice(this.collection.indexOf(this), 1); - return atom.views.getView(this.item).remove(); + atom.views.getView(this.item).remove(); } }; From a002793d3cfb479d563fbe1be3bd717e83763fe8 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 04:56:41 -0500 Subject: [PATCH 04/53] cursor-position-view remove guard for getActiveTextEditor --- lib/cursor-position-view.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index f1bfbf7..2e5b4f1 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS103: Rewrite code to no longer use __guard__ * DS104: Avoid inline assignments * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md @@ -50,7 +49,13 @@ export default CursorPositionView = class CursorPositionView { if (this.cursorSubscription != null) { this.cursorSubscription.dispose(); } - const selectionsMarkerLayer = __guard__(atom.workspace.getActiveTextEditor(), x => x.selectionsMarkerLayer); + + const editor = atom.workspace.getActiveTextEditor(); + let selectionsMarkerLayer + if (editor) { + selectionsMarkerLayer = editor.selectionsMarkerLayer; + } + this.cursorSubscription = selectionsMarkerLayer != null ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) : undefined; return this.scheduleUpdate(); } @@ -76,9 +81,15 @@ export default CursorPositionView = class CursorPositionView { this.viewUpdatePending = true; return this.updateSubscription = atom.views.updateDocument(() => { - let position; this.viewUpdatePending = false; - if (position = __guard__(atom.workspace.getActiveTextEditor(), x => x.getCursorBufferPosition())) { + + const editor = atom.workspace.getActiveTextEditor(); + let position; + if (editor) { + position = editor.getCursorBufferPosition(); + } + + if (position) { this.row = position.row + 1; this.column = position.column + 1; this.goToLineLink.textContent = this.formatString.replace('%L', this.row).replace('%C', this.column); @@ -90,7 +101,3 @@ export default CursorPositionView = class CursorPositionView { }); } }; - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} From 05aca2a8125f381ea6f8249b998baca7c5fdd067 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 05:00:01 -0500 Subject: [PATCH 05/53] cursor-position-view Avoid inline assignments --- lib/cursor-position-view.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index 2e5b4f1..e2441b4 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS104: Avoid inline assignments * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -11,7 +10,7 @@ import { Disposable } from 'atom'; export default CursorPositionView = class CursorPositionView { constructor() { - let left; + this.viewUpdatePending = false; this.element = document.createElement('status-bar-cursor'); @@ -20,7 +19,8 @@ export default CursorPositionView = class CursorPositionView { this.goToLineLink.classList.add('inline-block'); this.element.appendChild(this.goToLineLink); - this.formatString = (left = atom.config.get('status-bar.cursorPositionFormat')) != null ? left : '%L:%C'; + let left = atom.config.get('status-bar.cursorPositionFormat'); + this.formatString = left != null ? left : '%L:%C'; this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor(activeEditor => this.subscribeToActiveTextEditor()); From 37cdefd089fff106a2d226a13e3c849e247e3dea Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 05:01:07 -0500 Subject: [PATCH 06/53] cursor-position-view remove implicit returns --- lib/cursor-position-view.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index e2441b4..9f8a6bd 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -1,7 +1,6 @@ 'use babel' /* * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -42,7 +41,7 @@ export default CursorPositionView = class CursorPositionView { this.configSubscription.dispose(); } this.clickSubscription.dispose(); - return (this.updateSubscription != null ? this.updateSubscription.dispose() : undefined); + this.updateSubscription != null ? this.updateSubscription.dispose() : undefined; } subscribeToActiveTextEditor() { @@ -57,30 +56,30 @@ export default CursorPositionView = class CursorPositionView { } this.cursorSubscription = selectionsMarkerLayer != null ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) : undefined; - return this.scheduleUpdate(); + this.scheduleUpdate(); } subscribeToConfig() { if (this.configSubscription != null) { this.configSubscription.dispose(); } - return this.configSubscription = atom.config.observe('status-bar.cursorPositionFormat', value => { + this.configSubscription = atom.config.observe('status-bar.cursorPositionFormat', value => { this.formatString = value != null ? value : '%L:%C'; - return this.scheduleUpdate(); + this.scheduleUpdate(); }); } handleClick() { const clickHandler = () => atom.commands.dispatch(atom.views.getView(atom.workspace.getActiveTextEditor()), 'go-to-line:toggle'); this.element.addEventListener('click', clickHandler); - return this.clickSubscription = new Disposable(() => this.element.removeEventListener('click', clickHandler)); + this.clickSubscription = new Disposable(() => this.element.removeEventListener('click', clickHandler)); } scheduleUpdate() { if (this.viewUpdatePending) { return; } this.viewUpdatePending = true; - return this.updateSubscription = atom.views.updateDocument(() => { + this.updateSubscription = atom.views.updateDocument(() => { this.viewUpdatePending = false; const editor = atom.workspace.getActiveTextEditor(); @@ -93,10 +92,10 @@ export default CursorPositionView = class CursorPositionView { this.row = position.row + 1; this.column = position.column + 1; this.goToLineLink.textContent = this.formatString.replace('%L', this.row).replace('%C', this.column); - return this.element.classList.remove('hide'); + this.element.classList.remove('hide'); } else { this.goToLineLink.textContent = ''; - return this.element.classList.add('hide'); + this.element.classList.add('hide'); } }); } From 806360071b0fad13533ceb4fef277b55eb416365 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 05:29:08 -0500 Subject: [PATCH 07/53] file-info-view: remove guard --- lib/file-info-view.js | 66 +++++++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/lib/file-info-view.js b/lib/file-info-view.js index d26bdf8..f0a9299 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS103: Rewrite code to no longer use __guard__ * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -77,9 +76,14 @@ export default FileInfoView = class FileInfoView { } getActiveItemCopyText(copyRelativePath) { + // optional chaining rewritten: + let path, title; const activeItem = this.getActiveItem(); - let path = __guardMethod__(activeItem, 'getPath', o => o.getPath()); - if ((path == null)) { return __guardMethod__(activeItem, 'getTitle', o1 => o1.getTitle()) || ''; } + if (activeItem) { + path = activeItem.getPath(); + } + + if ((path == null)) { return activeItem.getTitle() || ''; } // Make sure we try to relativize before parsing URLs. if (copyRelativePath) { @@ -110,17 +114,20 @@ export default FileInfoView = class FileInfoView { if (activeItem = this.getActiveItem()) { if (this.updateCallback == null) { this.updateCallback = () => this.update(); } + // optional chaining: if (typeof activeItem.onDidChangeTitle === 'function') { this.titleSubscription = activeItem.onDidChangeTitle(this.updateCallback); } else if (typeof activeItem.on === 'function') { //TODO Remove once title-changed event support is removed activeItem.on('title-changed', this.updateCallback); this.titleSubscription = { dispose: () => { - return (typeof activeItem.off === 'function' ? activeItem.off('title-changed', this.updateCallback) : undefined); + // optional chaining: + return (typeof activeItem.off === 'function' ? activeItem.off('title-changed', this.updateCallback) : undefined); } }; } + // optional chaining: this.modifiedSubscription = typeof activeItem.onDidChangeModified === 'function' ? activeItem.onDidChangeModified(this.updateCallback) : undefined; } @@ -150,7 +157,13 @@ export default FileInfoView = class FileInfoView { update() { this.updatePathText(); - return this.updateBufferHasModifiedText(__guardMethod__(this.getActiveItem(), 'isModified', o => o.isModified())); + // optional chaining rewritten: + let isModified; + const activeItem = this.getActiveItem(); + if (activeItem && typeof activeItem.isModified === 'function') { + isModified = activeItem.isModified(); + } + return this.updateBufferHasModifiedText(isModified); } updateBufferHasModifiedText(isModified) { @@ -164,22 +177,33 @@ export default FileInfoView = class FileInfoView { } updatePathText() { - let path, title; - if (path = __guardMethod__(this.getActiveItem(), 'getPath', o => o.getPath())) { - const relativized = atom.project.relativize(path); - return this.currentPath.textContent = (relativized != null) ? fs.tildify(relativized) : path; - } else if ((title = __guardMethod__(this.getActiveItem(), 'getTitle', o1 => o1.getTitle()))) { - return this.currentPath.textContent = title; - } else { - return this.currentPath.textContent = ''; + // optional chaining rewritten: + + const activeItem = this.getActiveItem(); + if (!activeItem) { + // if activeItem was null return right away: + this.currentPath.textContent = ''; + return; + } + + if (typeof activeItem.getPath == "function") { + let path = activeItem.getPath(); + if (path) { + const relativized = atom.project.relativize(path); + this.currentPath.textContent = (relativized != null) ? fs.tildify(relativized) : path; + return; + } } - } -}; -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { - return transform(obj, methodName); - } else { - return undefined; + if (typeof activeItem.getTitle == "function") { + let title = activeItem.getTitle(); + if (title) { + this.currentPath.textContent = title; + return; + } + } + + // if title and path were null + this.currentPath.textContent = ''; } -} +}; From 6be016bd1c37d0648b1348520e2908ef327856db Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 05:29:33 -0500 Subject: [PATCH 08/53] file-info-view inline assignment --- lib/file-info-view.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/file-info-view.js b/lib/file-info-view.js index f0a9299..9096f1f 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -103,15 +103,14 @@ export default FileInfoView = class FileInfoView { } subscribeToActiveItem() { - let activeItem; if (this.modifiedSubscription != null) { this.modifiedSubscription.dispose(); } if (this.titleSubscription != null) { this.titleSubscription.dispose(); } - - if (activeItem = this.getActiveItem()) { + let activeItem = this.getActiveItem(); + if (activeItem) { if (this.updateCallback == null) { this.updateCallback = () => this.update(); } // optional chaining: From c542b3b9fdacbd9ab36e4c3922354067fdf9488e Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 05:30:43 -0500 Subject: [PATCH 09/53] file-info-view remove implicit returns --- lib/file-info-view.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lib/file-info-view.js b/lib/file-info-view.js index 9096f1f..da0ec9e 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -1,7 +1,6 @@ 'use babel' /* * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -23,7 +22,7 @@ export default FileInfoView = class FileInfoView { this.element.getActiveItem = this.getActiveItem.bind(this); this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { - return this.subscribeToActiveItem(); + this.subscribeToActiveItem(); }); this.subscribeToActiveItem(); @@ -33,8 +32,8 @@ export default FileInfoView = class FileInfoView { this.showCopiedTooltip(isShiftClick); const text = this.getActiveItemCopyText(isShiftClick); atom.clipboard.write(text); - return setTimeout(() => { - return this.clearCopiedTooltip(); + setTimeout(() => { + this.clearCopiedTooltip(); } , 2000); }; @@ -44,7 +43,7 @@ export default FileInfoView = class FileInfoView { } registerTooltip() { - return this.tooltip = atom.tooltips.add(this.element, { title() { + this.tooltip = atom.tooltips.add(this.element, { title() { return "Click to copy absolute file path (Shift + Click to copy relative path)"; } }); @@ -54,7 +53,7 @@ export default FileInfoView = class FileInfoView { if (this.copiedTooltip != null) { this.copiedTooltip.dispose(); } - return this.registerTooltip(); + this.registerTooltip(); } showCopiedTooltip(copyRelativePath) { @@ -65,7 +64,7 @@ export default FileInfoView = class FileInfoView { this.copiedTooltip.dispose(); } const text = this.getActiveItemCopyText(copyRelativePath); - return this.copiedTooltip = atom.tooltips.add(this.element, { + this.copiedTooltip = atom.tooltips.add(this.element, { title: `Copied: ${text}`, trigger: 'manual', delay: { @@ -130,7 +129,7 @@ export default FileInfoView = class FileInfoView { this.modifiedSubscription = typeof activeItem.onDidChangeModified === 'function' ? activeItem.onDidChangeModified(this.updateCallback) : undefined; } - return this.update(); + this.update(); } destroy() { @@ -147,7 +146,7 @@ export default FileInfoView = class FileInfoView { if (this.copiedTooltip != null) { this.copiedTooltip.dispose(); } - return (this.tooltip != null ? this.tooltip.dispose() : undefined); + this.tooltip != null ? this.tooltip.dispose() : undefined; } getActiveItem() { @@ -162,16 +161,16 @@ export default FileInfoView = class FileInfoView { if (activeItem && typeof activeItem.isModified === 'function') { isModified = activeItem.isModified(); } - return this.updateBufferHasModifiedText(isModified); + this.updateBufferHasModifiedText(isModified); } updateBufferHasModifiedText(isModified) { if (isModified) { this.element.classList.add('buffer-modified'); - return this.isModified = true; + this.isModified = true; } else { this.element.classList.remove('buffer-modified'); - return this.isModified = false; + this.isModified = false; } } From 1cb10e0dd4c3db245e7f1ded626a5a14340573d3 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 05:31:48 -0500 Subject: [PATCH 10/53] file-info-view suggestion --- lib/file-info-view.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/file-info-view.js b/lib/file-info-view.js index da0ec9e..133cb9b 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -1,6 +1,7 @@ 'use babel' /* * decaffeinate suggestions: + * Amin: Simplify Optional Chaining at 117 and 130 inside subscribeToActiveItem * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ From fb8f2a184e53e3b0844fdb8c21c35f0a4fd6f684 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 06:06:41 -0500 Subject: [PATCH 11/53] launch-mode-view remove implicit returns --- lib/launch-mode-view.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js index 371f1cb..4df1ca3 100644 --- a/lib/launch-mode-view.js +++ b/lib/launch-mode-view.js @@ -1,7 +1,6 @@ 'use babel' /* * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -21,6 +20,6 @@ export default LaunchModeView = class LaunchModeView { } detachedCallback() { - return (this.tooltipDisposable != null ? this.tooltipDisposable.dispose() : undefined); + this.tooltipDisposable != null ? this.tooltipDisposable.dispose() : undefined; } }; From 8b39a24288a1b8385bb384704a353b9c10fe810f Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 06:10:37 -0500 Subject: [PATCH 12/53] selection-count-view remove guard --- lib/selection-count-view.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index f9958aa..859095f 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS103: Rewrite code to no longer use __guard__ * DS104: Avoid inline assignments * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md @@ -73,8 +72,14 @@ export default SelectionCountView = class SelectionCountView { } updateCount() { - const count = __guard__(this.getActiveTextEditor(), x => x.getSelectedText().length); - const range = __guard__(this.getActiveTextEditor(), x1 => x1.getSelectedBufferRange()); + // optional chaining rewritten: + let count, range; + const editor = atom.workspace.getActiveTextEditor(); + if (editor) { + count = editor.getSelectedText().length; + range = editor.getSelectedBufferRange(); + } + let lineCount = range != null ? range.getRowCount() : undefined; if ((range != null ? range.end.column : undefined) === 0) { lineCount -= 1; } if (count > 0) { @@ -86,7 +91,3 @@ export default SelectionCountView = class SelectionCountView { } } }; - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} From bc1d09e7b77139208b2bf2c97465572b1b462c1d Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 06:17:16 -0500 Subject: [PATCH 13/53] selection-count-view inline assignments --- lib/selection-count-view.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index 859095f..935e124 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS104: Avoid inline assignments * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -11,14 +10,18 @@ import _ from 'underscore-plus'; export default SelectionCountView = class SelectionCountView { constructor() { - let left; this.element = document.createElement('status-bar-selection'); this.element.classList.add('selection-count', 'inline-block'); this.tooltipElement = document.createElement('div'); this.tooltipDisposable = atom.tooltips.add(this.element, {item: this.tooltipElement}); - this.formatString = (left = atom.config.get('status-bar.selectionCountFormat')) != null ? left : '(%L, %C)'; + const selectionCountFormat = atom.config.get('status-bar.selectionCountFormat'); + if (selectionCountFormat) { + this.formatString = selectionCountFormat; + } else { + this.formatString = '(%L, %C)'; + } this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor(() => this.subscribeToActiveTextEditor()); @@ -80,8 +83,12 @@ export default SelectionCountView = class SelectionCountView { range = editor.getSelectedBufferRange(); } - let lineCount = range != null ? range.getRowCount() : undefined; - if ((range != null ? range.end.column : undefined) === 0) { lineCount -= 1; } + let lineCount, rangeEndColumn; + if (range != null) { + lineCount = range.getRowCount(); + rangeEndColumn = range.end.column; + } + if (rangeEndColumn === 0) { lineCount -= 1; } if (count > 0) { this.element.textContent = this.formatString.replace('%L', lineCount).replace('%C', count); return this.tooltipElement.textContent = `${_.pluralize(lineCount, 'line')}, ${_.pluralize(count, 'character')} selected`; From 9ed2f4d611eff1cc2ed9365999b77a3ba00ce2df Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 06:19:21 -0500 Subject: [PATCH 14/53] selection-count-view remove implicit returns --- lib/selection-count-view.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index 935e124..f222680 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -1,7 +1,6 @@ 'use babel' /* * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -37,16 +36,16 @@ export default SelectionCountView = class SelectionCountView { if (this.configSubscription != null) { this.configSubscription.dispose(); } - return this.tooltipDisposable.dispose(); + this.tooltipDisposable.dispose(); } subscribeToConfig() { if (this.configSubscription != null) { this.configSubscription.dispose(); } - return this.configSubscription = atom.config.observe('status-bar.selectionCountFormat', value => { + this.configSubscription = atom.config.observe('status-bar.selectionCountFormat', value => { this.formatString = value != null ? value : '(%L, %C)'; - return this.scheduleUpdateCount(); + this.scheduleUpdateCount(); }); } @@ -57,7 +56,7 @@ export default SelectionCountView = class SelectionCountView { const activeEditor = this.getActiveTextEditor(); const selectionsMarkerLayer = activeEditor != null ? activeEditor.selectionsMarkerLayer : undefined; this.selectionSubscription = selectionsMarkerLayer != null ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdateCount.bind(this)) : undefined; - return this.scheduleUpdateCount(); + this.scheduleUpdateCount(); } getActiveTextEditor() { @@ -67,9 +66,9 @@ export default SelectionCountView = class SelectionCountView { scheduleUpdateCount() { if (!this.scheduledUpdate) { this.scheduledUpdate = true; - return atom.views.updateDocument(() => { + atom.views.updateDocument(() => { this.updateCount(); - return this.scheduledUpdate = false; + this.scheduledUpdate = false; }); } } @@ -91,10 +90,10 @@ export default SelectionCountView = class SelectionCountView { if (rangeEndColumn === 0) { lineCount -= 1; } if (count > 0) { this.element.textContent = this.formatString.replace('%L', lineCount).replace('%C', count); - return this.tooltipElement.textContent = `${_.pluralize(lineCount, 'line')}, ${_.pluralize(count, 'character')} selected`; + this.tooltipElement.textContent = `${_.pluralize(lineCount, 'line')}, ${_.pluralize(count, 'character')} selected`; } else { this.element.textContent = ''; - return this.tooltipElement.textContent = ''; + this.tooltipElement.textContent = ''; } } }; From 8a8233d17280aa034bda2f56eb168c6b06316c9a Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 06:52:22 -0500 Subject: [PATCH 15/53] status-bar-view remove guard --- lib/status-bar-view.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index 4a2d919..cbdf1e9 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS103: Rewrite code to no longer use __guard__ * DS205: Consider reworking code to avoid use of IIFEs * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md @@ -116,7 +115,12 @@ export default StatusBarView = class StatusBarView { } storeActiveBuffer() { - return this.buffer = __guardMethod__(this.getActiveItem(), 'getBuffer', o => o.getBuffer()); + const activeItem = this.getActiveItem(); + if (activeItem) { + if (typeof activeItem.getBuffer == "function") { + this.buffer = activeItem.getBuffer(); + } + } } subscribeToBuffer(event, callback) { @@ -146,11 +150,3 @@ export default StatusBarView = class StatusBarView { })(); } }; - -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { - return transform(obj, methodName); - } else { - return undefined; - } -} From eefc443034fc9fa3e8ac9af409d80551cf5b75dd Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:09:55 -0500 Subject: [PATCH 16/53] status-bar-view remove IIFES (excess return) --- lib/status-bar-view.js | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index cbdf1e9..f907538 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS205: Consider reworking code to avoid use of IIFEs * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -130,23 +129,15 @@ export default StatusBarView = class StatusBarView { subscribeAllToBuffer() { if (!this.buffer) { return; } - return (() => { - const result = []; - for (let [event, callback] of this.bufferSubscriptions) { - result.push(this.buffer.on(event, callback)); - } - return result; - })(); + for (let [event, callback] of this.bufferSubscriptions) { + this.buffer.on(event, callback); + } } unsubscribeAllFromBuffer() { if (!this.buffer) { return; } - return (() => { - const result = []; - for (let [event, callback] of this.bufferSubscriptions) { - result.push(this.buffer.off(event, callback)); - } - return result; - })(); + for (let [event, callback] of this.bufferSubscriptions) { + this.buffer.off(event, callback); + } } }; From 75af948a03c59f609e56b43cc7566af7c166d20e Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:11:52 -0500 Subject: [PATCH 17/53] status-bar-view remove implicit returns --- lib/status-bar-view.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index f907538..54d00a5 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -1,12 +1,11 @@ 'use babel' /* * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ let StatusBarView; -import { Disposable } from 'atom'; +// import { Disposable } from 'atom'; import Tile from './tile'; export default StatusBarView = class StatusBarView { @@ -43,7 +42,7 @@ export default StatusBarView = class StatusBarView { this.storeActiveBuffer(); this.subscribeAllToBuffer(); - return this.element.dispatchEvent(new CustomEvent('active-buffer-changed', {bubbles: true})); + this.element.dispatchEvent(new CustomEvent('active-buffer-changed', {bubbles: true})); }); this.storeActiveBuffer(); @@ -52,7 +51,7 @@ export default StatusBarView = class StatusBarView { destroy() { this.activeItemSubscription.dispose(); this.unsubscribeAllFromBuffer(); - return this.element.remove(); + this.element.remove(); } addLeftTile(options) { @@ -124,7 +123,7 @@ export default StatusBarView = class StatusBarView { subscribeToBuffer(event, callback) { this.bufferSubscriptions.push([event, callback]); - if (this.buffer) { return this.buffer.on(event, callback); } + if (this.buffer) { this.buffer.on(event, callback); } } subscribeAllToBuffer() { From 940fe81a707989ca16b9c8339f2c7d438c5597f5 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:26:20 -0500 Subject: [PATCH 18/53] git-view remove gurad --- lib/git-view.js | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/lib/git-view.js b/lib/git-view.js index 378f8a4..d25de9e 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -3,7 +3,6 @@ * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from * DS102: Remove unnecessary code created because of implicit returns - * DS103: Rewrite code to no longer use __guard__ * DS104: Avoid inline assignments * DS205: Consider reworking code to avoid use of IIFEs * DS207: Consider shorter variations of null checks @@ -79,7 +78,9 @@ export default GitView = class GitView { if (this.savedSubscription != null) { this.savedSubscription.dispose(); } - this.savedSubscription = __guardMethod__(activeItem, 'onDidSave', o => o.onDidSave(() => this.update())); + if (activeItem && typeof activeItem.onDidSave == "function") { + this.savedSubscription = activeItem.onDidSave(() => this.update()); + } return this.update(); } @@ -134,7 +135,10 @@ export default GitView = class GitView { } getActiveItemPath() { - return __guardMethod__(this.getActiveItem(), 'getPath', o => o.getPath()); + const activeItem = this.getActiveItem(); + if (activeItem && typeof activeItem.getPath == "function") { + return activeItem.getPath(); + } } getRepositoryForActiveItem() { @@ -312,11 +316,3 @@ export default GitView = class GitView { } } }; - -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { - return transform(obj, methodName); - } else { - return undefined; - } -} From 004d0980e068f04b21fafea8def6a3216c2c708a Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:31:25 -0500 Subject: [PATCH 19/53] git-view inline-assignments --- lib/git-view.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/git-view.js b/lib/git-view.js index d25de9e..3d430fa 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -3,7 +3,6 @@ * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from * DS102: Remove unnecessary code created because of implicit returns - * DS104: Avoid inline assignments * DS205: Consider reworking code to avoid use of IIFEs * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md @@ -233,11 +232,11 @@ export default GitView = class GitView { } updateAsNewFile() { - let textEditor; this.clearStatus(); this.gitStatusIcon.classList.add('icon-diff-added', 'status-added'); - if (textEditor = atom.workspace.getActiveTextEditor()) { + const textEditor = atom.workspace.getActiveTextEditor(); + if (textEditor) { this.gitStatusIcon.textContent = `+${textEditor.getLineCount()}`; this.updateTooltipText(`${_.pluralize(textEditor.getLineCount(), 'line')} in this new file not yet committed`); } else { @@ -296,8 +295,10 @@ export default GitView = class GitView { const itemPath = this.getActiveItemPath(); if (this.showGitInformation(repo) && (itemPath != null)) { - let left; - const status = (left = repo.getCachedPathStatus(itemPath)) != null ? left : 0; + + let repoCachedPathStatus = repo.getCachedPathStatus(itemPath); + const status = repoCachedPathStatus != null ? repoCachedPathStatus : 0; + if (repo.isStatusNew(status)) { return this.updateAsNewFile(); } From 2bae59b3e693f71d62028cbedeeebc016c0a240d Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:39:21 -0500 Subject: [PATCH 20/53] git view remove implicit returns - --- lib/git-view.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/git-view.js b/lib/git-view.js index 3d430fa..32bf609 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -21,10 +21,10 @@ export default GitView = class GitView { this.createStatusArea(); this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { - return this.subscribeToActiveItem(); + this.subscribeToActiveItem(); }); this.projectPathSubscription = atom.project.onDidChangePaths(() => { - return this.subscribeToRepositories(); + this.subscribeToRepositories(); }); this.subscribeToRepositories(); this.subscribeToActiveItem(); @@ -43,7 +43,7 @@ export default GitView = class GitView { this.branchLabel = document.createElement('span'); this.branchLabel.classList.add('branch-label'); this.branchArea.appendChild(this.branchLabel); - return this.element.branchLabel = this.branchLabel; + this.element.branchLabel = this.branchLabel; } createCommitsArea() { @@ -57,7 +57,7 @@ export default GitView = class GitView { this.commitsBehind = document.createElement('span'); this.commitsBehind.classList.add('icon', 'icon-arrow-down', 'commits-behind-label'); - return this.commitsArea.appendChild(this.commitsBehind); + this.commitsArea.appendChild(this.commitsBehind); } createStatusArea() { @@ -68,7 +68,7 @@ export default GitView = class GitView { this.gitStatusIcon = document.createElement('span'); this.gitStatusIcon.classList.add('icon'); this.gitStatus.appendChild(this.gitStatusIcon); - return this.element.gitStatusIcon = this.gitStatusIcon; + this.element.gitStatusIcon = this.gitStatusIcon; } subscribeToActiveItem() { @@ -81,7 +81,7 @@ export default GitView = class GitView { this.savedSubscription = activeItem.onDidSave(() => this.update()); } - return this.update(); + this.update(); } subscribeToRepositories() { @@ -130,7 +130,7 @@ export default GitView = class GitView { if (this.commitsBehindTooltipDisposable != null) { this.commitsBehindTooltipDisposable.dispose(); } - return (this.statusTooltipDisposable != null ? this.statusTooltipDisposable.dispose() : undefined); + this.statusTooltipDisposable != null ? this.statusTooltipDisposable.dispose() : undefined; } getActiveItemPath() { @@ -162,7 +162,7 @@ export default GitView = class GitView { const repo = this.getRepositoryForActiveItem(); this.updateBranchText(repo); this.updateAheadBehindCount(repo); - return this.updateStatusText(repo); + this.updateStatusText(repo); } updateBranchText(repo) { @@ -173,9 +173,9 @@ export default GitView = class GitView { if (this.branchTooltipDisposable != null) { this.branchTooltipDisposable.dispose(); } - return this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, {title: `On branch ${head}`}); + this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, {title: `On branch ${head}`}); } else { - return this.branchArea.style.display = 'none'; + this.branchArea.style.display = 'none'; } } @@ -221,14 +221,14 @@ export default GitView = class GitView { } if ((ahead > 0) || (behind > 0)) { - return this.commitsArea.style.display = ''; + this.commitsArea.style.display = ''; } else { - return this.commitsArea.style.display = 'none'; + this.commitsArea.style.display = 'none'; } } clearStatus() { - return this.gitStatusIcon.classList.remove('icon-diff-modified', 'status-modified', 'icon-diff-added', 'status-added', 'icon-diff-ignored', 'status-ignored'); + this.gitStatusIcon.classList.remove('icon-diff-modified', 'status-modified', 'icon-diff-added', 'status-added', 'icon-diff-ignored', 'status-ignored'); } updateAsNewFile() { @@ -244,7 +244,7 @@ export default GitView = class GitView { this.updateTooltipText(); } - return this.gitStatus.style.display = ''; + this.gitStatus.style.display = ''; } updateAsModifiedFile(repo, path) { @@ -266,7 +266,7 @@ export default GitView = class GitView { this.updateTooltipText(); } - return this.gitStatus.style.display = ''; + this.gitStatus.style.display = ''; } updateAsIgnoredFile() { @@ -275,7 +275,7 @@ export default GitView = class GitView { this.gitStatusIcon.classList.add('icon-diff-ignored', 'status-ignored'); this.gitStatusIcon.textContent = ''; this.gitStatus.style.display = ''; - return this.updateTooltipText("File is ignored by git"); + this.updateTooltipText("File is ignored by git"); } updateTooltipText(text) { @@ -283,14 +283,14 @@ export default GitView = class GitView { this.statusTooltipDisposable.dispose(); } if (text) { - return this.statusTooltipDisposable = atom.tooltips.add(this.gitStatusIcon, {title: text}); + this.statusTooltipDisposable = atom.tooltips.add(this.gitStatusIcon, {title: text}); } } updateStatusText(repo) { const hideStatus = () => { this.clearStatus(); - return this.gitStatus.style.display = 'none'; + this.gitStatus.style.display = 'none'; }; const itemPath = this.getActiveItemPath(); From f1a7317f5109c64c5d21df6aeaf778efeda872ef Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:40:07 -0500 Subject: [PATCH 21/53] git view return void instead of the functions --- lib/git-view.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/git-view.js b/lib/git-view.js index 32bf609..9343418 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from - * DS102: Remove unnecessary code created because of implicit returns * DS205: Consider reworking code to avoid use of IIFEs * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md @@ -300,20 +299,25 @@ export default GitView = class GitView { const status = repoCachedPathStatus != null ? repoCachedPathStatus : 0; if (repo.isStatusNew(status)) { - return this.updateAsNewFile(); + this.updateAsNewFile(); + return; } if (repo.isStatusModified(status)) { - return this.updateAsModifiedFile(repo, itemPath); + this.updateAsModifiedFile(repo, itemPath); + return; } if (repo.isPathIgnored(itemPath)) { - return this.updateAsIgnoredFile(); + this.updateAsIgnoredFile(); + return; } else { - return hideStatus(); + hideStatus(); + return; } } else { - return hideStatus(); + hideStatus(); + return; } } }; From 6c1088b45998a87279e2d713f9429bcc6e0bd4aa Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:42:03 -0500 Subject: [PATCH 22/53] git-view remove IIFEs (excess returns) --- lib/git-view.js | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/lib/git-view.js b/lib/git-view.js index 9343418..c4090e7 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from - * DS205: Consider reworking code to avoid use of IIFEs * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -89,22 +88,18 @@ export default GitView = class GitView { } this.repositorySubscriptions = new CompositeDisposable; - return (() => { - const result = []; - for (let repo of atom.project.getRepositories()) { - if (repo != null) { - this.repositorySubscriptions.add(repo.onDidChangeStatus(({path, status}) => { - if (path === this.getActiveItemPath()) { return this.update(); } - }) - ); - result.push(this.repositorySubscriptions.add(repo.onDidChangeStatuses(() => { - return this.update(); - }) - )); - } + for (let repo of atom.project.getRepositories()) { + if (repo != null) { + this.repositorySubscriptions.add(repo.onDidChangeStatus(({path, status}) => { + if (path === this.getActiveItemPath()) { this.update(); } + }) + ); + this.repositorySubscriptions.add(repo.onDidChangeStatuses(() => { + this.update(); + }) + ); } - return result; - })(); + } } destroy() { From 5ccc119b6d86e6c0d325f1fe1d8fb9bdc983f101 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 07:47:40 -0500 Subject: [PATCH 23/53] main remove excess returns --- lib/main.js | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/main.js b/lib/main.js index 8e8b113..149685b 100644 --- a/lib/main.js +++ b/lib/main.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from - * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -24,7 +23,7 @@ export default { this.attachStatusBar(); this.subscriptions.add(atom.config.onDidChange('status-bar.fullWidth', () => { - return this.attachStatusBar(); + this.attachStatusBar(); }) ); @@ -32,14 +31,14 @@ export default { this.statusBarVisibilitySubscription = atom.config.observe('status-bar.isVisible', () => { - return this.updateStatusBarVisibility(); + this.updateStatusBarVisibility(); }); atom.commands.add('atom-workspace', 'status-bar:toggle', () => { if (this.statusBarPanel.isVisible()) { - return atom.config.set('status-bar.isVisible', false); + atom.config.set('status-bar.isVisible', false); } else { - return atom.config.set('status-bar.isVisible', true); + atom.config.set('status-bar.isVisible', true); } }); @@ -59,7 +58,7 @@ export default { this.statusBar.addLeftTile({item: this.selectionCount.element, priority: 2}); this.gitInfo = new GitView(); - return this.gitInfoTile = this.statusBar.addRightTile({item: this.gitInfo.element, priority: 0}); + this.gitInfoTile = this.statusBar.addRightTile({item: this.gitInfo.element, priority: 0}); }, deactivate() { @@ -108,14 +107,14 @@ export default { } this.emitters = null; - if (atom.__workspaceView != null) { return delete atom.__workspaceView.statusBar; } + if (atom.__workspaceView != null) { delete atom.__workspaceView.statusBar; } }, updateStatusBarVisibility() { if (atom.config.get('status-bar.isVisible')) { - return this.statusBarPanel.show(); + this.statusBarPanel.show(); } else { - return this.statusBarPanel.hide(); + this.statusBarPanel.hide(); } }, @@ -134,9 +133,9 @@ export default { const panelArgs = {item: this.statusBar, priority: 0}; if (atom.config.get('status-bar.fullWidth')) { - return this.statusBarPanel = atom.workspace.addFooterPanel(panelArgs); + this.statusBarPanel = atom.workspace.addFooterPanel(panelArgs); } else { - return this.statusBarPanel = atom.workspace.addBottomPanel(panelArgs); + this.statusBarPanel = atom.workspace.addBottomPanel(panelArgs); } }, @@ -151,11 +150,11 @@ export default { return { addLeftTile(...args) { Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); - return statusbar.addLeftTile(...Array.from(args || [])); + statusbar.addLeftTile(...Array.from(args || [])); }, addRightTile(...args) { Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); - return statusbar.addRightTile(...Array.from(args || [])); + statusbar.addRightTile(...Array.from(args || [])); }, getLeftTiles() { Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); From 4e9313af276d2f957fa333c97f787b2ec8b04d85 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:05:46 -0500 Subject: [PATCH 24/53] cursor-position-view shorter null check --- lib/cursor-position-view.js | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index 9f8a6bd..408452f 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -1,9 +1,4 @@ 'use babel' -/* - * decaffeinate suggestions: - * DS207: Consider shorter variations of null checks - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ let CursorPositionView; import { Disposable } from 'atom'; @@ -18,8 +13,8 @@ export default CursorPositionView = class CursorPositionView { this.goToLineLink.classList.add('inline-block'); this.element.appendChild(this.goToLineLink); - let left = atom.config.get('status-bar.cursorPositionFormat'); - this.formatString = left != null ? left : '%L:%C'; + let cursorPositionFormat = atom.config.get('status-bar.cursorPositionFormat'); + this.formatString = cursorPositionFormat ? cursorPositionFormat : '%L:%C'; this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor(activeEditor => this.subscribeToActiveTextEditor()); @@ -33,19 +28,19 @@ export default CursorPositionView = class CursorPositionView { destroy() { this.activeItemSubscription.dispose(); - if (this.cursorSubscription != null) { + if (this.cursorSubscription) { this.cursorSubscription.dispose(); } this.tooltip.dispose(); - if (this.configSubscription != null) { + if (this.configSubscription) { this.configSubscription.dispose(); } this.clickSubscription.dispose(); - this.updateSubscription != null ? this.updateSubscription.dispose() : undefined; + this.updateSubscription ? this.updateSubscription.dispose() : undefined; } subscribeToActiveTextEditor() { - if (this.cursorSubscription != null) { + if (this.cursorSubscription) { this.cursorSubscription.dispose(); } @@ -55,16 +50,16 @@ export default CursorPositionView = class CursorPositionView { selectionsMarkerLayer = editor.selectionsMarkerLayer; } - this.cursorSubscription = selectionsMarkerLayer != null ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) : undefined; + this.cursorSubscription = selectionsMarkerLayer ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) : undefined; this.scheduleUpdate(); } subscribeToConfig() { - if (this.configSubscription != null) { + if (this.configSubscription) { this.configSubscription.dispose(); } this.configSubscription = atom.config.observe('status-bar.cursorPositionFormat', value => { - this.formatString = value != null ? value : '%L:%C'; + this.formatString = value ? value : '%L:%C'; this.scheduleUpdate(); }); } From a56d0476ea8223dbd07adf957a7dd178c56709fa Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:07:41 -0500 Subject: [PATCH 25/53] file-info-view shorter null check --- lib/file-info-view.js | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/file-info-view.js b/lib/file-info-view.js index 133cb9b..8204fab 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * Amin: Simplify Optional Chaining at 117 and 130 inside subscribeToActiveItem - * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ let FileInfoView; @@ -51,17 +50,17 @@ export default FileInfoView = class FileInfoView { } clearCopiedTooltip() { - if (this.copiedTooltip != null) { + if (this.copiedTooltip) { this.copiedTooltip.dispose(); } this.registerTooltip(); } showCopiedTooltip(copyRelativePath) { - if (this.tooltip != null) { + if (this.tooltip) { this.tooltip.dispose(); } - if (this.copiedTooltip != null) { + if (this.copiedTooltip) { this.copiedTooltip.dispose(); } const text = this.getActiveItemCopyText(copyRelativePath); @@ -94,7 +93,7 @@ export default FileInfoView = class FileInfoView { } // An item path could be a url, we only want to copy the `path` part - if ((path != null ? path.indexOf('://') : undefined) > 0) { + if ((path ? path.indexOf('://') : undefined) > 0) { ({ path } = url.parse(path)); @@ -103,10 +102,10 @@ export default FileInfoView = class FileInfoView { } subscribeToActiveItem() { - if (this.modifiedSubscription != null) { + if (this.modifiedSubscription) { this.modifiedSubscription.dispose(); } - if (this.titleSubscription != null) { + if (this.titleSubscription) { this.titleSubscription.dispose(); } let activeItem = this.getActiveItem(); @@ -135,19 +134,19 @@ export default FileInfoView = class FileInfoView { destroy() { this.activeItemSubscription.dispose(); - if (this.titleSubscription != null) { + if (this.titleSubscription) { this.titleSubscription.dispose(); } - if (this.modifiedSubscription != null) { + if (this.modifiedSubscription) { this.modifiedSubscription.dispose(); } - if (this.clickSubscription != null) { + if (this.clickSubscription) { this.clickSubscription.dispose(); } - if (this.copiedTooltip != null) { + if (this.copiedTooltip) { this.copiedTooltip.dispose(); } - this.tooltip != null ? this.tooltip.dispose() : undefined; + this.tooltip ? this.tooltip.dispose() : undefined; } getActiveItem() { @@ -189,7 +188,7 @@ export default FileInfoView = class FileInfoView { let path = activeItem.getPath(); if (path) { const relativized = atom.project.relativize(path); - this.currentPath.textContent = (relativized != null) ? fs.tildify(relativized) : path; + this.currentPath.textContent = (relativized) ? fs.tildify(relativized) : path; return; } } From 5312a4f86f59b057a5163564820997164ac32ebd Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:08:31 -0500 Subject: [PATCH 26/53] git-view shorter null check --- lib/git-view.js | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/lib/git-view.js b/lib/git-view.js index c4090e7..b640201 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from - * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ let GitView; @@ -72,7 +71,7 @@ export default GitView = class GitView { subscribeToActiveItem() { const activeItem = this.getActiveItem(); - if (this.savedSubscription != null) { + if (this.savedSubscription) { this.savedSubscription.dispose(); } if (activeItem && typeof activeItem.onDidSave == "function") { @@ -83,13 +82,13 @@ export default GitView = class GitView { } subscribeToRepositories() { - if (this.repositorySubscriptions != null) { + if (this.repositorySubscriptions) { this.repositorySubscriptions.dispose(); } this.repositorySubscriptions = new CompositeDisposable; for (let repo of atom.project.getRepositories()) { - if (repo != null) { + if (repo) { this.repositorySubscriptions.add(repo.onDidChangeStatus(({path, status}) => { if (path === this.getActiveItemPath()) { this.update(); } }) @@ -103,28 +102,28 @@ export default GitView = class GitView { } destroy() { - if (this.activeItemSubscription != null) { + if (this.activeItemSubscription) { this.activeItemSubscription.dispose(); } - if (this.projectPathSubscription != null) { + if (this.projectPathSubscription) { this.projectPathSubscription.dispose(); } - if (this.savedSubscription != null) { + if (this.savedSubscription) { this.savedSubscription.dispose(); } - if (this.repositorySubscriptions != null) { + if (this.repositorySubscriptions) { this.repositorySubscriptions.dispose(); } - if (this.branchTooltipDisposable != null) { + if (this.branchTooltipDisposable) { this.branchTooltipDisposable.dispose(); } - if (this.commitsAheadTooltipDisposable != null) { + if (this.commitsAheadTooltipDisposable) { this.commitsAheadTooltipDisposable.dispose(); } - if (this.commitsBehindTooltipDisposable != null) { + if (this.commitsBehindTooltipDisposable) { this.commitsBehindTooltipDisposable.dispose(); } - this.statusTooltipDisposable != null ? this.statusTooltipDisposable.dispose() : undefined; + this.statusTooltipDisposable ? this.statusTooltipDisposable.dispose() : undefined; } getActiveItemPath() { @@ -164,7 +163,7 @@ export default GitView = class GitView { const head = repo.getShortHead(this.getActiveItemPath()); this.branchLabel.textContent = head; if (head) { this.branchArea.style.display = ''; } - if (this.branchTooltipDisposable != null) { + if (this.branchTooltipDisposable) { this.branchTooltipDisposable.dispose(); } this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, {title: `On branch ${head}`}); @@ -195,7 +194,7 @@ export default GitView = class GitView { if (ahead > 0) { this.commitsAhead.textContent = ahead; this.commitsAhead.style.display = ''; - if (this.commitsAheadTooltipDisposable != null) { + if (this.commitsAheadTooltipDisposable) { this.commitsAheadTooltipDisposable.dispose(); } this.commitsAheadTooltipDisposable = atom.tooltips.add(this.commitsAhead, {title: `${_.pluralize(ahead, 'commit')} ahead of upstream`}); @@ -206,7 +205,7 @@ export default GitView = class GitView { if (behind > 0) { this.commitsBehind.textContent = behind; this.commitsBehind.style.display = ''; - if (this.commitsBehindTooltipDisposable != null) { + if (this.commitsBehindTooltipDisposable) { this.commitsBehindTooltipDisposable.dispose(); } this.commitsBehindTooltipDisposable = atom.tooltips.add(this.commitsBehind, {title: `${_.pluralize(behind, 'commit')} behind upstream`}); @@ -273,7 +272,7 @@ export default GitView = class GitView { } updateTooltipText(text) { - if (this.statusTooltipDisposable != null) { + if (this.statusTooltipDisposable) { this.statusTooltipDisposable.dispose(); } if (text) { @@ -288,10 +287,10 @@ export default GitView = class GitView { }; const itemPath = this.getActiveItemPath(); - if (this.showGitInformation(repo) && (itemPath != null)) { + if (this.showGitInformation(repo) && (itemPath)) { let repoCachedPathStatus = repo.getCachedPathStatus(itemPath); - const status = repoCachedPathStatus != null ? repoCachedPathStatus : 0; + const status = repoCachedPathStatus ? repoCachedPathStatus : 0; if (repo.isStatusNew(status)) { this.updateAsNewFile(); From 5393fb194195b1757271fc4c6ca395d24c7083ee Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:09:17 -0500 Subject: [PATCH 27/53] launch-mode-view shorter null check --- lib/launch-mode-view.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js index 4df1ca3..ed2cbea 100644 --- a/lib/launch-mode-view.js +++ b/lib/launch-mode-view.js @@ -1,9 +1,4 @@ 'use babel' -/* - * decaffeinate suggestions: - * DS207: Consider shorter variations of null checks - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ let LaunchModeView; export default LaunchModeView = class LaunchModeView { @@ -20,6 +15,6 @@ export default LaunchModeView = class LaunchModeView { } detachedCallback() { - this.tooltipDisposable != null ? this.tooltipDisposable.dispose() : undefined; + this.tooltipDisposable ? this.tooltipDisposable.dispose() : undefined; } }; From b6e16214c12de577f6e3646471428c29bac7b5aa Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:09:53 -0500 Subject: [PATCH 28/53] main shorter null check --- lib/main.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lib/main.js b/lib/main.js index 149685b..bca777e 100644 --- a/lib/main.js +++ b/lib/main.js @@ -2,7 +2,6 @@ /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from - * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ import { CompositeDisposable, Emitter } from 'atom'; @@ -62,52 +61,52 @@ export default { }, deactivate() { - if (this.statusBarVisibilitySubscription != null) { + if (this.statusBarVisibilitySubscription) { this.statusBarVisibilitySubscription.dispose(); } this.statusBarVisibilitySubscription = null; - if (this.gitInfo != null) { + if (this.gitInfo) { this.gitInfo.destroy(); } this.gitInfo = null; - if (this.fileInfo != null) { + if (this.fileInfo) { this.fileInfo.destroy(); } this.fileInfo = null; - if (this.cursorPosition != null) { + if (this.cursorPosition) { this.cursorPosition.destroy(); } this.cursorPosition = null; - if (this.selectionCount != null) { + if (this.selectionCount) { this.selectionCount.destroy(); } this.selectionCount = null; - if (this.statusBarPanel != null) { + if (this.statusBarPanel) { this.statusBarPanel.destroy(); } this.statusBarPanel = null; - if (this.statusBar != null) { + if (this.statusBar) { this.statusBar.destroy(); } this.statusBar = null; - if (this.subscriptions != null) { + if (this.subscriptions) { this.subscriptions.dispose(); } this.subscriptions = null; - if (this.emitters != null) { + if (this.emitters) { this.emitters.dispose(); } this.emitters = null; - if (atom.__workspaceView != null) { delete atom.__workspaceView.statusBar; } + if (atom.__workspaceView) { delete atom.__workspaceView.statusBar; } }, updateStatusBarVisibility() { @@ -129,7 +128,7 @@ export default { }, attachStatusBar() { - if (this.statusBarPanel != null) { this.statusBarPanel.destroy(); } + if (this.statusBarPanel) { this.statusBarPanel.destroy(); } const panelArgs = {item: this.statusBar, priority: 0}; if (atom.config.get('status-bar.fullWidth')) { From b4896c4dc8f83746538824142af3a7bdcc571b69 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:10:44 -0500 Subject: [PATCH 29/53] selection-count-view shorter null check --- lib/selection-count-view.js | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index f222680..ffd1552 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -1,9 +1,4 @@ 'use babel' -/* - * decaffeinate suggestions: - * DS207: Consider shorter variations of null checks - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ let SelectionCountView; import _ from 'underscore-plus'; @@ -30,32 +25,32 @@ export default SelectionCountView = class SelectionCountView { destroy() { this.activeItemSubscription.dispose(); - if (this.selectionSubscription != null) { + if (this.selectionSubscription) { this.selectionSubscription.dispose(); } - if (this.configSubscription != null) { + if (this.configSubscription) { this.configSubscription.dispose(); } this.tooltipDisposable.dispose(); } subscribeToConfig() { - if (this.configSubscription != null) { + if (this.configSubscription) { this.configSubscription.dispose(); } this.configSubscription = atom.config.observe('status-bar.selectionCountFormat', value => { - this.formatString = value != null ? value : '(%L, %C)'; + this.formatString = value ? value : '(%L, %C)'; this.scheduleUpdateCount(); }); } subscribeToActiveTextEditor() { - if (this.selectionSubscription != null) { + if (this.selectionSubscription) { this.selectionSubscription.dispose(); } const activeEditor = this.getActiveTextEditor(); - const selectionsMarkerLayer = activeEditor != null ? activeEditor.selectionsMarkerLayer : undefined; - this.selectionSubscription = selectionsMarkerLayer != null ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdateCount.bind(this)) : undefined; + const selectionsMarkerLayer = activeEditor ? activeEditor.selectionsMarkerLayer : undefined; + this.selectionSubscription = selectionsMarkerLayer ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdateCount.bind(this)) : undefined; this.scheduleUpdateCount(); } @@ -83,7 +78,7 @@ export default SelectionCountView = class SelectionCountView { } let lineCount, rangeEndColumn; - if (range != null) { + if (range) { lineCount = range.getRowCount(); rangeEndColumn = range.end.column; } From e5615e55cea2d7ff719225af324b49d192f092f6 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:13:04 -0500 Subject: [PATCH 30/53] status-bar-view shorter null check --- lib/status-bar-view.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index 54d00a5..def5227 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -1,9 +1,4 @@ 'use babel' -/* - * decaffeinate suggestions: - * DS207: Consider shorter variations of null checks - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ let StatusBarView; // import { Disposable } from 'atom'; import Tile from './tile'; @@ -57,7 +52,7 @@ export default StatusBarView = class StatusBarView { addLeftTile(options) { let index; const newItem = options.item; - const newPriority = (options != null ? options.priority : undefined) != null ? (options != null ? options.priority : undefined) : this.leftTiles[this.leftTiles.length - 1].priority + 1; + const newPriority = (options ? options.priority : undefined) != null ? (options ? options.priority : undefined) : this.leftTiles[this.leftTiles.length - 1].priority + 1; let nextItem = null; for (index = 0; index < this.leftTiles.length; index++) { const {priority, item} = this.leftTiles[index]; @@ -78,7 +73,7 @@ export default StatusBarView = class StatusBarView { addRightTile(options) { let index; const newItem = options.item; - const newPriority = (options != null ? options.priority : undefined) != null ? (options != null ? options.priority : undefined) : this.rightTiles[0].priority + 1; + const newPriority = (options ? options.priority : undefined) != null ? (options ? options.priority : undefined) : this.rightTiles[0].priority + 1; let nextItem = null; for (index = 0; index < this.rightTiles.length; index++) { const {priority, item} = this.rightTiles[index]; From 10fabca43a4423df1cc16d7a86d98dc41e3ecae0 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 12 Apr 2020 08:15:07 -0500 Subject: [PATCH 31/53] prettier --- lib/cursor-position-view.js | 50 +++++++++---- lib/file-info-view.js | 69 +++++++++++------- lib/git-view.js | 136 +++++++++++++++++++++++++----------- lib/launch-mode-view.js | 12 ++-- lib/main.js | 61 ++++++++++------ lib/selection-count-view.js | 46 ++++++++---- lib/status-bar-view.js | 50 +++++++++---- lib/tile.js | 2 +- 8 files changed, 291 insertions(+), 135 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index 408452f..7dc721c 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -1,10 +1,9 @@ -'use babel' +'use babel'; let CursorPositionView; import { Disposable } from 'atom'; export default CursorPositionView = class CursorPositionView { constructor() { - this.viewUpdatePending = false; this.element = document.createElement('status-bar-cursor'); @@ -13,15 +12,21 @@ export default CursorPositionView = class CursorPositionView { this.goToLineLink.classList.add('inline-block'); this.element.appendChild(this.goToLineLink); - let cursorPositionFormat = atom.config.get('status-bar.cursorPositionFormat'); + let cursorPositionFormat = atom.config.get( + 'status-bar.cursorPositionFormat' + ); this.formatString = cursorPositionFormat ? cursorPositionFormat : '%L:%C'; - this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor(activeEditor => this.subscribeToActiveTextEditor()); + this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor( + activeEditor => this.subscribeToActiveTextEditor() + ); this.subscribeToConfig(); this.subscribeToActiveTextEditor(); - this.tooltip = atom.tooltips.add(this.element, {title: () => `Line ${this.row}, Column ${this.column}`}); + this.tooltip = atom.tooltips.add(this.element, { + title: () => `Line ${this.row}, Column ${this.column}` + }); this.handleClick(); } @@ -45,12 +50,14 @@ export default CursorPositionView = class CursorPositionView { } const editor = atom.workspace.getActiveTextEditor(); - let selectionsMarkerLayer + let selectionsMarkerLayer; if (editor) { selectionsMarkerLayer = editor.selectionsMarkerLayer; } - this.cursorSubscription = selectionsMarkerLayer ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) : undefined; + this.cursorSubscription = selectionsMarkerLayer + ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) + : undefined; this.scheduleUpdate(); } @@ -58,20 +65,31 @@ export default CursorPositionView = class CursorPositionView { if (this.configSubscription) { this.configSubscription.dispose(); } - this.configSubscription = atom.config.observe('status-bar.cursorPositionFormat', value => { - this.formatString = value ? value : '%L:%C'; - this.scheduleUpdate(); - }); + this.configSubscription = atom.config.observe( + 'status-bar.cursorPositionFormat', + value => { + this.formatString = value ? value : '%L:%C'; + this.scheduleUpdate(); + } + ); } handleClick() { - const clickHandler = () => atom.commands.dispatch(atom.views.getView(atom.workspace.getActiveTextEditor()), 'go-to-line:toggle'); + const clickHandler = () => + atom.commands.dispatch( + atom.views.getView(atom.workspace.getActiveTextEditor()), + 'go-to-line:toggle' + ); this.element.addEventListener('click', clickHandler); - this.clickSubscription = new Disposable(() => this.element.removeEventListener('click', clickHandler)); + this.clickSubscription = new Disposable(() => + this.element.removeEventListener('click', clickHandler) + ); } scheduleUpdate() { - if (this.viewUpdatePending) { return; } + if (this.viewUpdatePending) { + return; + } this.viewUpdatePending = true; this.updateSubscription = atom.views.updateDocument(() => { @@ -86,7 +104,9 @@ export default CursorPositionView = class CursorPositionView { if (position) { this.row = position.row + 1; this.column = position.column + 1; - this.goToLineLink.textContent = this.formatString.replace('%L', this.row).replace('%C', this.column); + this.goToLineLink.textContent = this.formatString + .replace('%L', this.row) + .replace('%C', this.column); this.element.classList.remove('hide'); } else { this.goToLineLink.textContent = ''; diff --git a/lib/file-info-view.js b/lib/file-info-view.js index 8204fab..e9e2442 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -1,4 +1,4 @@ -'use babel' +'use babel'; /* * decaffeinate suggestions: * Amin: Simplify Optional Chaining at 117 and 130 inside subscribeToActiveItem @@ -21,9 +21,11 @@ export default FileInfoView = class FileInfoView { this.element.getActiveItem = this.getActiveItem.bind(this); - this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { - this.subscribeToActiveItem(); - }); + this.activeItemSubscription = atom.workspace + .getCenter() + .onDidChangeActivePaneItem(() => { + this.subscribeToActiveItem(); + }); this.subscribeToActiveItem(); this.registerTooltip(); @@ -34,19 +36,21 @@ export default FileInfoView = class FileInfoView { atom.clipboard.write(text); setTimeout(() => { this.clearCopiedTooltip(); - } - , 2000); + }, 2000); }; this.element.addEventListener('click', clickHandler); - this.clickSubscription = new Disposable(() => this.element.removeEventListener('click', clickHandler)); + this.clickSubscription = new Disposable(() => + this.element.removeEventListener('click', clickHandler) + ); } registerTooltip() { - this.tooltip = atom.tooltips.add(this.element, { title() { - return "Click to copy absolute file path (Shift + Click to copy relative path)"; - } - }); + this.tooltip = atom.tooltips.add(this.element, { + title() { + return 'Click to copy absolute file path (Shift + Click to copy relative path)'; + } + }); } clearCopiedTooltip() { @@ -70,8 +74,7 @@ export default FileInfoView = class FileInfoView { delay: { show: 0 } - } - ); + }); } getActiveItemCopyText(copyRelativePath) { @@ -82,7 +85,9 @@ export default FileInfoView = class FileInfoView { path = activeItem.getPath(); } - if ((path == null)) { return activeItem.getTitle() || ''; } + if (path == null) { + return activeItem.getTitle() || ''; + } // Make sure we try to relativize before parsing URLs. if (copyRelativePath) { @@ -94,9 +99,7 @@ export default FileInfoView = class FileInfoView { // An item path could be a url, we only want to copy the `path` part if ((path ? path.indexOf('://') : undefined) > 0) { - ({ - path - } = url.parse(path)); + ({ path } = url.parse(path)); } return path; } @@ -110,23 +113,33 @@ export default FileInfoView = class FileInfoView { } let activeItem = this.getActiveItem(); if (activeItem) { - if (this.updateCallback == null) { this.updateCallback = () => this.update(); } + if (this.updateCallback == null) { + this.updateCallback = () => this.update(); + } // optional chaining: if (typeof activeItem.onDidChangeTitle === 'function') { - this.titleSubscription = activeItem.onDidChangeTitle(this.updateCallback); + this.titleSubscription = activeItem.onDidChangeTitle( + this.updateCallback + ); } else if (typeof activeItem.on === 'function') { //TODO Remove once title-changed event support is removed activeItem.on('title-changed', this.updateCallback); - this.titleSubscription = { dispose: () => { + this.titleSubscription = { + dispose: () => { // optional chaining: - return (typeof activeItem.off === 'function' ? activeItem.off('title-changed', this.updateCallback) : undefined); - } - }; + return typeof activeItem.off === 'function' + ? activeItem.off('title-changed', this.updateCallback) + : undefined; + } + }; } // optional chaining: - this.modifiedSubscription = typeof activeItem.onDidChangeModified === 'function' ? activeItem.onDidChangeModified(this.updateCallback) : undefined; + this.modifiedSubscription = + typeof activeItem.onDidChangeModified === 'function' + ? activeItem.onDidChangeModified(this.updateCallback) + : undefined; } this.update(); @@ -184,16 +197,18 @@ export default FileInfoView = class FileInfoView { return; } - if (typeof activeItem.getPath == "function") { + if (typeof activeItem.getPath == 'function') { let path = activeItem.getPath(); if (path) { const relativized = atom.project.relativize(path); - this.currentPath.textContent = (relativized) ? fs.tildify(relativized) : path; + this.currentPath.textContent = relativized + ? fs.tildify(relativized) + : path; return; } } - if (typeof activeItem.getTitle == "function") { + if (typeof activeItem.getTitle == 'function') { let title = activeItem.getTitle(); if (title) { this.currentPath.textContent = title; diff --git a/lib/git-view.js b/lib/git-view.js index b640201..fc182b0 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -1,12 +1,12 @@ -'use babel' +'use babel'; /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ let GitView; -import _ from "underscore-plus"; -import { CompositeDisposable, GitRepositoryAsync } from "atom"; +import _ from 'underscore-plus'; +import { CompositeDisposable, GitRepositoryAsync } from 'atom'; export default GitView = class GitView { constructor() { @@ -17,9 +17,11 @@ export default GitView = class GitView { this.createCommitsArea(); this.createStatusArea(); - this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { - this.subscribeToActiveItem(); - }); + this.activeItemSubscription = atom.workspace + .getCenter() + .onDidChangeActivePaneItem(() => { + this.subscribeToActiveItem(); + }); this.projectPathSubscription = atom.project.onDidChangePaths(() => { this.subscribeToRepositories(); }); @@ -49,11 +51,19 @@ export default GitView = class GitView { this.element.appendChild(this.commitsArea); this.commitsAhead = document.createElement('span'); - this.commitsAhead.classList.add('icon', 'icon-arrow-up', 'commits-ahead-label'); + this.commitsAhead.classList.add( + 'icon', + 'icon-arrow-up', + 'commits-ahead-label' + ); this.commitsArea.appendChild(this.commitsAhead); this.commitsBehind = document.createElement('span'); - this.commitsBehind.classList.add('icon', 'icon-arrow-down', 'commits-behind-label'); + this.commitsBehind.classList.add( + 'icon', + 'icon-arrow-down', + 'commits-behind-label' + ); this.commitsArea.appendChild(this.commitsBehind); } @@ -74,8 +84,8 @@ export default GitView = class GitView { if (this.savedSubscription) { this.savedSubscription.dispose(); } - if (activeItem && typeof activeItem.onDidSave == "function") { - this.savedSubscription = activeItem.onDidSave(() => this.update()); + if (activeItem && typeof activeItem.onDidSave == 'function') { + this.savedSubscription = activeItem.onDidSave(() => this.update()); } this.update(); @@ -85,17 +95,21 @@ export default GitView = class GitView { if (this.repositorySubscriptions) { this.repositorySubscriptions.dispose(); } - this.repositorySubscriptions = new CompositeDisposable; + this.repositorySubscriptions = new CompositeDisposable(); for (let repo of atom.project.getRepositories()) { if (repo) { - this.repositorySubscriptions.add(repo.onDidChangeStatus(({path, status}) => { - if (path === this.getActiveItemPath()) { this.update(); } - }) + this.repositorySubscriptions.add( + repo.onDidChangeStatus(({ path, status }) => { + if (path === this.getActiveItemPath()) { + this.update(); + } + }) ); - this.repositorySubscriptions.add(repo.onDidChangeStatuses(() => { - this.update(); - }) + this.repositorySubscriptions.add( + repo.onDidChangeStatuses(() => { + this.update(); + }) ); } } @@ -123,18 +137,22 @@ export default GitView = class GitView { if (this.commitsBehindTooltipDisposable) { this.commitsBehindTooltipDisposable.dispose(); } - this.statusTooltipDisposable ? this.statusTooltipDisposable.dispose() : undefined; + this.statusTooltipDisposable + ? this.statusTooltipDisposable.dispose() + : undefined; } getActiveItemPath() { const activeItem = this.getActiveItem(); - if (activeItem && typeof activeItem.getPath == "function") { - return activeItem.getPath(); + if (activeItem && typeof activeItem.getPath == 'function') { + return activeItem.getPath(); } } getRepositoryForActiveItem() { - const [rootDir] = Array.from(atom.project.relativizePath(this.getActiveItemPath())); + const [rootDir] = Array.from( + atom.project.relativizePath(this.getActiveItemPath()) + ); const rootDirIndex = atom.project.getPaths().indexOf(rootDir); if (rootDirIndex >= 0) { return atom.project.getRepositories()[rootDirIndex]; @@ -162,11 +180,15 @@ export default GitView = class GitView { if (this.showGitInformation(repo)) { const head = repo.getShortHead(this.getActiveItemPath()); this.branchLabel.textContent = head; - if (head) { this.branchArea.style.display = ''; } + if (head) { + this.branchArea.style.display = ''; + } if (this.branchTooltipDisposable) { this.branchTooltipDisposable.dispose(); } - this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, {title: `On branch ${head}`}); + this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, { + title: `On branch ${head}` + }); } else { this.branchArea.style.display = 'none'; } @@ -174,12 +196,14 @@ export default GitView = class GitView { showGitInformation(repo) { let itemPath; - if (repo == null) { return false; } + if (repo == null) { + return false; + } if ((itemPath = this.getActiveItemPath())) { return atom.project.contains(itemPath); } else { - return (this.getActiveItem() == null); + return this.getActiveItem() == null; } } @@ -190,14 +214,17 @@ export default GitView = class GitView { } const itemPath = this.getActiveItemPath(); - const {ahead, behind} = repo.getCachedUpstreamAheadBehindCount(itemPath); + const { ahead, behind } = repo.getCachedUpstreamAheadBehindCount(itemPath); if (ahead > 0) { this.commitsAhead.textContent = ahead; this.commitsAhead.style.display = ''; if (this.commitsAheadTooltipDisposable) { this.commitsAheadTooltipDisposable.dispose(); } - this.commitsAheadTooltipDisposable = atom.tooltips.add(this.commitsAhead, {title: `${_.pluralize(ahead, 'commit')} ahead of upstream`}); + this.commitsAheadTooltipDisposable = atom.tooltips.add( + this.commitsAhead, + { title: `${_.pluralize(ahead, 'commit')} ahead of upstream` } + ); } else { this.commitsAhead.style.display = 'none'; } @@ -208,12 +235,15 @@ export default GitView = class GitView { if (this.commitsBehindTooltipDisposable) { this.commitsBehindTooltipDisposable.dispose(); } - this.commitsBehindTooltipDisposable = atom.tooltips.add(this.commitsBehind, {title: `${_.pluralize(behind, 'commit')} behind upstream`}); + this.commitsBehindTooltipDisposable = atom.tooltips.add( + this.commitsBehind, + { title: `${_.pluralize(behind, 'commit')} behind upstream` } + ); } else { this.commitsBehind.style.display = 'none'; } - if ((ahead > 0) || (behind > 0)) { + if (ahead > 0 || behind > 0) { this.commitsArea.style.display = ''; } else { this.commitsArea.style.display = 'none'; @@ -221,7 +251,14 @@ export default GitView = class GitView { } clearStatus() { - this.gitStatusIcon.classList.remove('icon-diff-modified', 'status-modified', 'icon-diff-added', 'status-added', 'icon-diff-ignored', 'status-ignored'); + this.gitStatusIcon.classList.remove( + 'icon-diff-modified', + 'status-modified', + 'icon-diff-added', + 'status-added', + 'icon-diff-ignored', + 'status-ignored' + ); } updateAsNewFile() { @@ -231,7 +268,12 @@ export default GitView = class GitView { const textEditor = atom.workspace.getActiveTextEditor(); if (textEditor) { this.gitStatusIcon.textContent = `+${textEditor.getLineCount()}`; - this.updateTooltipText(`${_.pluralize(textEditor.getLineCount(), 'line')} in this new file not yet committed`); + this.updateTooltipText( + `${_.pluralize( + textEditor.getLineCount(), + 'line' + )} in this new file not yet committed` + ); } else { this.gitStatusIcon.textContent = ''; this.updateTooltipText(); @@ -247,13 +289,28 @@ export default GitView = class GitView { this.gitStatusIcon.classList.add('icon-diff-modified', 'status-modified'); if (stats.added && stats.deleted) { this.gitStatusIcon.textContent = `+${stats.added}, -${stats.deleted}`; - this.updateTooltipText(`${_.pluralize(stats.added, 'line')} added and ${_.pluralize(stats.deleted, 'line')} deleted in this file not yet committed`); + this.updateTooltipText( + `${_.pluralize(stats.added, 'line')} added and ${_.pluralize( + stats.deleted, + 'line' + )} deleted in this file not yet committed` + ); } else if (stats.added) { this.gitStatusIcon.textContent = `+${stats.added}`; - this.updateTooltipText(`${_.pluralize(stats.added, 'line')} added to this file not yet committed`); + this.updateTooltipText( + `${_.pluralize( + stats.added, + 'line' + )} added to this file not yet committed` + ); } else if (stats.deleted) { this.gitStatusIcon.textContent = `-${stats.deleted}`; - this.updateTooltipText(`${_.pluralize(stats.deleted, 'line')} deleted from this file not yet committed`); + this.updateTooltipText( + `${_.pluralize( + stats.deleted, + 'line' + )} deleted from this file not yet committed` + ); } else { this.gitStatusIcon.textContent = ''; this.updateTooltipText(); @@ -265,10 +322,10 @@ export default GitView = class GitView { updateAsIgnoredFile() { this.clearStatus(); - this.gitStatusIcon.classList.add('icon-diff-ignored', 'status-ignored'); + this.gitStatusIcon.classList.add('icon-diff-ignored', 'status-ignored'); this.gitStatusIcon.textContent = ''; this.gitStatus.style.display = ''; - this.updateTooltipText("File is ignored by git"); + this.updateTooltipText('File is ignored by git'); } updateTooltipText(text) { @@ -276,7 +333,9 @@ export default GitView = class GitView { this.statusTooltipDisposable.dispose(); } if (text) { - this.statusTooltipDisposable = atom.tooltips.add(this.gitStatusIcon, {title: text}); + this.statusTooltipDisposable = atom.tooltips.add(this.gitStatusIcon, { + title: text + }); } } @@ -287,8 +346,7 @@ export default GitView = class GitView { }; const itemPath = this.getActiveItemPath(); - if (this.showGitInformation(repo) && (itemPath)) { - + if (this.showGitInformation(repo) && itemPath) { let repoCachedPathStatus = repo.getCachedPathStatus(itemPath); const status = repoCachedPathStatus ? repoCachedPathStatus : 0; diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js index ed2cbea..aeb3bd4 100644 --- a/lib/launch-mode-view.js +++ b/lib/launch-mode-view.js @@ -1,16 +1,20 @@ -'use babel' +'use babel'; let LaunchModeView; export default LaunchModeView = class LaunchModeView { - constructor({safeMode, devMode}={}) { + constructor({ safeMode, devMode } = {}) { this.element = document.createElement('status-bar-launch-mode'); this.element.classList.add('inline-block', 'icon', 'icon-color-mode'); if (devMode) { this.element.classList.add('text-error'); - this.tooltipDisposable = atom.tooltips.add(this.element, {title: 'This window is in dev mode'}); + this.tooltipDisposable = atom.tooltips.add(this.element, { + title: 'This window is in dev mode' + }); } else if (safeMode) { this.element.classList.add('text-success'); - this.tooltipDisposable = atom.tooltips.add(this.element, {title: 'This window is in safe mode'}); + this.tooltipDisposable = atom.tooltips.add(this.element, { + title: 'This window is in safe mode' + }); } } diff --git a/lib/main.js b/lib/main.js index bca777e..11d10b1 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,4 +1,4 @@ -'use babel' +'use babel'; /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from @@ -21,17 +21,20 @@ export default { this.statusBar = new StatusBarView(); this.attachStatusBar(); - this.subscriptions.add(atom.config.onDidChange('status-bar.fullWidth', () => { - this.attachStatusBar(); - }) + this.subscriptions.add( + atom.config.onDidChange('status-bar.fullWidth', () => { + this.attachStatusBar(); + }) ); this.updateStatusBarVisibility(); - this.statusBarVisibilitySubscription = - atom.config.observe('status-bar.isVisible', () => { + this.statusBarVisibilitySubscription = atom.config.observe( + 'status-bar.isVisible', + () => { this.updateStatusBarVisibility(); - }); + } + ); atom.commands.add('atom-workspace', 'status-bar:toggle', () => { if (this.statusBarPanel.isVisible()) { @@ -41,23 +44,35 @@ export default { } }); - const {safeMode, devMode} = atom.getLoadSettings(); + const { safeMode, devMode } = atom.getLoadSettings(); if (safeMode || devMode) { - const launchModeView = new LaunchModeView({safeMode, devMode}); - this.statusBar.addLeftTile({item: launchModeView.element, priority: -1}); + const launchModeView = new LaunchModeView({ safeMode, devMode }); + this.statusBar.addLeftTile({ + item: launchModeView.element, + priority: -1 + }); } this.fileInfo = new FileInfoView(); - this.statusBar.addLeftTile({item: this.fileInfo.element, priority: 0}); + this.statusBar.addLeftTile({ item: this.fileInfo.element, priority: 0 }); this.cursorPosition = new CursorPositionView(); - this.statusBar.addLeftTile({item: this.cursorPosition.element, priority: 1}); + this.statusBar.addLeftTile({ + item: this.cursorPosition.element, + priority: 1 + }); this.selectionCount = new SelectionCountView(); - this.statusBar.addLeftTile({item: this.selectionCount.element, priority: 2}); + this.statusBar.addLeftTile({ + item: this.selectionCount.element, + priority: 2 + }); this.gitInfo = new GitView(); - this.gitInfoTile = this.statusBar.addRightTile({item: this.gitInfo.element, priority: 0}); + this.gitInfoTile = this.statusBar.addRightTile({ + item: this.gitInfo.element, + priority: 0 + }); }, deactivate() { @@ -106,7 +121,9 @@ export default { } this.emitters = null; - if (atom.__workspaceView) { delete atom.__workspaceView.statusBar; } + if (atom.__workspaceView) { + delete atom.__workspaceView.statusBar; + } }, updateStatusBarVisibility() { @@ -128,9 +145,11 @@ export default { }, attachStatusBar() { - if (this.statusBarPanel) { this.statusBarPanel.destroy(); } + if (this.statusBarPanel) { + this.statusBarPanel.destroy(); + } - const panelArgs = {item: this.statusBar, priority: 0}; + const panelArgs = { item: this.statusBar, priority: 0 }; if (atom.config.get('status-bar.fullWidth')) { this.statusBarPanel = atom.workspace.addFooterPanel(panelArgs); } else { @@ -148,19 +167,19 @@ export default { return { addLeftTile(...args) { - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + Grim.deprecate('Use version ^1.0.0 of the status-bar Service API.'); statusbar.addLeftTile(...Array.from(args || [])); }, addRightTile(...args) { - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + Grim.deprecate('Use version ^1.0.0 of the status-bar Service API.'); statusbar.addRightTile(...Array.from(args || [])); }, getLeftTiles() { - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + Grim.deprecate('Use version ^1.0.0 of the status-bar Service API.'); return statusbar.getLeftTiles(); }, getRightTiles() { - Grim.deprecate("Use version ^1.0.0 of the status-bar Service API."); + Grim.deprecate('Use version ^1.0.0 of the status-bar Service API.'); return statusbar.getRightTiles(); } }; diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index ffd1552..572a648 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -1,4 +1,4 @@ -'use babel' +'use babel'; let SelectionCountView; import _ from 'underscore-plus'; @@ -8,16 +8,22 @@ export default SelectionCountView = class SelectionCountView { this.element.classList.add('selection-count', 'inline-block'); this.tooltipElement = document.createElement('div'); - this.tooltipDisposable = atom.tooltips.add(this.element, {item: this.tooltipElement}); + this.tooltipDisposable = atom.tooltips.add(this.element, { + item: this.tooltipElement + }); - const selectionCountFormat = atom.config.get('status-bar.selectionCountFormat'); + const selectionCountFormat = atom.config.get( + 'status-bar.selectionCountFormat' + ); if (selectionCountFormat) { this.formatString = selectionCountFormat; } else { this.formatString = '(%L, %C)'; } - this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor(() => this.subscribeToActiveTextEditor()); + this.activeItemSubscription = atom.workspace.onDidChangeActiveTextEditor( + () => this.subscribeToActiveTextEditor() + ); this.subscribeToConfig(); this.subscribeToActiveTextEditor(); @@ -38,10 +44,13 @@ export default SelectionCountView = class SelectionCountView { if (this.configSubscription) { this.configSubscription.dispose(); } - this.configSubscription = atom.config.observe('status-bar.selectionCountFormat', value => { - this.formatString = value ? value : '(%L, %C)'; - this.scheduleUpdateCount(); - }); + this.configSubscription = atom.config.observe( + 'status-bar.selectionCountFormat', + value => { + this.formatString = value ? value : '(%L, %C)'; + this.scheduleUpdateCount(); + } + ); } subscribeToActiveTextEditor() { @@ -49,8 +58,12 @@ export default SelectionCountView = class SelectionCountView { this.selectionSubscription.dispose(); } const activeEditor = this.getActiveTextEditor(); - const selectionsMarkerLayer = activeEditor ? activeEditor.selectionsMarkerLayer : undefined; - this.selectionSubscription = selectionsMarkerLayer ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdateCount.bind(this)) : undefined; + const selectionsMarkerLayer = activeEditor + ? activeEditor.selectionsMarkerLayer + : undefined; + this.selectionSubscription = selectionsMarkerLayer + ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdateCount.bind(this)) + : undefined; this.scheduleUpdateCount(); } @@ -82,10 +95,17 @@ export default SelectionCountView = class SelectionCountView { lineCount = range.getRowCount(); rangeEndColumn = range.end.column; } - if (rangeEndColumn === 0) { lineCount -= 1; } + if (rangeEndColumn === 0) { + lineCount -= 1; + } if (count > 0) { - this.element.textContent = this.formatString.replace('%L', lineCount).replace('%C', count); - this.tooltipElement.textContent = `${_.pluralize(lineCount, 'line')}, ${_.pluralize(count, 'character')} selected`; + this.element.textContent = this.formatString + .replace('%L', lineCount) + .replace('%C', count); + this.tooltipElement.textContent = `${_.pluralize( + lineCount, + 'line' + )}, ${_.pluralize(count, 'character')} selected`; } else { this.element.textContent = ''; this.tooltipElement.textContent = ''; diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index def5227..277b1e4 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -1,4 +1,4 @@ -'use babel' +'use babel'; let StatusBarView; // import { Disposable } from 'atom'; import Tile from './tile'; @@ -32,13 +32,17 @@ export default StatusBarView = class StatusBarView { this.bufferSubscriptions = []; - this.activeItemSubscription = atom.workspace.getCenter().onDidChangeActivePaneItem(() => { - this.unsubscribeAllFromBuffer(); - this.storeActiveBuffer(); - this.subscribeAllToBuffer(); + this.activeItemSubscription = atom.workspace + .getCenter() + .onDidChangeActivePaneItem(() => { + this.unsubscribeAllFromBuffer(); + this.storeActiveBuffer(); + this.subscribeAllToBuffer(); - this.element.dispatchEvent(new CustomEvent('active-buffer-changed', {bubbles: true})); - }); + this.element.dispatchEvent( + new CustomEvent('active-buffer-changed', { bubbles: true }) + ); + }); this.storeActiveBuffer(); } @@ -52,10 +56,15 @@ export default StatusBarView = class StatusBarView { addLeftTile(options) { let index; const newItem = options.item; - const newPriority = (options ? options.priority : undefined) != null ? (options ? options.priority : undefined) : this.leftTiles[this.leftTiles.length - 1].priority + 1; + const newPriority = + (options ? options.priority : undefined) != null + ? options + ? options.priority + : undefined + : this.leftTiles[this.leftTiles.length - 1].priority + 1; let nextItem = null; for (index = 0; index < this.leftTiles.length; index++) { - const {priority, item} = this.leftTiles[index]; + const { priority, item } = this.leftTiles[index]; if (priority > newPriority) { nextItem = item; break; @@ -73,10 +82,15 @@ export default StatusBarView = class StatusBarView { addRightTile(options) { let index; const newItem = options.item; - const newPriority = (options ? options.priority : undefined) != null ? (options ? options.priority : undefined) : this.rightTiles[0].priority + 1; + const newPriority = + (options ? options.priority : undefined) != null + ? options + ? options.priority + : undefined + : this.rightTiles[0].priority + 1; let nextItem = null; for (index = 0; index < this.rightTiles.length; index++) { - const {priority, item} = this.rightTiles[index]; + const { priority, item } = this.rightTiles[index]; if (priority < newPriority) { nextItem = item; break; @@ -110,7 +124,7 @@ export default StatusBarView = class StatusBarView { storeActiveBuffer() { const activeItem = this.getActiveItem(); if (activeItem) { - if (typeof activeItem.getBuffer == "function") { + if (typeof activeItem.getBuffer == 'function') { this.buffer = activeItem.getBuffer(); } } @@ -118,18 +132,24 @@ export default StatusBarView = class StatusBarView { subscribeToBuffer(event, callback) { this.bufferSubscriptions.push([event, callback]); - if (this.buffer) { this.buffer.on(event, callback); } + if (this.buffer) { + this.buffer.on(event, callback); + } } subscribeAllToBuffer() { - if (!this.buffer) { return; } + if (!this.buffer) { + return; + } for (let [event, callback] of this.bufferSubscriptions) { this.buffer.on(event, callback); } } unsubscribeAllFromBuffer() { - if (!this.buffer) { return; } + if (!this.buffer) { + return; + } for (let [event, callback] of this.bufferSubscriptions) { this.buffer.off(event, callback); } diff --git a/lib/tile.js b/lib/tile.js index b1e5eb9..0c0ecd8 100644 --- a/lib/tile.js +++ b/lib/tile.js @@ -1,4 +1,4 @@ -'use babel' +'use babel'; let Tile; export default Tile = class Tile { constructor(item, priority, collection) { From ea792715f8e422f54eaa1c8eedcb1144fda83325 Mon Sep 17 00:00:00 2001 From: aminya Date: Fri, 17 Jul 2020 12:53:37 -0500 Subject: [PATCH 32/53] use babel to support optional chaining --- .gitignore | 1 + babel.config.js | 10 ++++++++++ package.json | 19 +++++++++++++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 babel.config.js diff --git a/.gitignore b/.gitignore index 3c3629e..76add87 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +dist \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..016138b --- /dev/null +++ b/babel.config.js @@ -0,0 +1,10 @@ +let presets = ["babel-preset-atomic"]; + +let plugins = []; + +module.exports = { + presets: presets, + plugins: plugins, + exclude: "node_modules/**", + sourceMap: "inline", +}; diff --git a/package.json b/package.json index 160ab5b..63a9ad5 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,21 @@ { "name": "status-bar", "version": "1.8.17", - "main": "./lib/main", + "main": "./dist/main", "description": "Display information about the current editor such as cursor position, file path, grammar, current branch, ahead/behind commits counts, and line diff count.", "repository": "https://github.com/atom/status-bar", "license": "MIT", "engines": { "atom": "*" }, + "scripts": { + "test": "atom --test spec", + "clean": "shx rm -rf dist", + "babel": "npm run clean && shx cp -r lib dist && cross-env NODE_ENV=development cross-env BABEL_ENV=development babel dist --out-dir dist", + "build": "npm run babel", + "build-commit": "build-commit -o dist", + "prepare": "npm run build" + }, "dependencies": { "fs-plus": "^3.0.1", "grim": "^2.0.1", @@ -49,6 +57,13 @@ } }, "devDependencies": { - "coffeelint": "^1.9.7" + "coffeelint": "^1.9.7", + "coffeescript": "^1.12.7", + "shx": "latest", + "cross-env": "^7.0.2", + "@babel/cli": "7.10.5", + "@babel/core": "7.10.5", + "babel-preset-atomic": "^0.1.0", + "build-commit": "latest" } } From 1efc353086a0a814436cd45977fe95b475a39dc1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 4 Jul 2020 05:06:53 -0500 Subject: [PATCH 33/53] bump dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 63a9ad5..7a43cca 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "prepare": "npm run build" }, "dependencies": { - "fs-plus": "^3.0.1", - "grim": "^2.0.1", - "underscore-plus": "^1.0.0" + "fs-plus": "^3.1.1", + "grim": "^2.0.2", + "underscore-plus": "^1.7.0" }, "providedServices": { "status-bar": { From 7a6aeb4451fca91872416c278e179c07847bd052 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 4 Jul 2020 04:20:32 -0500 Subject: [PATCH 34/53] remove not anymore needed "use-babel" --- lib/cursor-position-view.js | 1 - lib/file-info-view.js | 1 - lib/git-view.js | 1 - lib/launch-mode-view.js | 1 - lib/main.js | 1 - lib/selection-count-view.js | 1 - lib/status-bar-view.js | 1 - lib/tile.js | 1 - 8 files changed, 8 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index 7dc721c..06e8e4e 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -1,4 +1,3 @@ -'use babel'; let CursorPositionView; import { Disposable } from 'atom'; diff --git a/lib/file-info-view.js b/lib/file-info-view.js index e9e2442..d9095b9 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -1,4 +1,3 @@ -'use babel'; /* * decaffeinate suggestions: * Amin: Simplify Optional Chaining at 117 and 130 inside subscribeToActiveItem diff --git a/lib/git-view.js b/lib/git-view.js index fc182b0..6364e65 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -1,4 +1,3 @@ -'use babel'; /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js index aeb3bd4..a3e1f30 100644 --- a/lib/launch-mode-view.js +++ b/lib/launch-mode-view.js @@ -1,4 +1,3 @@ -'use babel'; let LaunchModeView; export default LaunchModeView = class LaunchModeView { diff --git a/lib/main.js b/lib/main.js index 11d10b1..53bad96 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,4 +1,3 @@ -'use babel'; /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index 572a648..86903b4 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -1,4 +1,3 @@ -'use babel'; let SelectionCountView; import _ from 'underscore-plus'; diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index 277b1e4..787f9a4 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -1,4 +1,3 @@ -'use babel'; let StatusBarView; // import { Disposable } from 'atom'; import Tile from './tile'; diff --git a/lib/tile.js b/lib/tile.js index 0c0ecd8..bf4416b 100644 --- a/lib/tile.js +++ b/lib/tile.js @@ -1,4 +1,3 @@ -'use babel'; let Tile; export default Tile = class Tile { constructor(item, priority, collection) { From 3a895099074d60ee138fb4c25c1c37e6cde7a578 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 4 Jul 2020 04:22:01 -0500 Subject: [PATCH 35/53] main remove unnecessary use of Array.from --- lib/main.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/main.js b/lib/main.js index 53bad96..3ccb19c 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,8 +1,3 @@ -/* - * decaffeinate suggestions: - * DS101: Remove unnecessary use of Array.from - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ import { CompositeDisposable, Emitter } from 'atom'; import Grim from 'grim'; import StatusBarView from './status-bar-view'; @@ -167,11 +162,11 @@ export default { return { addLeftTile(...args) { Grim.deprecate('Use version ^1.0.0 of the status-bar Service API.'); - statusbar.addLeftTile(...Array.from(args || [])); + statusbar.addLeftTile(...args); }, addRightTile(...args) { Grim.deprecate('Use version ^1.0.0 of the status-bar Service API.'); - statusbar.addRightTile(...Array.from(args || [])); + statusbar.addRightTile(...args); }, getLeftTiles() { Grim.deprecate('Use version ^1.0.0 of the status-bar Service API.'); From 9455586a975abd6630c03a64292d2e2565b91cf1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 4 Jul 2020 04:56:12 -0500 Subject: [PATCH 36/53] main named export activate, ... --- lib/main.js | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/main.js b/lib/main.js index 3ccb19c..a016e05 100644 --- a/lib/main.js +++ b/lib/main.js @@ -7,8 +7,7 @@ import SelectionCountView from './selection-count-view'; import GitView from './git-view'; import LaunchModeView from './launch-mode-view'; -export default { - activate() { +export function activate() { this.emitters = new Emitter(); this.subscriptions = new CompositeDisposable(); @@ -67,9 +66,9 @@ export default { item: this.gitInfo.element, priority: 0 }); - }, +} - deactivate() { +export function deactivate() { if (this.statusBarVisibilitySubscription) { this.statusBarVisibilitySubscription.dispose(); } @@ -118,17 +117,17 @@ export default { if (atom.__workspaceView) { delete atom.__workspaceView.statusBar; } - }, +} - updateStatusBarVisibility() { +export function updateStatusBarVisibility() { if (atom.config.get('status-bar.isVisible')) { this.statusBarPanel.show(); } else { this.statusBarPanel.hide(); } - }, +} - provideStatusBar() { +export function provideStatusBar() { return { addLeftTile: this.statusBar.addLeftTile.bind(this.statusBar), addRightTile: this.statusBar.addRightTile.bind(this.statusBar), @@ -136,9 +135,9 @@ export default { getRightTiles: this.statusBar.getRightTiles.bind(this.statusBar), disableGitInfoTile: this.gitInfoTile.destroy.bind(this.gitInfoTile) }; - }, +} - attachStatusBar() { +export function attachStatusBar() { if (this.statusBarPanel) { this.statusBarPanel.destroy(); } @@ -149,14 +148,14 @@ export default { } else { this.statusBarPanel = atom.workspace.addBottomPanel(panelArgs); } - }, +} // Deprecated // // Wrap deprecation calls on the methods returned rather than // Services API method which would be registered and trigger // a deprecation call - legacyProvideStatusBar() { +export function legacyProvideStatusBar() { const statusbar = this.provideStatusBar(); return { @@ -177,5 +176,4 @@ export default { return statusbar.getRightTiles(); } }; - } -}; +} From 8d35724c5cba059cc57ac505e4ed2ad1a876d1cb Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 4 Jul 2020 04:59:17 -0500 Subject: [PATCH 37/53] main export StatusBarView to test in spec --- lib/main.js | 1 + spec/status-bar-view-spec.coffee | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/main.js b/lib/main.js index a016e05..6052133 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,5 +1,6 @@ import { CompositeDisposable, Emitter } from 'atom'; import Grim from 'grim'; +export StatusBarView from './status-bar-view'; // for spec import StatusBarView from './status-bar-view'; import FileInfoView from './file-info-view'; import CursorPositionView from './cursor-position-view'; diff --git a/spec/status-bar-view-spec.coffee b/spec/status-bar-view-spec.coffee index ae2acd3..ae4adf0 100644 --- a/spec/status-bar-view-spec.coffee +++ b/spec/status-bar-view-spec.coffee @@ -1,4 +1,4 @@ -StatusBarView = require '../lib/status-bar-view' +{StatusBarView} = require '../dist/main' describe "StatusBarView", -> statusBarView = null From 3887c4b86f7026cfe436cc53ce869c6b8f2b7323 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 4 Jul 2020 04:46:57 -0500 Subject: [PATCH 38/53] export classes directly --- lib/cursor-position-view.js | 3 +-- lib/file-info-view.js | 3 +-- lib/git-view.js | 3 +-- lib/launch-mode-view.js | 4 +--- lib/selection-count-view.js | 3 +-- lib/status-bar-view.js | 3 +-- lib/tile.js | 3 +-- 7 files changed, 7 insertions(+), 15 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index 06e8e4e..25ef4fe 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -1,7 +1,6 @@ -let CursorPositionView; import { Disposable } from 'atom'; -export default CursorPositionView = class CursorPositionView { +export default class CursorPositionView { constructor() { this.viewUpdatePending = false; diff --git a/lib/file-info-view.js b/lib/file-info-view.js index d9095b9..f5b78be 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -3,12 +3,11 @@ * Amin: Simplify Optional Chaining at 117 and 130 inside subscribeToActiveItem * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -let FileInfoView; import { Disposable } from 'atom'; import url from 'url'; import fs from 'fs-plus'; -export default FileInfoView = class FileInfoView { +export default class FileInfoView { constructor() { this.element = document.createElement('status-bar-file'); this.element.classList.add('file-info', 'inline-block'); diff --git a/lib/git-view.js b/lib/git-view.js index 6364e65..de3bce9 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -3,11 +3,10 @@ * DS101: Remove unnecessary use of Array.from * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -let GitView; import _ from 'underscore-plus'; import { CompositeDisposable, GitRepositoryAsync } from 'atom'; -export default GitView = class GitView { +export default class GitView { constructor() { this.element = document.createElement('status-bar-git'); this.element.classList.add('git-view'); diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js index a3e1f30..7e6616d 100644 --- a/lib/launch-mode-view.js +++ b/lib/launch-mode-view.js @@ -1,6 +1,4 @@ -let LaunchModeView; - -export default LaunchModeView = class LaunchModeView { +export default class LaunchModeView { constructor({ safeMode, devMode } = {}) { this.element = document.createElement('status-bar-launch-mode'); this.element.classList.add('inline-block', 'icon', 'icon-color-mode'); diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index 86903b4..1af98b5 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -1,7 +1,6 @@ -let SelectionCountView; import _ from 'underscore-plus'; -export default SelectionCountView = class SelectionCountView { +export default class SelectionCountView { constructor() { this.element = document.createElement('status-bar-selection'); this.element.classList.add('selection-count', 'inline-block'); diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index 787f9a4..a808915 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -1,8 +1,7 @@ -let StatusBarView; // import { Disposable } from 'atom'; import Tile from './tile'; -export default StatusBarView = class StatusBarView { +export default class StatusBarView { constructor() { this.element = document.createElement('status-bar'); this.element.classList.add('status-bar'); diff --git a/lib/tile.js b/lib/tile.js index bf4416b..1704b7f 100644 --- a/lib/tile.js +++ b/lib/tile.js @@ -1,5 +1,4 @@ -let Tile; -export default Tile = class Tile { +export default class Tile { constructor(item, priority, collection) { this.item = item; this.priority = priority; From 31fb0db1ebe54438afcfe115ce1f48219b66a67f Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 4 Jul 2020 05:03:29 -0500 Subject: [PATCH 39/53] git-view remove unused GitRepositoryAsync --- lib/git-view.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git-view.js b/lib/git-view.js index de3bce9..f90c4ae 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -4,7 +4,7 @@ * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ import _ from 'underscore-plus'; -import { CompositeDisposable, GitRepositoryAsync } from 'atom'; +import { CompositeDisposable } from 'atom'; export default class GitView { constructor() { From 70a38d718e7872860b977d8cc21357eab7874a9d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 5 Jul 2020 17:58:20 -0500 Subject: [PATCH 40/53] cursor-position-view optioal chaining Now that we have babel we can use optional chaining --- lib/cursor-position-view.js | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/lib/cursor-position-view.js b/lib/cursor-position-view.js index 25ef4fe..659e9aa 100644 --- a/lib/cursor-position-view.js +++ b/lib/cursor-position-view.js @@ -31,38 +31,23 @@ export default class CursorPositionView { destroy() { this.activeItemSubscription.dispose(); - if (this.cursorSubscription) { - this.cursorSubscription.dispose(); - } + this.cursorSubscription?.dispose(); this.tooltip.dispose(); - if (this.configSubscription) { - this.configSubscription.dispose(); - } + this.configSubscription?.dispose(); this.clickSubscription.dispose(); - this.updateSubscription ? this.updateSubscription.dispose() : undefined; + this.updateSubscription?.dispose(); } subscribeToActiveTextEditor() { - if (this.cursorSubscription) { - this.cursorSubscription.dispose(); - } + this.cursorSubscription?.dispose(); - const editor = atom.workspace.getActiveTextEditor(); - let selectionsMarkerLayer; - if (editor) { - selectionsMarkerLayer = editor.selectionsMarkerLayer; - } - - this.cursorSubscription = selectionsMarkerLayer - ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdate.bind(this)) - : undefined; + const selectionsMarkerLayer = atom.workspace.getActiveTextEditor()?.selectionsMarkerLayer; + this.cursorSubscription = selectionsMarkerLayer?.onDidUpdate(this.scheduleUpdate.bind(this)); this.scheduleUpdate(); } subscribeToConfig() { - if (this.configSubscription) { - this.configSubscription.dispose(); - } + this.configSubscription?.dispose(); this.configSubscription = atom.config.observe( 'status-bar.cursorPositionFormat', value => { @@ -94,10 +79,7 @@ export default class CursorPositionView { this.viewUpdatePending = false; const editor = atom.workspace.getActiveTextEditor(); - let position; - if (editor) { - position = editor.getCursorBufferPosition(); - } + let position = editor?.getCursorBufferPosition(); if (position) { this.row = position.row + 1; From 9288dacbcdd9f96246f64622c2394db74a67b1b6 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 5 Jul 2020 18:19:59 -0500 Subject: [PATCH 41/53] file-info-view optional chaining --- lib/file-info-view.js | 101 ++++++++++++------------------------------ 1 file changed, 28 insertions(+), 73 deletions(-) diff --git a/lib/file-info-view.js b/lib/file-info-view.js index f5b78be..82e7121 100644 --- a/lib/file-info-view.js +++ b/lib/file-info-view.js @@ -1,8 +1,3 @@ -/* - * decaffeinate suggestions: - * Amin: Simplify Optional Chaining at 117 and 130 inside subscribeToActiveItem - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ import { Disposable } from 'atom'; import url from 'url'; import fs from 'fs-plus'; @@ -52,19 +47,13 @@ export default class FileInfoView { } clearCopiedTooltip() { - if (this.copiedTooltip) { - this.copiedTooltip.dispose(); - } this.registerTooltip(); + this.copiedTooltip?.dispose(); } showCopiedTooltip(copyRelativePath) { - if (this.tooltip) { - this.tooltip.dispose(); - } - if (this.copiedTooltip) { - this.copiedTooltip.dispose(); - } + this.tooltip?.dispose(); + this.copiedTooltip?.dispose(); const text = this.getActiveItemCopyText(copyRelativePath); this.copiedTooltip = atom.tooltips.add(this.element, { title: `Copied: ${text}`, @@ -76,12 +65,8 @@ export default class FileInfoView { } getActiveItemCopyText(copyRelativePath) { - // optional chaining rewritten: - let path, title; const activeItem = this.getActiveItem(); - if (activeItem) { - path = activeItem.getPath(); - } + let path = activeItem?.getPath?.(); if (path == null) { return activeItem.getTitle() || ''; @@ -96,26 +81,23 @@ export default class FileInfoView { } // An item path could be a url, we only want to copy the `path` part - if ((path ? path.indexOf('://') : undefined) > 0) { + if (path?.indexOf('://') > 0) { ({ path } = url.parse(path)); } return path; } subscribeToActiveItem() { - if (this.modifiedSubscription) { - this.modifiedSubscription.dispose(); - } - if (this.titleSubscription) { - this.titleSubscription.dispose(); - } + this.modifiedSubscription?.dispose(); + this.titleSubscription?.dispose(); + let activeItem = this.getActiveItem(); if (activeItem) { if (this.updateCallback == null) { this.updateCallback = () => this.update(); } - // optional chaining: + // TODO use optional chaining: if (typeof activeItem.onDidChangeTitle === 'function') { this.titleSubscription = activeItem.onDidChangeTitle( this.updateCallback @@ -125,19 +107,12 @@ export default class FileInfoView { activeItem.on('title-changed', this.updateCallback); this.titleSubscription = { dispose: () => { - // optional chaining: - return typeof activeItem.off === 'function' - ? activeItem.off('title-changed', this.updateCallback) - : undefined; + activeItem.off?.('title-changed', this.updateCallback) } }; } - // optional chaining: - this.modifiedSubscription = - typeof activeItem.onDidChangeModified === 'function' - ? activeItem.onDidChangeModified(this.updateCallback) - : undefined; + this.modifiedSubscription = activeItem.onDidChangeModified?.(this.updateCallback) } this.update(); @@ -145,19 +120,11 @@ export default class FileInfoView { destroy() { this.activeItemSubscription.dispose(); - if (this.titleSubscription) { - this.titleSubscription.dispose(); - } - if (this.modifiedSubscription) { - this.modifiedSubscription.dispose(); - } - if (this.clickSubscription) { - this.clickSubscription.dispose(); - } - if (this.copiedTooltip) { - this.copiedTooltip.dispose(); - } - this.tooltip ? this.tooltip.dispose() : undefined; + this.titleSubscription?.dispose(); + this.modifiedSubscription?.dispose(); + this.clickSubscription?.dispose(); + this.copiedTooltip?.dispose(); + this.tooltip?.dispose(); } getActiveItem() { @@ -166,13 +133,7 @@ export default class FileInfoView { update() { this.updatePathText(); - // optional chaining rewritten: - let isModified; - const activeItem = this.getActiveItem(); - if (activeItem && typeof activeItem.isModified === 'function') { - isModified = activeItem.isModified(); - } - this.updateBufferHasModifiedText(isModified); + this.updateBufferHasModifiedText(this.getActiveItem()?.isModified?.()) } updateBufferHasModifiedText(isModified) { @@ -186,8 +147,6 @@ export default class FileInfoView { } updatePathText() { - // optional chaining rewritten: - const activeItem = this.getActiveItem(); if (!activeItem) { // if activeItem was null return right away: @@ -195,23 +154,19 @@ export default class FileInfoView { return; } - if (typeof activeItem.getPath == 'function') { - let path = activeItem.getPath(); - if (path) { - const relativized = atom.project.relativize(path); - this.currentPath.textContent = relativized - ? fs.tildify(relativized) - : path; - return; - } + let path = activeItem?.getPath?.(); + if (path) { + const relativized = atom.project.relativize(path); + this.currentPath.textContent = relativized + ? fs.tildify(relativized) + : path; + return; } - if (typeof activeItem.getTitle == 'function') { - let title = activeItem.getTitle(); - if (title) { - this.currentPath.textContent = title; - return; - } + let title = activeItem?.getTitle?.(); + if (title) { + this.currentPath.textContent = title; + return; } // if title and path were null From 09e7cefe761ede5d376f932402d6a9f7b70a358d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 5 Jul 2020 18:33:40 -0500 Subject: [PATCH 42/53] git view optional chaining Make formatting like the original code --- lib/git-view.js | 108 +++++++++++------------------------------------- 1 file changed, 23 insertions(+), 85 deletions(-) diff --git a/lib/git-view.js b/lib/git-view.js index f90c4ae..5fbac89 100644 --- a/lib/git-view.js +++ b/lib/git-view.js @@ -79,13 +79,8 @@ export default class GitView { subscribeToActiveItem() { const activeItem = this.getActiveItem(); - if (this.savedSubscription) { - this.savedSubscription.dispose(); - } - if (activeItem && typeof activeItem.onDidSave == 'function') { - this.savedSubscription = activeItem.onDidSave(() => this.update()); - } - + this.savedSubscription?.dispose(); + this.savedSubscription = activeItem?.onDidSave?.(() => this.update()); this.update(); } @@ -114,37 +109,18 @@ export default class GitView { } destroy() { - if (this.activeItemSubscription) { - this.activeItemSubscription.dispose(); - } - if (this.projectPathSubscription) { - this.projectPathSubscription.dispose(); - } - if (this.savedSubscription) { - this.savedSubscription.dispose(); - } - if (this.repositorySubscriptions) { - this.repositorySubscriptions.dispose(); - } - if (this.branchTooltipDisposable) { - this.branchTooltipDisposable.dispose(); - } - if (this.commitsAheadTooltipDisposable) { - this.commitsAheadTooltipDisposable.dispose(); - } - if (this.commitsBehindTooltipDisposable) { - this.commitsBehindTooltipDisposable.dispose(); - } - this.statusTooltipDisposable - ? this.statusTooltipDisposable.dispose() - : undefined; + this.activeItemSubscription?.dispose(); + this.projectPathSubscription?.dispose(); + this.savedSubscription?.dispose(); + this.repositorySubscriptions?.dispose(); + this.branchTooltipDisposable?.dispose(); + this.commitsAheadTooltipDisposable?.dispose(); + this.commitsBehindTooltipDisposable?.dispose(); + this.statusTooltipDisposable?.dispose(); } getActiveItemPath() { - const activeItem = this.getActiveItem(); - if (activeItem && typeof activeItem.getPath == 'function') { - return activeItem.getPath(); - } + return this.getActiveItem()?.getPath?.() } getRepositoryForActiveItem() { @@ -178,15 +154,9 @@ export default class GitView { if (this.showGitInformation(repo)) { const head = repo.getShortHead(this.getActiveItemPath()); this.branchLabel.textContent = head; - if (head) { - this.branchArea.style.display = ''; - } - if (this.branchTooltipDisposable) { - this.branchTooltipDisposable.dispose(); - } - this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, { - title: `On branch ${head}` - }); + if (head) { this.branchArea.style.display = ''; } + this.branchTooltipDisposable?.dispose(); + this.branchTooltipDisposable = atom.tooltips.add(this.branchArea, {title: `On branch ${head}`}); } else { this.branchArea.style.display = 'none'; } @@ -216,13 +186,8 @@ export default class GitView { if (ahead > 0) { this.commitsAhead.textContent = ahead; this.commitsAhead.style.display = ''; - if (this.commitsAheadTooltipDisposable) { - this.commitsAheadTooltipDisposable.dispose(); - } - this.commitsAheadTooltipDisposable = atom.tooltips.add( - this.commitsAhead, - { title: `${_.pluralize(ahead, 'commit')} ahead of upstream` } - ); + this.commitsAheadTooltipDisposable?.dispose(); + this.commitsAheadTooltipDisposable = atom.tooltips.add(this.commitsAhead, {title: `${_.pluralize(ahead, 'commit')} ahead of upstream`}); } else { this.commitsAhead.style.display = 'none'; } @@ -230,13 +195,8 @@ export default class GitView { if (behind > 0) { this.commitsBehind.textContent = behind; this.commitsBehind.style.display = ''; - if (this.commitsBehindTooltipDisposable) { - this.commitsBehindTooltipDisposable.dispose(); - } - this.commitsBehindTooltipDisposable = atom.tooltips.add( - this.commitsBehind, - { title: `${_.pluralize(behind, 'commit')} behind upstream` } - ); + this.commitsBehindTooltipDisposable?.dispose(); + this.commitsBehindTooltipDisposable = atom.tooltips.add(this.commitsBehind, {title: `${_.pluralize(behind, 'commit')} behind upstream`}); } else { this.commitsBehind.style.display = 'none'; } @@ -266,12 +226,7 @@ export default class GitView { const textEditor = atom.workspace.getActiveTextEditor(); if (textEditor) { this.gitStatusIcon.textContent = `+${textEditor.getLineCount()}`; - this.updateTooltipText( - `${_.pluralize( - textEditor.getLineCount(), - 'line' - )} in this new file not yet committed` - ); + this.updateTooltipText(`${_.pluralize(textEditor.getLineCount(), 'line')} in this new file not yet committed`); } else { this.gitStatusIcon.textContent = ''; this.updateTooltipText(); @@ -287,28 +242,13 @@ export default class GitView { this.gitStatusIcon.classList.add('icon-diff-modified', 'status-modified'); if (stats.added && stats.deleted) { this.gitStatusIcon.textContent = `+${stats.added}, -${stats.deleted}`; - this.updateTooltipText( - `${_.pluralize(stats.added, 'line')} added and ${_.pluralize( - stats.deleted, - 'line' - )} deleted in this file not yet committed` - ); + this.updateTooltipText(`${_.pluralize(stats.added, 'line')} added and ${_.pluralize(stats.deleted, 'line')} deleted in this file not yet committed`); } else if (stats.added) { this.gitStatusIcon.textContent = `+${stats.added}`; - this.updateTooltipText( - `${_.pluralize( - stats.added, - 'line' - )} added to this file not yet committed` - ); + this.updateTooltipText(`${_.pluralize(stats.added, 'line')} added to this file not yet committed`); } else if (stats.deleted) { this.gitStatusIcon.textContent = `-${stats.deleted}`; - this.updateTooltipText( - `${_.pluralize( - stats.deleted, - 'line' - )} deleted from this file not yet committed` - ); + this.updateTooltipText(`${_.pluralize(stats.deleted, 'line')} deleted from this file not yet committed`); } else { this.gitStatusIcon.textContent = ''; this.updateTooltipText(); @@ -327,9 +267,7 @@ export default class GitView { } updateTooltipText(text) { - if (this.statusTooltipDisposable) { - this.statusTooltipDisposable.dispose(); - } + this.statusTooltipDisposable?.dispose(); if (text) { this.statusTooltipDisposable = atom.tooltips.add(this.gitStatusIcon, { title: text From a7148e04d35e4d5c2c68a87a39564d78c2869ee9 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 5 Jul 2020 18:35:02 -0500 Subject: [PATCH 43/53] launch-mode-view optional chaining Make the formatting like the original code --- lib/launch-mode-view.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/launch-mode-view.js b/lib/launch-mode-view.js index 7e6616d..87ec6d4 100644 --- a/lib/launch-mode-view.js +++ b/lib/launch-mode-view.js @@ -4,18 +4,14 @@ export default class LaunchModeView { this.element.classList.add('inline-block', 'icon', 'icon-color-mode'); if (devMode) { this.element.classList.add('text-error'); - this.tooltipDisposable = atom.tooltips.add(this.element, { - title: 'This window is in dev mode' - }); + this.tooltipDisposable = atom.tooltips.add(this.element, {title: 'This window is in dev mode'}); } else if (safeMode) { this.element.classList.add('text-success'); - this.tooltipDisposable = atom.tooltips.add(this.element, { - title: 'This window is in safe mode' - }); + this.tooltipDisposable = atom.tooltips.add(this.element, {title: 'This window is in safe mode'}); } } detachedCallback() { - this.tooltipDisposable ? this.tooltipDisposable.dispose() : undefined; + this.tooltipDisposable?.dispose(); } }; From 0260546e4040962fa70988df3b8831d8939da20e Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 5 Jul 2020 18:38:38 -0500 Subject: [PATCH 44/53] main optional chaining --- lib/main.js | 36 +++++++++--------------------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/lib/main.js b/lib/main.js index 6052133..7295bf9 100644 --- a/lib/main.js +++ b/lib/main.js @@ -70,49 +70,31 @@ export function activate() { } export function deactivate() { - if (this.statusBarVisibilitySubscription) { - this.statusBarVisibilitySubscription.dispose(); - } + this.statusBarVisibilitySubscription?.dispose(); this.statusBarVisibilitySubscription = null; - if (this.gitInfo) { - this.gitInfo.destroy(); - } + this.gitInfo?.destroy(); this.gitInfo = null; - if (this.fileInfo) { - this.fileInfo.destroy(); - } + this.fileInfo?.destroy(); this.fileInfo = null; - if (this.cursorPosition) { - this.cursorPosition.destroy(); - } + this.cursorPosition?.destroy(); this.cursorPosition = null; - if (this.selectionCount) { - this.selectionCount.destroy(); - } + this.selectionCount?.destroy(); this.selectionCount = null; - if (this.statusBarPanel) { - this.statusBarPanel.destroy(); - } + this.statusBarPanel?.destroy(); this.statusBarPanel = null; - if (this.statusBar) { - this.statusBar.destroy(); - } + this.statusBar?.destroy(); this.statusBar = null; - if (this.subscriptions) { - this.subscriptions.dispose(); - } + this.subscriptions?.dispose(); this.subscriptions = null; - if (this.emitters) { - this.emitters.dispose(); - } + this.emitters?.dispose(); this.emitters = null; if (atom.__workspaceView) { From ce42cfc8cc58cf471c877a80d003874a2f87ab62 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 5 Jul 2020 18:42:48 -0500 Subject: [PATCH 45/53] status-bar-view optional chaining --- lib/status-bar-view.js | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/lib/status-bar-view.js b/lib/status-bar-view.js index a808915..6b2412d 100644 --- a/lib/status-bar-view.js +++ b/lib/status-bar-view.js @@ -54,12 +54,7 @@ export default class StatusBarView { addLeftTile(options) { let index; const newItem = options.item; - const newPriority = - (options ? options.priority : undefined) != null - ? options - ? options.priority - : undefined - : this.leftTiles[this.leftTiles.length - 1].priority + 1; + const newPriority = options?.priority != null ? options?.priority : this.leftTiles[this.leftTiles.length - 1].priority + 1; let nextItem = null; for (index = 0; index < this.leftTiles.length; index++) { const { priority, item } = this.leftTiles[index]; @@ -80,12 +75,7 @@ export default class StatusBarView { addRightTile(options) { let index; const newItem = options.item; - const newPriority = - (options ? options.priority : undefined) != null - ? options - ? options.priority - : undefined - : this.rightTiles[0].priority + 1; + const newPriority = options?.priority != null ? options?.priority : this.rightTiles[0].priority + 1; let nextItem = null; for (index = 0; index < this.rightTiles.length; index++) { const { priority, item } = this.rightTiles[index]; @@ -120,12 +110,7 @@ export default class StatusBarView { } storeActiveBuffer() { - const activeItem = this.getActiveItem(); - if (activeItem) { - if (typeof activeItem.getBuffer == 'function') { - this.buffer = activeItem.getBuffer(); - } - } + this.buffer = this.getActiveItem()?.getBuffer?.(); } subscribeToBuffer(event, callback) { From 7778affcd1ca98662706d060e177aa42599b5573 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 5 Jul 2020 18:52:25 -0500 Subject: [PATCH 46/53] selection-count-view optional chaining --- lib/selection-count-view.js | 54 +++++++++++-------------------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/lib/selection-count-view.js b/lib/selection-count-view.js index 1af98b5..9d1fc1f 100644 --- a/lib/selection-count-view.js +++ b/lib/selection-count-view.js @@ -29,39 +29,26 @@ export default class SelectionCountView { destroy() { this.activeItemSubscription.dispose(); - if (this.selectionSubscription) { - this.selectionSubscription.dispose(); - } - if (this.configSubscription) { - this.configSubscription.dispose(); - } + this.selectionSubscription?.dispose(); + this.configSubscription?.dispose(); this.tooltipDisposable.dispose(); } subscribeToConfig() { - if (this.configSubscription) { - this.configSubscription.dispose(); - } - this.configSubscription = atom.config.observe( - 'status-bar.selectionCountFormat', - value => { - this.formatString = value ? value : '(%L, %C)'; - this.scheduleUpdateCount(); - } + this.configSubscription?.dispose(); + this.configSubscription = atom.config.observe('status-bar.selectionCountFormat', + value => { + this.formatString = value ? value : '(%L, %C)'; + this.scheduleUpdateCount(); + } ); } subscribeToActiveTextEditor() { - if (this.selectionSubscription) { - this.selectionSubscription.dispose(); - } + this.selectionSubscription?.dispose(); const activeEditor = this.getActiveTextEditor(); - const selectionsMarkerLayer = activeEditor - ? activeEditor.selectionsMarkerLayer - : undefined; - this.selectionSubscription = selectionsMarkerLayer - ? selectionsMarkerLayer.onDidUpdate(this.scheduleUpdateCount.bind(this)) - : undefined; + const selectionsMarkerLayer = activeEditor?.selectionsMarkerLayer; + this.selectionSubscription = selectionsMarkerLayer?.onDidUpdate(this.scheduleUpdateCount.bind(this)); this.scheduleUpdateCount(); } @@ -80,22 +67,11 @@ export default class SelectionCountView { } updateCount() { - // optional chaining rewritten: - let count, range; const editor = atom.workspace.getActiveTextEditor(); - if (editor) { - count = editor.getSelectedText().length; - range = editor.getSelectedBufferRange(); - } - - let lineCount, rangeEndColumn; - if (range) { - lineCount = range.getRowCount(); - rangeEndColumn = range.end.column; - } - if (rangeEndColumn === 0) { - lineCount -= 1; - } + const count = editor?.getSelectedText().length; + const range = editor?.getSelectedBufferRange(); + let lineCount = range?.getRowCount(); + if (range?.end.column === 0) { lineCount -= 1; } if (count > 0) { this.element.textContent = this.formatString .replace('%L', lineCount) From 402a8c47958013905cffac0c930df3d03745fa29 Mon Sep 17 00:00:00 2001 From: aminya Date: Fri, 17 Jul 2020 12:41:48 -0500 Subject: [PATCH 47/53] Update package-lock.json --- package-lock.json | 3426 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 3366 insertions(+), 60 deletions(-) diff --git a/package-lock.json b/package-lock.json index b48d116..f2b51af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,23 +4,1696 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/cli": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz", + "integrity": "sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==", + "dev": true, + "requires": { + "chokidar": "^2.1.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz", + "integrity": "sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz", + "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.5", + "@babel/types": "^7.10.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@babel/generator": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", + "dev": true, + "requires": { + "@babel/types": "^7.10.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz", + "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "dev": true, + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz", + "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz", + "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz", + "integrity": "sha512-Sc5TAQSZuLzgY0664mMDn24Vw2P8g/VhyLyGPaWiHahhgLqeZvcGeyBZOrJW0oSKIK2mvQ22a1ENXBIQLhrEiQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.10.4" + } + }, + "@babel/plugin-proposal-do-expressions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.10.4.tgz", + "integrity": "sha512-Gcc2wLVeMceRdP6m9tdDygP01lbUVmaQGBRoIRJZxzPfB5VTiUgmn1jGfORgqbEVgUpG0IQm/z4q5Y/qzG+8JQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-do-expressions": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz", + "integrity": "sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-default-from": "^7.10.4" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", + "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-function-bind": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.10.5.tgz", + "integrity": "sha512-1lYbE2ynV9yN0LCEYCdEBD5pR6GaNkRfjn1z1tWDdWMJgunTFcJBZDJUgiMPcTMqAc3D6Vrm8v2khxjjx6FrCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-function-bind": "^7.10.4" + } + }, + "@babel/plugin-proposal-function-sent": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.10.4.tgz", + "integrity": "sha512-aBtve/DhQsVPAGnSDcgt33gF36rO0TK+KtHp9Hwtj3KwH+o1Cii9vfVVYeB9c6Jo1SXOgTRwRD7ljpTS0qbN8w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/plugin-syntax-function-sent": "^7.10.4" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-gyZd+5BZdK3rTpLCw0cTXUESWywH4wvugdzuUYkDKhtP0Obkp2ebZZzVE24UhVOb47vTDNwbUzQpei9psxYj6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", + "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-pipeline-operator": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.10.5.tgz", + "integrity": "sha512-tCpZ46KUAHgFoXsH593k9sX/ZKsNb4NlTGNif8PdlmkGbtYdbTQi6zNv8yibpRf+3sQFElOBLyNo3I5ZwVu90g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-pipeline-operator": "^7.10.4" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-throw-expressions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.10.4.tgz", + "integrity": "sha512-m7K9duXeH/rko36i9G9seLOg2AVdeVTn65k8nnTxgozex0hkDSUr6cktJxTO7jElGEpmMz410pTs0Jn8+empxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-throw-expressions": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz", + "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-do-expressions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.10.4.tgz", + "integrity": "sha512-HyvaTg1aiwGo2I+Pu0nyurRMjIP7J89GpuZ2mcQ0fhO6Jt3BnyhEPbNJFG1hRE99NAPNfPYh93/7HO+GPVkTKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz", + "integrity": "sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", + "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-function-bind": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.10.4.tgz", + "integrity": "sha512-vF/K9yS0dpPNlT7mXSGhbdpb2f4DaLa/AYYbUqlxOggAug/oseIR1+LgAzwci4iJNlqWNmJ7aQ+llUMYjn9uhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-function-sent": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.10.4.tgz", + "integrity": "sha512-dwElaRoDQhlVevbgKOlEUTe08QNJo4ZjWw3rqnMbEvH8NRJM+iPN2tTQtzyfNloXD8f3Jdiyf5Pn400B1U3SVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-pipeline-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-pipeline-operator/-/plugin-syntax-pipeline-operator-7.10.4.tgz", + "integrity": "sha512-QOmXevisZebt9pBkMdDdXWg+fndB8dT/puwSKKu/1K3P4oBwmydN/4dX1hdrNvPHbw4xE+ocIoEus7c4eh7Igg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-throw-expressions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.10.4.tgz", + "integrity": "sha512-Yac/4W71+JdAiOV3aLbnUUe2R0NZzNvdy5EqdauFnBQTxIXT58M89lOplIFVELTSus6PxFMjmbi2vXaJDiV/PQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz", + "integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-flow": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", + "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", + "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", + "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", + "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", + "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", + "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", + "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", + "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.4", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.4", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-flow": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz", + "integrity": "sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-flow-strip-types": "^7.10.4" + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", + "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.10.4", + "@babel/plugin-transform-react-jsx": "^7.10.4", + "@babel/plugin-transform-react-jsx-development": "^7.10.4", + "@babel/plugin-transform-react-jsx-self": "^7.10.4", + "@babel/plugin-transform-react-jsx-source": "^7.10.4", + "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + } + }, + "@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "optional": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "optional": true + }, "async": { "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "optional": true + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-preset-atomic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-atomic/-/babel-preset-atomic-0.1.0.tgz", + "integrity": "sha512-wMf05LPeQgSzgA0CWKr91F90oZ71c9BCMVcE9Pt8NmrOgxKVG/hysc2u9NTQuMzCWvhD1H48Csp8i/YO2rFEaQ==", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-decorators": "^7.10.5", + "@babel/plugin-proposal-do-expressions": "7.10.4", + "@babel/plugin-proposal-export-default-from": "7.10.4", + "@babel/plugin-proposal-export-namespace-from": "7.10.4", + "@babel/plugin-proposal-function-bind": "7.10.5", + "@babel/plugin-proposal-function-sent": "7.10.4", + "@babel/plugin-proposal-json-strings": "7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.10.4", + "@babel/plugin-proposal-numeric-separator": "7.10.4", + "@babel/plugin-proposal-optional-chaining": "7.10.4", + "@babel/plugin-proposal-pipeline-operator": "7.10.5", + "@babel/plugin-proposal-throw-expressions": "7.10.4", + "@babel/plugin-syntax-dynamic-import": "7.8.3", + "@babel/plugin-syntax-import-meta": "7.10.4", + "@babel/preset-env": "7.10.4", + "@babel/preset-flow": "7.10.4", + "@babel/preset-react": "7.10.4" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "optional": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "build-commit": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/build-commit/-/build-commit-0.1.1.tgz", + "integrity": "sha512-XUmXeNsdIj5Izr8FFmsjYxu9SVVaonlmD3THg8Of87A5i/SsFLsY6VGscnfVtlcUl5pHpx691MXKq7B9qkUC+g==", + "dev": true, + "requires": { + "colors": "^1.4.0", + "commander": "^5.1.0", + "shelljs": "^0.8.4" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "optional": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001102", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001102.tgz", + "integrity": "sha512-fOjqRmHjRXv1H1YD6QVLb96iKqnu17TjcLSaX64TwhGYed0P1E1CCWZ9OujbbK4Z/7zax7zAzvQidzdtjx8RcA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "optional": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, "coffee-script": { @@ -43,20 +1716,414 @@ "strip-json-comments": "^1.0.2" } }, + "coffeescript": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz", + "integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "optional": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true, + "optional": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "optional": true + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true, + "optional": true + }, + "cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "optional": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "electron-to-chromium": { + "version": "1.3.499", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.499.tgz", + "integrity": "sha512-y7FwtQm/8xuLMnYQfBQDYzCpNn+VkSnf4c3Km5TWMNXg7JA5RQBuxmcLaKdDVcIK0K5xGIa7TlxpRt4BdNxNoA==", + "dev": true + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", + "dev": true + }, + "escalade": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", + "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "event-kit": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/event-kit/-/event-kit-2.5.3.tgz", "integrity": "sha512-b7Qi1JNzY4BfAYfnIRanLk0DOD1gdkWHT4GISIn8Q2tAf3LpU8SP2CMwWaq40imYoKWbtN4ZhbSRxvsnikooZQ==" }, - "fs-plus": { + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.0.2.tgz", - "integrity": "sha1-a19Sp3EolMTd6f2PgfqMYN8EHz0=", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "optional": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "optional": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-plus": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.1.1.tgz", + "integrity": "sha512-Se2PJdOWXqos1qVTkvqqjb0CSnfBnwwD+pq+z4ksT+e97mEShod/hrNg0TRCCsXPbJzcIq+NuzQhigunMWMJUA==", "requires": { "async": "^1.5.2", "mkdirp": "^0.5.1", @@ -64,51 +2131,465 @@ "underscore-plus": "1.x" } }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true, + "optional": true + }, + "grim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/grim/-/grim-2.0.2.tgz", + "integrity": "sha512-Qj7hTJRfd87E/gUgfvM0YIH/g2UA2SV6niv6BYXk1o6w4mhgv+QyYM1EjOJQljvzgEj4SqSsRWldXIeKHz3e3Q==", + "requires": { + "event-kit": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "optional": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "optional": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "optional": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, - "grim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/grim/-/grim-2.0.2.tgz", - "integrity": "sha512-Qj7hTJRfd87E/gUgfvM0YIH/g2UA2SV6niv6BYXk1o6w4mhgv+QyYM1EjOJQljvzgEj4SqSsRWldXIeKHz3e3Q==", + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, "requires": { - "event-kit": "^2.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "optional": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "object-visit": "^1.0.0" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } }, "minimatch": { "version": "3.0.4", @@ -121,14 +2602,164 @@ "minimist": { "version": "0.0.8", "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "optional": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } }, "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", + "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "optional": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, "requires": { - "minimist": "0.0.8" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.1" } }, "once": { @@ -149,23 +2780,515 @@ "wordwrap": "~0.0.2" } }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "optional": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, "path-is-absolute": { "version": "1.0.1", "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + }, + "dependencies": { + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "optional": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "optional": true + }, "resolve": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true, + "optional": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "optional": true + }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "optional": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.2.tgz", + "integrity": "sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA==", + "dev": true, + "requires": { + "es6-object-assign": "^1.0.3", + "minimist": "^1.2.0", + "shelljs": "^0.8.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "optional": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "optional": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "optional": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true, + "optional": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "optional": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, "requires": { - "glob": "^7.0.5" + "safe-buffer": "~5.1.0" } }, "strip-json-comments": { @@ -174,17 +3297,200 @@ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", "dev": true }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "optional": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, "underscore": { - "version": "1.8.3", - "resolved": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" }, "underscore-plus": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.8.tgz", - "integrity": "sha512-88PrCeMKeAAC1L4xjSiiZ3Fg6kZOYrLpLGVPPeqKq/662DfQe/KTSKdSR/Q/tucKNnfW2MNAUGSCkDf8HmXC5Q==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.7.0.tgz", + "integrity": "sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA==", + "requires": { + "underscore": "^1.9.1" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "optional": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "optional": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "optional": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "optional": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "optional": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true, + "optional": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true, + "optional": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { - "underscore": "~1.8.3" + "isexe": "^2.0.0" } }, "wordwrap": { From 648ddccfce8720cf0b6c6e06853b8a948b21682d Mon Sep 17 00:00:00 2001 From: aminya Date: Fri, 17 Jul 2020 12:55:56 -0500 Subject: [PATCH 48/53] rollup dependencies and scripts --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a43cca..6b1bbac 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "test": "atom --test spec", "clean": "shx rm -rf dist", "babel": "npm run clean && shx cp -r lib dist && cross-env NODE_ENV=development cross-env BABEL_ENV=development babel dist --out-dir dist", - "build": "npm run babel", + "dev": "npm run clean && cross-env NODE_ENV=development cross-env BABEL_ENV=production rollup -c -w", + "build": "npm run clean && cross-env NODE_ENV=production cross-env BABEL_ENV=production rollup -c ", "build-commit": "build-commit -o dist", "prepare": "npm run build" }, @@ -59,6 +60,8 @@ "devDependencies": { "coffeelint": "^1.9.7", "coffeescript": "^1.12.7", + "rollup": "^2.21.0", + "rollup-plugin-atomic": "^1.0.2", "shx": "latest", "cross-env": "^7.0.2", "@babel/cli": "7.10.5", From 15ace900caf8211ff0be24e31c658eab0dacfd73 Mon Sep 17 00:00:00 2001 From: aminya Date: Fri, 17 Jul 2020 12:57:48 -0500 Subject: [PATCH 49/53] add rollup config --- rollup.config.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 rollup.config.js diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..f842615 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,21 @@ +import { createPlugins } from "rollup-plugin-atomic"; + +const plugins = createPlugins(["js", "coffee"], true); + +export default [ + { + input: "lib/main.js", + output: [ + { + dir: "dist", + format: "cjs", + sourcemap: true, + }, + ], + // loaded externally + external: [ + "atom", + ], + plugins: plugins, + }, +]; From 049106425e56602c3a9c14174f239fc458b00bf1 Mon Sep 17 00:00:00 2001 From: aminya Date: Fri, 17 Jul 2020 12:58:17 -0500 Subject: [PATCH 50/53] Update package-lock.json --- package-lock.json | 880 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 872 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f2b51af..04261a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1340,6 +1340,136 @@ "to-fast-properties": "^2.0.0" } }, + "@rollup/plugin-babel": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.1.0.tgz", + "integrity": "sha512-zXBEYmfiLAMvB+ZBa6m/q9hsQYAq1sUFdjuP1F6C2pf6uQcpHwAWQveZgzS63zXdKPUYHD3Dr7BhjCqcr0bbLw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@rollup/pluginutils": "^3.0.8" + } + }, + "@rollup/plugin-commonjs": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz", + "integrity": "sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" + }, + "dependencies": { + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8" + } + }, + "@rollup/plugin-node-resolve": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz", + "integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.17.0" + }, + "dependencies": { + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@rollup/plugin-typescript": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-5.0.2.tgz", + "integrity": "sha512-CkS028Itwjqm1uLbFVfpJgtVtnNvZ+og/m6UlNRR5wOOnNTWPcVQzOu5xGdEX+WWJxdvWIqUq2uR/RBt2ZipWg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.1", + "resolve": "^1.14.1" + }, + "dependencies": { + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/node": { + "version": "14.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz", + "integrity": "sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -1393,6 +1523,12 @@ "dev": true, "optional": true }, + "array-includes-any": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/array-includes-any/-/array-includes-any-2.7.3.tgz", + "integrity": "sha512-21nzE/CDacWDA3F9xadfIKN4P3rK5Qxt0woP3x7X7krKAfHVwhMikgkZ+h8YfWcoD/A7YnKID7rC5mtWRkqfPA==", + "dev": true + }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -1409,7 +1545,7 @@ }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "async-each": { @@ -1419,6 +1555,12 @@ "dev": true, "optional": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -1596,6 +1738,12 @@ "node-releases": "^1.1.58" } }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, "build-commit": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/build-commit/-/build-commit-0.1.1.tgz", @@ -1615,6 +1763,29 @@ } } }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, + "builtins": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-2.0.1.tgz", + "integrity": "sha512-XkkVe5QAb6guWPXTzpSrYpSlN3nqEmrrE2TkAr/tp7idSF6+MONh9WvKrAuR3HiKLvoSgmbs8l1U9IPmMrIoLw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1671,6 +1842,42 @@ "upath": "^1.1.1" } }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "^1.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -1760,6 +1967,12 @@ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -1833,6 +2046,152 @@ "which": "^2.0.1" } }, + "css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "dev": true, + "requires": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "csso": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.39" + } + }, + "csso-cli": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/csso-cli/-/csso-cli-3.0.0.tgz", + "integrity": "sha512-j0ytVZ8qHXcFnR3HOvfH8RWOeHtlqwt97mYe32AnJ2yG6noqV0Jsn8OwOQq8wpdavkHr8JOx6drRtY2HoKLjqw==", + "dev": true, + "requires": { + "chokidar": "^3.0.0", + "clap": "^1.0.9", + "csso": "^4.0.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1850,6 +2209,18 @@ "dev": true, "optional": true }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1910,6 +2281,15 @@ "integrity": "sha512-y7FwtQm/8xuLMnYQfBQDYzCpNn+VkSnf4c3Km5TWMNXg7JA5RQBuxmcLaKdDVcIK0K5xGIa7TlxpRt4BdNxNoA==", "dev": true }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", @@ -1928,6 +2308,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2120,6 +2506,18 @@ "map-cache": "^0.2.2" } }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, "fs-plus": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.1.1.tgz", @@ -2218,8 +2616,7 @@ "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true, - "optional": true + "dev": true }, "grim": { "version": "2.0.2", @@ -2229,6 +2626,15 @@ "event-kit": "^2.0.0" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -2276,6 +2682,12 @@ } } }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, "ignore": { "version": "3.3.10", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", @@ -2333,6 +2745,12 @@ } } }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -2404,19 +2822,23 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true + "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, - "optional": true, "requires": { "is-extglob": "^2.1.1" } }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -2449,6 +2871,15 @@ "isobject": "^3.0.1" } }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -2476,6 +2907,33 @@ "dev": true, "optional": true }, + "jest-worker": { + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.1.0.tgz", + "integrity": "sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2488,6 +2946,12 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", @@ -2505,6 +2969,16 @@ } } }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -2527,6 +3001,26 @@ "leven": "^3.1.0" } }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "lodash": { "version": "4.17.19", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", @@ -2542,6 +3036,15 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -2569,6 +3072,18 @@ "object-visit": "^1.0.0" } }, + "mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -2683,12 +3198,40 @@ "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", "dev": true }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-copy": { "version": "0.1.0", @@ -2780,6 +3323,16 @@ "wordwrap": "~0.0.2" } }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -2811,6 +3364,29 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -2831,6 +3407,26 @@ "dev": true, "optional": true }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -3006,6 +3602,141 @@ "glob": "^7.1.3" } }, + "rollup": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.21.0.tgz", + "integrity": "sha512-BEGgy+wSzux7Ycq58pRiWEOBZaXRXTuvzl1gsm7gqmsAHxkWf9nyA5V2LN9fGSHhhDQd0/C13iRzSh4bbIpWZQ==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } + } + }, + "rollup-plugin-atomic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-atomic/-/rollup-plugin-atomic-1.0.2.tgz", + "integrity": "sha512-dZJXC98owSlKDtjznphhaPG4Th/f4/6Mh4ErZ57+QNvTLpIQhawcGw3lw6DMqkt9XrVzeLSXwI+Cn3f05Bs93Q==", + "dev": true, + "requires": { + "@rollup/plugin-babel": "^5.1.0", + "@rollup/plugin-commonjs": "14.0.0", + "@rollup/plugin-json": "4.1.0", + "@rollup/plugin-node-resolve": "8.4.0", + "@rollup/plugin-typescript": "5.0.2", + "array-includes-any": "^2.7.3", + "csso-cli": "^3.0.0", + "rollup-plugin-auto-external": "2.0.0", + "rollup-plugin-coffee-script": "2.0.0", + "rollup-plugin-css-only": "^2.1.0", + "rollup-plugin-execute": "^1.1.1", + "rollup-plugin-terser": "6.1.0", + "tslib": "^2.0.0" + } + }, + "rollup-plugin-auto-external": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-auto-external/-/rollup-plugin-auto-external-2.0.0.tgz", + "integrity": "sha512-HQM3ZkZYfSam1uoZtAB9sK26EiAsfs1phrkf91c/YX+S07wugyRXSigBxrIwiLr5EPPilKYmoMxsrnlGBsXnuQ==", + "dev": true, + "requires": { + "builtins": "^2.0.0", + "read-pkg": "^3.0.0", + "safe-resolve": "^1.0.0", + "semver": "^5.5.0" + } + }, + "rollup-plugin-coffee-script": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-coffee-script/-/rollup-plugin-coffee-script-2.0.0.tgz", + "integrity": "sha512-7hEjNhf9pezf/4PxHKHF2uEy+sgR1X9R5mCnOoF/ctKpFc5emY0+wYIxBth/0FJAa4F3+MQHOFEVxsuMIlOtUA==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "rollup-plugin-node-resolve": "^3.0.0", + "rollup-pluginutils": "^2.0.1" + } + }, + "rollup-plugin-css-only": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-2.1.0.tgz", + "integrity": "sha512-pfdcqAWEmRMFy+ABXAQPA/DKyPqLuBTOf+lWSOgtrVs1v/q7DSXzYa9QZg4myd8/1F7NHcdvPkWnfWqMxq9vrw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.0", + "fs-extra": "^9.0.0" + } + }, + "rollup-plugin-execute": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-execute/-/rollup-plugin-execute-1.1.1.tgz", + "integrity": "sha512-isCNR/VrwlEfWJMwsnmt5TBRod8dW1IjVRxcXCBrxDmVTeA1IXjzeLSS3inFBmRD7KDPlo38KSb2mh5v5BoWgA==", + "dev": true + }, + "rollup-plugin-node-resolve": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz", + "integrity": "sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg==", + "dev": true, + "requires": { + "builtin-modules": "^2.0.0", + "is-module": "^1.0.0", + "resolve": "^1.1.6" + }, + "dependencies": { + "builtin-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", + "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "rollup-plugin-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz", + "integrity": "sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "jest-worker": "^26.0.0", + "serialize-javascript": "^3.0.0", + "terser": "^4.7.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -3022,12 +3753,27 @@ "ret": "~0.1.10" } }, + "safe-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-resolve/-/safe-resolve-1.0.0.tgz", + "integrity": "sha1-/jT40p16O+z9JJ0KqKeZtcPPZVk=", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -3241,6 +3987,24 @@ "urix": "^0.1.0" } }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -3248,6 +4012,44 @@ "dev": true, "optional": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -3291,6 +4093,21 @@ "safe-buffer": "~5.1.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, "strip-json-comments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", @@ -3306,6 +4123,31 @@ "has-flag": "^3.0.0" } }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -3358,6 +4200,12 @@ "repeat-string": "^1.6.1" } }, + "tslib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==", + "dev": true + }, "underscore": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", @@ -3412,6 +4260,12 @@ "set-value": "^2.0.1" } }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -3484,6 +4338,16 @@ "dev": true, "optional": true }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", From befef0b5216d7266f57801b7da3a23db9f980361 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Fri, 28 Aug 2020 22:39:58 -0500 Subject: [PATCH 51/53] update babel-preset atomic --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 6b1bbac..21b89b1 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,9 @@ "scripts": { "test": "atom --test spec", "clean": "shx rm -rf dist", - "babel": "npm run clean && shx cp -r lib dist && cross-env NODE_ENV=development cross-env BABEL_ENV=development babel dist --out-dir dist", - "dev": "npm run clean && cross-env NODE_ENV=development cross-env BABEL_ENV=production rollup -c -w", - "build": "npm run clean && cross-env NODE_ENV=production cross-env BABEL_ENV=production rollup -c ", + "babel": "npm run clean && shx cp -r lib dist && cross-env NODE_ENV=development cross-env BABEL_KEEP_MODULES=false babel dist --out-dir dist", + "dev": "npm run clean && cross-env NODE_ENV=development cross-env BABEL_KEEP_MODULES=true rollup -c -w", + "build": "npm run clean && cross-env NODE_ENV=production cross-env BABEL_KEEP_MODULES=true rollup -c ", "build-commit": "build-commit -o dist", "prepare": "npm run build" }, @@ -66,7 +66,7 @@ "cross-env": "^7.0.2", "@babel/cli": "7.10.5", "@babel/core": "7.10.5", - "babel-preset-atomic": "^0.1.0", + "babel-preset-atomic": "^1.0.7", "build-commit": "latest" } } From e66f894c2319dbf68d84a80f34a8b0605f96c130 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Fri, 28 Aug 2020 22:42:45 -0500 Subject: [PATCH 52/53] update rollup-plugin-atomic --- package.json | 2 +- rollup.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 21b89b1..1ddf54c 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "coffeelint": "^1.9.7", "coffeescript": "^1.12.7", "rollup": "^2.21.0", - "rollup-plugin-atomic": "^1.0.2", + "rollup-plugin-atomic": "^1.2.0", "shx": "latest", "cross-env": "^7.0.2", "@babel/cli": "7.10.5", diff --git a/rollup.config.js b/rollup.config.js index f842615..219ae3e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,6 @@ import { createPlugins } from "rollup-plugin-atomic"; -const plugins = createPlugins(["js", "coffee"], true); +const plugins = createPlugins(["js", "coffee", "babel"]); export default [ { From 5c87cf2c8b568c3ea4e01f08f92e8a628e1d4e1f Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Fri, 28 Aug 2020 22:42:48 -0500 Subject: [PATCH 53/53] Update package-lock.json --- package-lock.json | 237 ++++++++++++++++++++++++++++------------------ 1 file changed, 147 insertions(+), 90 deletions(-) diff --git a/package-lock.json b/package-lock.json index 04261a1..a45dfb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,9 +31,9 @@ } }, "@babel/compat-data": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz", - "integrity": "sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", + "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", "dev": true, "requires": { "browserslist": "^4.12.0", @@ -192,12 +192,11 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", - "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz", + "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==", "dev": true, "requires": { - "@babel/traverse": "^7.10.4", "@babel/types": "^7.10.4" } }, @@ -288,15 +287,14 @@ } }, "@babel/helper-remap-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", - "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz", + "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-wrap-function": "^7.10.4", "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", "@babel/types": "^7.10.4" } }, @@ -322,6 +320,28 @@ "@babel/types": "^7.10.4" } }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", + "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, "@babel/helper-split-export-declaration": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", @@ -481,9 +501,9 @@ } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-gyZd+5BZdK3rTpLCw0cTXUESWywH4wvugdzuUYkDKhtP0Obkp2ebZZzVE24UhVOb47vTDNwbUzQpei9psxYj6A==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", + "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -511,9 +531,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", - "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", + "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -532,12 +552,13 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", - "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", + "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, @@ -809,9 +830,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", - "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", + "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -1109,12 +1130,13 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", - "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", + "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" } }, "@babel/plugin-transform-sticky-regex": { @@ -1166,30 +1188,34 @@ } }, "@babel/preset-env": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", - "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", "dev": true, "requires": { - "@babel/compat-data": "^7.10.4", + "@babel/compat-data": "^7.11.0", "@babel/helper-compilation-targets": "^7.10.4", "@babel/helper-module-imports": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-proposal-async-generator-functions": "^7.10.4", "@babel/plugin-proposal-class-properties": "^7.10.4", "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", "@babel/plugin-proposal-private-methods": "^7.10.4", "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", "@babel/plugin-syntax-async-generators": "^7.8.0", "@babel/plugin-syntax-class-properties": "^7.10.4", "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", @@ -1222,19 +1248,32 @@ "@babel/plugin-transform-regenerator": "^7.10.4", "@babel/plugin-transform-reserved-words": "^7.10.4", "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", "@babel/plugin-transform-sticky-regex": "^7.10.4", "@babel/plugin-transform-template-literals": "^7.10.4", "@babel/plugin-transform-typeof-symbol": "^7.10.4", "@babel/plugin-transform-unicode-escapes": "^7.10.4", "@babel/plugin-transform-unicode-regex": "^7.10.4", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.10.4", + "@babel/types": "^7.11.0", "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-flow": { @@ -1248,9 +1287,9 @@ } }, "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -1276,9 +1315,9 @@ } }, "@babel/runtime": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", - "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -1341,13 +1380,13 @@ } }, "@rollup/plugin-babel": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.1.0.tgz", - "integrity": "sha512-zXBEYmfiLAMvB+ZBa6m/q9hsQYAq1sUFdjuP1F6C2pf6uQcpHwAWQveZgzS63zXdKPUYHD3Dr7BhjCqcr0bbLw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.0.tgz", + "integrity": "sha512-CPABsajaKjINgBQ3it+yMnfVO3ibsrMBxRzbUOUw2cL1hsZJ7aogU8mgglQm3S2hHJgjnAmxPz0Rq7DVdmHsTw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@rollup/pluginutils": "^3.0.8" + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" } }, "@rollup/plugin-commonjs": { @@ -1432,6 +1471,12 @@ } } }, + "@rollup/plugin-wasm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-5.0.0.tgz", + "integrity": "sha512-3yVc14qT1hX9Zs8qnieXkzLJL8hpdQyW/fwH3V5/doXDQfQPAHSoPirDLm8Fum4U1JZxnsOnk/6GF5gqKh7dsQ==", + "dev": true + }, "@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", @@ -1450,9 +1495,9 @@ "dev": true }, "@types/node": { - "version": "14.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz", - "integrity": "sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==", + "version": "14.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz", + "integrity": "sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==", "dev": true }, "@types/resolve": { @@ -1568,6 +1613,15 @@ "dev": true, "optional": true }, + "babel-plugin-add-module-exports": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz", + "integrity": "sha512-4paN7RivvU3Rzju1vGSHWPjO8Y0rI6droWvSFKI6dvEQ4mvoV0zGojnlzVRfI6N8zISo6VERXt3coIuVmzuvNg==", + "dev": true, + "requires": { + "chokidar": "^2.0.4" + } + }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -1578,9 +1632,9 @@ } }, "babel-preset-atomic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-atomic/-/babel-preset-atomic-0.1.0.tgz", - "integrity": "sha512-wMf05LPeQgSzgA0CWKr91F90oZ71c9BCMVcE9Pt8NmrOgxKVG/hysc2u9NTQuMzCWvhD1H48Csp8i/YO2rFEaQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/babel-preset-atomic/-/babel-preset-atomic-1.0.7.tgz", + "integrity": "sha512-ptHdFPT7FNidUivjxayj7ChEE6i5t6iAM96SwH8sxO4HMPbO2xtp0gNVosakGjQTxwvSfN2Ig4GrKri7prXgJA==", "dev": true, "requires": { "@babel/plugin-proposal-class-properties": "^7.10.4", @@ -1591,17 +1645,18 @@ "@babel/plugin-proposal-function-bind": "7.10.5", "@babel/plugin-proposal-function-sent": "7.10.4", "@babel/plugin-proposal-json-strings": "7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "7.11.0", "@babel/plugin-proposal-nullish-coalescing-operator": "7.10.4", "@babel/plugin-proposal-numeric-separator": "7.10.4", - "@babel/plugin-proposal-optional-chaining": "7.10.4", + "@babel/plugin-proposal-optional-chaining": "7.11.0", "@babel/plugin-proposal-pipeline-operator": "7.10.5", "@babel/plugin-proposal-throw-expressions": "7.10.4", "@babel/plugin-syntax-dynamic-import": "7.8.3", "@babel/plugin-syntax-import-meta": "7.10.4", - "@babel/preset-env": "7.10.4", + "@babel/preset-env": "7.11.0", "@babel/preset-flow": "7.10.4", - "@babel/preset-react": "7.10.4" + "@babel/preset-react": "7.10.4", + "babel-plugin-add-module-exports": "^1.0.2" } }, "balanced-match": { @@ -1727,15 +1782,15 @@ } }, "browserslist": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", - "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz", + "integrity": "sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001093", - "electron-to-chromium": "^1.3.488", - "escalade": "^3.0.1", - "node-releases": "^1.1.58" + "caniuse-lite": "^1.0.30001111", + "electron-to-chromium": "^1.3.523", + "escalade": "^3.0.2", + "node-releases": "^1.1.60" } }, "buffer-from": { @@ -1805,9 +1860,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001102", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001102.tgz", - "integrity": "sha512-fOjqRmHjRXv1H1YD6QVLb96iKqnu17TjcLSaX64TwhGYed0P1E1CCWZ9OujbbK4Z/7zax7zAzvQidzdtjx8RcA==", + "version": "1.0.30001119", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001119.tgz", + "integrity": "sha512-Hpwa4obv7EGP+TjkCh/wVvbtNJewxmtg4yVJBLFnxo35vbPapBr138bUWENkb5j5L9JZJ9RXLn4OrXRG/cecPQ==", "dev": true }, "chalk": { @@ -2111,9 +2166,9 @@ } }, "chokidar": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", - "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", + "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -2276,9 +2331,9 @@ } }, "electron-to-chromium": { - "version": "1.3.499", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.499.tgz", - "integrity": "sha512-y7FwtQm/8xuLMnYQfBQDYzCpNn+VkSnf4c3Km5TWMNXg7JA5RQBuxmcLaKdDVcIK0K5xGIa7TlxpRt4BdNxNoA==", + "version": "1.3.554", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.554.tgz", + "integrity": "sha512-Vtz2dVH5nMtKK4brahmgScwFS8PBnpA4VObYXtlsqN8ZpT9IFelv0Rpflc1+NIILjGVaj6vEiXQbhrs3Pl8O7g==", "dev": true }, "error-ex": { @@ -2908,11 +2963,12 @@ "optional": true }, "jest-worker": { - "version": "26.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.1.0.tgz", - "integrity": "sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ==", + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", "dev": true, "requires": { + "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, @@ -2924,9 +2980,9 @@ "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -3193,9 +3249,9 @@ } }, "node-releases": { - "version": "1.1.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", - "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==", + "version": "1.1.60", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", + "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", "dev": true }, "normalize-package-data": { @@ -3491,9 +3547,9 @@ } }, "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true }, "regenerator-transform": { @@ -3621,9 +3677,9 @@ } }, "rollup-plugin-atomic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-atomic/-/rollup-plugin-atomic-1.0.2.tgz", - "integrity": "sha512-dZJXC98owSlKDtjznphhaPG4Th/f4/6Mh4ErZ57+QNvTLpIQhawcGw3lw6DMqkt9XrVzeLSXwI+Cn3f05Bs93Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-atomic/-/rollup-plugin-atomic-1.2.0.tgz", + "integrity": "sha512-bmtn3v63TvjIP7Ctq0SLRt60G+RGqk7dREx1G1Vnckejduxx9WNQRu+iAKntJu4eCyIA9G8KNMlOFxpTSf/Yfg==", "dev": true, "requires": { "@rollup/plugin-babel": "^5.1.0", @@ -3631,6 +3687,7 @@ "@rollup/plugin-json": "4.1.0", "@rollup/plugin-node-resolve": "8.4.0", "@rollup/plugin-typescript": "5.0.2", + "@rollup/plugin-wasm": "^5.0.0", "array-includes-any": "^2.7.3", "csso-cli": "^3.0.0", "rollup-plugin-auto-external": "2.0.0", @@ -4201,9 +4258,9 @@ } }, "tslib": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", - "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", "dev": true }, "underscore": {