From e6b13ff0edeb19e3455e211b906ead232d97138c Mon Sep 17 00:00:00 2001 From: Alexander Von Moll Date: Thu, 17 Mar 2016 16:49:58 -0400 Subject: [PATCH 001/410] Changed default CWD to directory of file in focus --- lib/runner.coffee | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/runner.coffee b/lib/runner.coffee index 1b1cec9b..6a562c03 100644 --- a/lib/runner.coffee +++ b/lib/runner.coffee @@ -53,8 +53,9 @@ class Runner paths = atom.project.getPaths() if not workingDirectoryProvided and paths?.length > 0 try - cwd = if fs.statSync(paths[0]).isDirectory() then paths[0] else path.join(paths[0], '..') - + # cwd = if fs.statSync(paths[0]).isDirectory() then paths[0] else path.join(paths[0], '..') + parentDirectory = atom.workspace.getActivePaneItem().buffer.file.getParent().path + cwd = if fs.statSync(parentDirectory).isDirectory() then parentDirectory else path.join(paths[0], '..') cwd stop: -> @@ -95,7 +96,7 @@ class Runner arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.join(codeContext.filename, '..')) if project_path? arg = arg.replace(/{PROJECT_PATH}/g, project_path) - + arg args: (codeContext, extraArgs) -> @@ -107,9 +108,9 @@ class Runner if !err project_path = if stats.isDirectory() then paths[0] else path.join(paths[0], '..') ) - + args = (@fillVarsInArg arg, codeContext, project_path for arg in args) - + if not @scriptOptions.cmd? or @scriptOptions.cmd is '' args = codeContext.shebangCommandArgs().concat args args From 629040b3af6d35d0f9333916056a08cdb5843101 Mon Sep 17 00:00:00 2001 From: Alexander Von Moll Date: Fri, 18 Mar 2016 15:06:42 -0400 Subject: [PATCH 002/410] Added settings to choose default CWD behavior --- lib/runner.coffee | 34 +++++++++++++++++++++------------- lib/script.coffee | 17 +++++++++++++++++ 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/lib/runner.coffee b/lib/runner.coffee index 6a562c03..a315f8be 100644 --- a/lib/runner.coffee +++ b/lib/runner.coffee @@ -50,12 +50,17 @@ class Runner cwd = @scriptOptions.workingDirectory workingDirectoryProvided = cwd? and cwd isnt '' - paths = atom.project.getPaths() - if not workingDirectoryProvided and paths?.length > 0 + if not workingDirectoryProvided try - # cwd = if fs.statSync(paths[0]).isDirectory() then paths[0] else path.join(paths[0], '..') - parentDirectory = atom.workspace.getActivePaneItem().buffer.file.getParent().path - cwd = if fs.statSync(parentDirectory).isDirectory() then parentDirectory else path.join(paths[0], '..') + switch atom.config.get('script.cwdBehavior') + when 'First project directory' + paths = atom.project.getPaths() + if paths?.length > 0 + cwd = if fs.statSync(paths[0]).isDirectory() then paths[0] else path.join(paths[0], '..') + when 'Project directory of the script' + cwd = @getProjectPath() + when 'Directory of the script' + cwd = atom.workspace.getActivePaneItem().buffer.file.getParent().path cwd stop: -> @@ -101,16 +106,19 @@ class Runner args: (codeContext, extraArgs) -> args = (@scriptOptions.cmdArgs.concat extraArgs).concat @scriptOptions.scriptArgs - project_path = '' - paths = atom.project.getPaths() - if paths.length > 0 - fs.stat(paths[0], (err, stats) -> - if !err - project_path = if stats.isDirectory() then paths[0] else path.join(paths[0], '..') - ) - + project_path = @getProjectPath or '' args = (@fillVarsInArg arg, codeContext, project_path for arg in args) if not @scriptOptions.cmd? or @scriptOptions.cmd is '' args = codeContext.shebangCommandArgs().concat args args + + getProjectPath: -> + filePath = atom.workspace.getActiveTextEditor().getPath() + projectPaths = atom.project.getPaths() + for projectPath in projectPaths + if filePath.indexOf(projectPath) > -1 + if fs.statSync(projectPath).isDirectory() + return projectPath + else + return path.join(projectPath, '..') diff --git a/lib/script.coffee b/lib/script.coffee index b400f8da..f14458d1 100644 --- a/lib/script.coffee +++ b/lib/script.coffee @@ -28,6 +28,23 @@ module.exports = title: 'Stop running process on rerun' type: 'boolean' default: false + cwdBehavior: + title: 'Default CWD Behavior' + description: 'If no Run Options are set, this setting decides how to determine the CWD' + type: 'string' + default: 'First project directory' + enum: [ + 'First project directory' + 'Project directory of the script' + 'Directory of the script' + ] + # For some reason, the text of these options does not show in package settings view + # default: 'firstProj' + # enum: [ + # {value: 'firstProj', description: 'First project directory (if there is one)'} + # {value: 'scriptProj', description: 'Project directory of the script (if there is one)'} + # {value: 'scriptDir', description: 'Directory of the script'} + # ] scriptView: null scriptOptionsView: null scriptProfileRunView: null From 1a7109d094989c8586a9adafea6052471a99fccc Mon Sep 17 00:00:00 2001 From: Alexander Von Moll Date: Tue, 22 Mar 2016 08:21:57 -0400 Subject: [PATCH 003/410] Incorporate @nixel2007's comments [breaks getProjectPath] --- lib/runner.coffee | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/runner.coffee b/lib/runner.coffee index a315f8be..00825e84 100644 --- a/lib/runner.coffee +++ b/lib/runner.coffee @@ -51,16 +51,16 @@ class Runner workingDirectoryProvided = cwd? and cwd isnt '' if not workingDirectoryProvided - try - switch atom.config.get('script.cwdBehavior') - when 'First project directory' - paths = atom.project.getPaths() - if paths?.length > 0 + switch atom.config.get('script.cwdBehavior') + when 'First project directory' + paths = atom.project.getPaths() + if paths?.length > 0 + try cwd = if fs.statSync(paths[0]).isDirectory() then paths[0] else path.join(paths[0], '..') - when 'Project directory of the script' - cwd = @getProjectPath() - when 'Directory of the script' - cwd = atom.workspace.getActivePaneItem().buffer.file.getParent().path + when 'Project directory of the script' + cwd = @getProjectPath() + when 'Directory of the script' + cwd = atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() or '' cwd stop: -> @@ -116,9 +116,11 @@ class Runner getProjectPath: -> filePath = atom.workspace.getActiveTextEditor().getPath() projectPaths = atom.project.getPaths() + curProjectPath = '' for projectPath in projectPaths if filePath.indexOf(projectPath) > -1 - if fs.statSync(projectPath).isDirectory() - return projectPath - else - return path.join(projectPath, '..') + fs.stat(projectPath, (err, stats) -> + if !err + curProjectPath = if stats.isDirectory() then projectPath else path.join(projectPath, '..') + ) + return curProjectPath From 9f8d63880324061d2109799e2e4fa84c9e7a95d3 Mon Sep 17 00:00:00 2001 From: Alexander Von Moll Date: Tue, 22 Mar 2016 09:10:30 -0400 Subject: [PATCH 004/410] Revert to synchronous fs call --- lib/runner.coffee | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/runner.coffee b/lib/runner.coffee index 00825e84..e6109174 100644 --- a/lib/runner.coffee +++ b/lib/runner.coffee @@ -116,11 +116,9 @@ class Runner getProjectPath: -> filePath = atom.workspace.getActiveTextEditor().getPath() projectPaths = atom.project.getPaths() - curProjectPath = '' for projectPath in projectPaths if filePath.indexOf(projectPath) > -1 - fs.stat(projectPath, (err, stats) -> - if !err - curProjectPath = if stats.isDirectory() then projectPath else path.join(projectPath, '..') - ) - return curProjectPath + if fs.statSync(projectPath).isDirectory() + return projectPath + else + return path.join(projectPath, '..') From ef5a64fd5494a344607882d430c755afae0c27b5 Mon Sep 17 00:00:00 2001 From: Alexander Von Moll Date: Tue, 22 Mar 2016 09:53:46 -0400 Subject: [PATCH 005/410] Fixed indents [had to turn off 'Remove Trailing Whitespace'] --- lib/runner.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/runner.coffee b/lib/runner.coffee index e6109174..a99fa1b4 100644 --- a/lib/runner.coffee +++ b/lib/runner.coffee @@ -101,14 +101,14 @@ class Runner arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.join(codeContext.filename, '..')) if project_path? arg = arg.replace(/{PROJECT_PATH}/g, project_path) - + arg args: (codeContext, extraArgs) -> args = (@scriptOptions.cmdArgs.concat extraArgs).concat @scriptOptions.scriptArgs project_path = @getProjectPath or '' args = (@fillVarsInArg arg, codeContext, project_path for arg in args) - + if not @scriptOptions.cmd? or @scriptOptions.cmd is '' args = codeContext.shebangCommandArgs().concat args args From 956fba0ed44c3130107d929408383f3d580b2e60 Mon Sep 17 00:00:00 2001 From: "matt.downey" Date: Fri, 22 Apr 2016 10:12:50 -0600 Subject: [PATCH 006/410] Add support for Ansible playbooks --- README.md | 3 ++- lib/grammars.coffee | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 23d72374..3d0f32c2 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Run scripts based on file name, a selection of code, or by line number. Currently supported grammars are: * 1C (BSL) [Ø](#o-stroke) + * Ansible [*](#asterisk) * AppleScript * Bash [**](#double-asterisk) * Behat Feature @@ -90,7 +91,7 @@ You only have to add a few lines in a PR to support another. Erlang uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) -* Cucumber (Gherkin), D, Go, F#, Literate Haskell, Jolie, OCaml, PowerShell, and Swift do not support selection based runs +* Ansible, Cucumber (Gherkin), D, Go, F#, Literate Haskell, Jolie, OCaml, PowerShell, and Swift do not support selection based runs Lisp selection based runs are limited to single line diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 242b6af8..a08373eb 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -10,6 +10,11 @@ module.exports = command: "oscript" args: (context) -> ['-encoding=utf-8', context.filepath] + Ansible: + "File Based": + command: "ansible-playbook" + args: (context) -> [context.filepath] + AppleScript: 'Selection Based': command: 'osascript' From 27ebad7eda5f3f5b2e2389090771c03dcb314f2a Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Sat, 23 Apr 2016 20:47:41 -0500 Subject: [PATCH 007/410] Prepare 3.7.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2ee7de55..091503ee 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.7.0", + "version": "3.7.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 04c615a03bad500b3f5ab15e6977ebc163e1c2a6 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Sat, 23 Apr 2016 20:52:25 -0500 Subject: [PATCH 008/410] Update CHANGELOG for the last two releases. --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95abdcd4..1bc936e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## 3.7.1 + +* Support for Ansible playbooks + +## 3.7.0 + +* Adapt script for tests in go +* Support Jolie language +* Keep Java runner within same console on Windows +* Option to ignore selection runs +* Fix C++ not running on Linux +* Fix OCaml support + ## 3.6.3 * Fix bug prevents the package from disabling and updating From b3b735aaeeb0b9082e842ff69886bbbb65776c06 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Mon, 2 May 2016 08:31:26 +0200 Subject: [PATCH 009/410] add PowerShell --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3d0f32c2..937e4247 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ Currently supported grammars are: * Perl 6 * PHP * PostgreSQL [§](#section) + * PowerShell * Python * RSpec * Racket From 08acb96b8cec3147328237c92fe2c983798ad089 Mon Sep 17 00:00:00 2001 From: "matt.downey" Date: Tue, 10 May 2016 09:15:27 -0600 Subject: [PATCH 010/410] alphabetize grammars --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 937e4247..22df7d22 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,15 @@ Currently supported grammars are: * Bash [**](#double-asterisk) * Behat Feature * C [*](#asterisk)[‡](#double-dagger) - * C++ [*](#asterisk)[‡](#double-dagger) * C# Script [*](#asterisk) + * C++ [*](#asterisk)[‡](#double-dagger) * Clojure (via Leiningen) [ϖ](#pi) * Coffeescript * CoffeeScript (Literate) [^](#caret) * Crystal * Cucumber (Gherkin) [*](#asterisk) * D [*](#asterisk) + * Dart * DOT (Graphviz) * Elixir * Erlang [†](#dagger) @@ -47,8 +48,8 @@ Currently supported grammars are: * LiveScript * Lua * Makefile - * MoonScript * MongoDB + * MoonScript * [NCL](http://ncl.ucar.edu)[#](#hash) * newLISP * Nim (and NimScript) @@ -56,16 +57,18 @@ Currently supported grammars are: * Objective-C [*](#asterisk)[‡](#double-dagger) * Objective-C++ [*](#asterisk)[‡](#double-dagger) * OCaml [*](#asterisk) + * Octave * Pandoc Markdown [††](#two-daggers) * Perl * Perl 6 * PHP * PostgreSQL [§](#section) * PowerShell + * Prolog [¢](#cents) * Python - * RSpec * Racket * [RANT](https://github.com/TheBerkin/Rant) + * RSpec * Ruby * Ruby on Rails * Rust @@ -75,10 +78,7 @@ Currently supported grammars are: * Shell Script [**](#double-asterisk) * Swift * TypeScript - * Dart - * Octave * Zsh [**](#double-asterisk) - * Prolog [¢](#cents) **NOTE**: Some grammars may require you to install [a custom language package](https://atom.io/search?utf8=✓&q=language). From f3c6308bb76d333ff4c548cdf73b467807144537 Mon Sep 17 00:00:00 2001 From: "matt.downey" Date: Tue, 10 May 2016 12:06:48 -0600 Subject: [PATCH 011/410] add missing grammars --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 22df7d22..da93efcc 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,9 @@ Currently supported grammars are: * 1C (BSL) [Ø](#o-stroke) * Ansible [*](#asterisk) * AppleScript + * Babel ES6 Javascript * Bash [**](#double-asterisk) + * Batch * Behat Feature * C [*](#asterisk)[‡](#double-dagger) * C# Script [*](#asterisk) @@ -29,11 +31,13 @@ Currently supported grammars are: * Elixir * Erlang [†](#dagger) * F# [*](#asterisk) + * Fish * Forth (via GForth) * Gnuplot * Go [*](#asterisk) * Groovy * Haskell + * IcedCoffeeScript * ioLanguage (http://iolanguage.org/) * Java [***](#triple-asterisk) * Javascript @@ -66,6 +70,7 @@ Currently supported grammars are: * PowerShell * Prolog [¢](#cents) * Python + * R * Racket * [RANT](https://github.com/TheBerkin/Rant) * RSpec @@ -75,7 +80,9 @@ Currently supported grammars are: * Sage * Sass/SCSS [*](#asterisk) * Scala + * Scheme * Shell Script [**](#double-asterisk) + * Standard ML * Swift * TypeScript * Zsh [**](#double-asterisk) From 3126f79bfa0ac25020d06258edfb4dd1b7c3ae09 Mon Sep 17 00:00:00 2001 From: "matt.downey" Date: Tue, 10 May 2016 12:07:29 -0600 Subject: [PATCH 012/410] alphabetize grammars --- lib/grammars.coffee | 125 ++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 62 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index a08373eb..59b29e84 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -23,6 +23,19 @@ module.exports = command: 'osascript' args: (context) -> [context.filepath] + 'Babel ES6 JavaScript': + "Selection Based": + command: "babel-node" + args: (context) -> ['-e', context.getCode()] + "File Based": + command: "babel-node" + args: (context) -> [context.filepath] + + Batch: + "File Based": + command: "" + args: (context) -> [context.filepath] + 'Behat Feature': "File Based": command: "behat" @@ -31,10 +44,6 @@ module.exports = command: "behat" args: (context) -> [context.fileColonLine()] - Batch: - "File Based": - command: "" - args: (context) -> [context.filepath] C: if GrammarUtils.OperatingSystem.isDarwin() "File Based": @@ -45,6 +54,11 @@ module.exports = command: "bash" args: (context) -> ["-c", "cc -Wall -include stdio.h '" + context.filepath + "' -o /tmp/c.out && /tmp/c.out"] + 'C# Script File': + "File Based": + command: "scriptcs" + args: (context) -> ['-script', context.filepath] + 'C++': if GrammarUtils.OperatingSystem.isDarwin() "File Based": @@ -55,11 +69,6 @@ module.exports = command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] - 'C# Script File': - "File Based": - command: "scriptcs" - args: (context) -> ['-script', context.filepath] - Clojure: "Selection Based": command: "lein" @@ -97,6 +106,11 @@ module.exports = command: "rdmd" args: (context) -> [context.filepath] + Dart: + "File Based": + command: "dart" + args: (context) -> [context.filepath] + DOT: "File Based": command: "dot" @@ -199,14 +213,6 @@ module.exports = command: "node" args: (context) -> [context.filepath] - 'Babel ES6 JavaScript': - "Selection Based": - command: "babel-node" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "babel-node" - args: (context) -> [context.filepath] - "JavaScript for Automation (JXA)": "Selection Based": command: "osascript" @@ -294,6 +300,14 @@ module.exports = command: "lua" args: (context) -> [context.filepath] + Makefile: + "Selection Based": + command: "bash" + args: (context) -> ['-c', context.getCode()] + "File Based": + command: "make" + args: (context) -> ['-f', context.filepath] + MagicPython: "Selection Based": command: "python" @@ -340,6 +354,14 @@ module.exports = command: "newlisp" args: (context) -> [context.filepath] + Nim: + "File Based": + command: "bash" + args: (context) -> + file = GrammarUtils.Nim.findNimProjectFile(context.filepath) + path = GrammarUtils.Nim.projectDir(context.filepath) + ['-c', 'cd "' + path + '" && nim c --hints:off --parallelBuild:1 -r "' + file + '" 2>&1'] + NSIS: "Selection Based": command: "makensis" @@ -368,22 +390,19 @@ module.exports = command: "ocaml" args: (context) -> [context.filepath] + Octave: + "Selection Based": + command: "octave" + args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), '--eval', context.getCode()] + "File Based": + command: "octave" + args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), context.filepath] + 'Pandoc Markdown': "File Based": command: "panzer" args: (context) -> [context.filepath, "--output=" + context.filepath + ".pdf"] - PHP: - "Selection Based": - command: "php" - args: (context) -> - code = context.getCode() - file = GrammarUtils.PHP.createTempFileWithCode(code) - [file] - "File Based": - command: "php" - args: (context) -> [context.filepath] - Perl: "Selection Based": command: "perl" @@ -411,11 +430,27 @@ module.exports = command: "perl6" args: (context) -> [context.filepath] + PHP: + "Selection Based": + command: "php" + args: (context) -> + code = context.getCode() + file = GrammarUtils.PHP.createTempFileWithCode(code) + [file] + "File Based": + command: "php" + args: (context) -> [context.filepath] + PowerShell: "File Based": command: "powershell" args: (context) -> [context.filepath.replace /\ /g, "` "] + Prolog: + "File Based": + command: "bash" + args: (context) -> ['-c', 'cd \"' + context.filepath.replace(/[^\/]*$/, '') + '\"; swipl -f \"' + context.filepath + '\" -t main --quiet'] + Python: "Selection Based": command: "python" @@ -486,14 +521,6 @@ module.exports = command: "bash" args: (context) -> ['-c', "rustc '#{context.filepath}' -o /tmp/rs.out && /tmp/rs.out"] - Makefile: - "Selection Based": - command: "bash" - args: (context) -> ['-c', context.getCode()] - "File Based": - command: "make" - args: (context) -> ['-f', context.filepath] - Sage: "Selection Based": command: "sage" @@ -557,14 +584,6 @@ module.exports = command: "sml" args: (context) -> [context.filepath] - Nim: - "File Based": - command: "bash" - args: (context) -> - file = GrammarUtils.Nim.findNimProjectFile(context.filepath) - path = GrammarUtils.Nim.projectDir(context.filepath) - ['-c', 'cd "' + path + '" && nim c --hints:off --parallelBuild:1 -r "' + file + '" 2>&1'] - Swift: "File Based": command: "swift" @@ -582,21 +601,3 @@ module.exports = "File Based": command: "bash" args: (context) -> ['-c', "tsc '#{context.filepath}' --out /tmp/js.out && node /tmp/js.out"] - - Dart: - "File Based": - command: "dart" - args: (context) -> [context.filepath] - - Octave: - "Selection Based": - command: "octave" - args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), '--eval', context.getCode()] - "File Based": - command: "octave" - args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), context.filepath] - - Prolog: - "File Based": - command: "bash" - args: (context) -> ['-c', 'cd \"' + context.filepath.replace(/[^\/]*$/, '') + '\"; swipl -f \"' + context.filepath + '\" -t main --quiet'] From b2b3e79c3dd66e79097a6e09913a6ab7e0345adb Mon Sep 17 00:00:00 2001 From: "matt.downey" Date: Wed, 11 May 2016 13:30:14 -0600 Subject: [PATCH 013/410] organize grammars into table --- README.md | 186 +++++++++++++++++++++++------------------------------- 1 file changed, 78 insertions(+), 108 deletions(-) diff --git a/README.md b/README.md index da93efcc..7951dd14 100644 --- a/README.md +++ b/README.md @@ -10,119 +10,89 @@ Run scripts based on file name, a selection of code, or by line number. Currently supported grammars are: - * 1C (BSL) [Ø](#o-stroke) - * Ansible [*](#asterisk) - * AppleScript - * Babel ES6 Javascript - * Bash [**](#double-asterisk) - * Batch - * Behat Feature - * C [*](#asterisk)[‡](#double-dagger) - * C# Script [*](#asterisk) - * C++ [*](#asterisk)[‡](#double-dagger) - * Clojure (via Leiningen) [ϖ](#pi) - * Coffeescript - * CoffeeScript (Literate) [^](#caret) - * Crystal - * Cucumber (Gherkin) [*](#asterisk) - * D [*](#asterisk) - * Dart - * DOT (Graphviz) - * Elixir - * Erlang [†](#dagger) - * F# [*](#asterisk) - * Fish - * Forth (via GForth) - * Gnuplot - * Go [*](#asterisk) - * Groovy - * Haskell - * IcedCoffeeScript - * ioLanguage (http://iolanguage.org/) - * Java [***](#triple-asterisk) - * Javascript - * [JavaScript for Automation](https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html) (JXA) - * Jolie [*](#asterisk) - * Julia - * Kotlin - * LaTeX (via latexmk) - * LilyPond - * Lisp (via SBCL) [⍵](#omega) - * Literate Haskell [*](#asterisk) - * LiveScript - * Lua - * Makefile - * MongoDB - * MoonScript - * [NCL](http://ncl.ucar.edu)[#](#hash) - * newLISP - * Nim (and NimScript) - * NSIS - * Objective-C [*](#asterisk)[‡](#double-dagger) - * Objective-C++ [*](#asterisk)[‡](#double-dagger) - * OCaml [*](#asterisk) - * Octave - * Pandoc Markdown [††](#two-daggers) - * Perl - * Perl 6 - * PHP - * PostgreSQL [§](#section) - * PowerShell - * Prolog [¢](#cents) - * Python - * R - * Racket - * [RANT](https://github.com/TheBerkin/Rant) - * RSpec - * Ruby - * Ruby on Rails - * Rust - * Sage - * Sass/SCSS [*](#asterisk) - * Scala - * Scheme - * Shell Script [**](#double-asterisk) - * Standard ML - * Swift - * TypeScript - * Zsh [**](#double-asterisk) +| Grammar | File Based | Selection Based | Line Based | Notes | +| :----------------------------------- | :--------- | :-------------- | :---------- | :---- | +| 1C (BSL) | Yes | | | Runs through [OneScript](http://oscript.io/) interpreter in console mode | +| Ansible | Yes | | | | +| AppleScript | Yes | Yes | | | +| Babel ES6 JS | Yes | Yes | | | +| Bash | Yes | Yes | | The shell used is based on your default `$SHELL` environment variable | +| Batch | Yes | | | | +| Behat Feature | Yes | | Yes | | +| C | Yes | | | Only available on OSX (`xcrun clang`) and Linux (`cc`) | +| C# | Yes | | | | +| C++ | Yes | | | Only available on OSX (`xcurn clang++`) and Linux (`g++`) | +| Clojure | Yes | Yes | | Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed | +| CoffeeScript | Yes | Yes | | | +| CoffeeScript (Literate) | Yes | Yes | | Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks | +| Crystal | Yes | Yes | | | +| Cucumber (Gherkin) | Yes | | Yes | | +| D | Yes | | | | +| Dart | Yes | | | | +| DOT (Graphviz) | Yes | | | | +| Elixir | Yes | Yes | | | +| Erlang | | Yes | | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | +| F# | Yes | | | | +| Fish | Yes | Yes | | Finally, a way to run code within Atom for the 90s | +| Forth (via GForth) | Yes | | | | +| Gnuplot | Yes | | | | +| Go | Yes | | | | +| Groovy | Yes | Yes | | | +| Haskell | Yes | Yes | | | +| IcedCoffeeScript | Yes | Yes | | | +| [ioLanguage](http://iolanguage.org/) | Yes | Yes | | | +| Java | Yes | | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables | +| Javascript | Yes | Yes | | | +| [JavaScript for Automation](https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html) (JXA) | Yes | Yes | | | +| Jolie | Yes | | | | +| Julia | Yes | Yes | | | +| Kotlin | Yes | Yes | | | +| LaTeX (via latexmk) | Yes | | | | +| LilyPond | Yes | | | | +| Lisp (via SBCL) | Yes | Yes | | Selection based runs are limited to single line | +| Literate Haskell | Yes | | | | +| LiveScript | Yes | Yes | | | +| Lua | Yes | Yes | | | +| Makefile | Yes | Yes | | | +| MongoDB | Yes | Yes | | | +| MoonScript | Yes | Yes | | | +| [NCL](http://ncl.ucar.edu) | Yes | Yes | | Scripts must end with `exit` command for file based runs | +| newLISP | Yes | Yes | | | +| Nim (and NimScript) | Yes | | | | +| NSIS | Yes | Yes | | | +| Objective-C | Yes | | | Only available on OSX (`xcrun clang`) | +| Objective-C | Yes | | | Only available on OSX (`xcrun clang++`) | +| OCaml | Yes | | | | +| Octave | Yes | Yes | | | +| Pandoc Markdown | Yes | | | Requires the panzer pandoc wrapper https://github.com/msprev/panzer and the pandoc-flavored-markdown language package in Atom https://atom.io/packages/language-pfm | +| Perl | Yes | Yes | | | +| Perl 6 | Yes | Yes | | | +| PHP | Yes | Yes | | | +| PostgreSQL | Yes | Yes | | Requires the atom-language-pgsql package in Atom https://atom.io/packages/language-pgsql. Connects as user `$PGUSER` to database `$PGDATABASE`. Both default to the operating system's user name and both can be set in the process environment or in Atom's `init.coffee` script: `process.env.PGUSER = ⟨username⟩` and `process.env.PGDATABASE = ⟨database name⟩` | +| PowerShell | Yes | | | | +| Prolog | Yes | | | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl | +| Python | Yes | Yes | | | +| R | Yes | Yes | | | +| Racket | Yes | Yes | | | +| [RANT](https://github.com/TheBerkin/Rant) | Yes | Yes | | | +| RSpec | Yes | Yes | Yes | | +| Ruby | Yes | Yes | | | +| Ruby on Rails | Yes | Yes | | | +| Rust | Yes | | | | +| Sage | Yes | Yes | | | +| Sass/SCSS | Yes | | | | +| Scala | Yes | Yes | | | +| Scheme | Yes | Yes | | | +| Shell Script | Yes | Yes | | The shell used is based on your default `$SHELL` environment variable | +| Standard ML | Yes | | | | +| Swift | Yes | | | | +| TypeScript | Yes | Yes | | | +| Zsh | Yes | Yes | | The shell used is based on your default `$SHELL` environment variable | **NOTE**: Some grammars may require you to install [a custom language package](https://atom.io/search?utf8=✓&q=language). You only have to add a few lines in a PR to support another. -### Limitations - -Ø 1C (BSL) code runs through [OneScript](http://oscript.io/) interpreter in console mode. - -^ Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks - - Erlang uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) - -* Ansible, Cucumber (Gherkin), D, Go, F#, Literate Haskell, Jolie, OCaml, PowerShell, and Swift do not support selection based runs - - Lisp selection based runs are limited to single line - -ϖ Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed - - C, C++, Objective-C, and Objective-C++ are currently only available for Mac OS X (where `process.platform is 'darwin'`). This is possible due to the commands `xcrun clang` and `xcrun clang++`. **NOTE**: Xcode and the Xcode command line tools are required to ensure `xcrun` and the correct compilers on your system. - -# NCL scripts must end with `exit` command for file based runs - -†† Requires the panzer pandoc wrapper https://github.com/msprev/panzer and the pandoc-flavored-markdown language package in Atom https://atom.io/packages/language-pfm - -§ Requires the atom-language-pgsql package in -Atom https://atom.io/packages/language-pgsql. Connects as user `$PGUSER` to -database `$PGDATABASE`. Both default to the operating system's user name and both -can be set in the process environment or in Atom's `init.coffee` script: -`process.env.PGUSER = ⟨username⟩` and `process.env.PGDATABASE = ⟨database name⟩`. - -\** The shell used is based on your default `$SHELL` environment variable. - -\*** Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables. - -¢ Prolog scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl. - ## Installation `apm install script` From 223d466dfb58197e529e538929b455fd7e5fe9c3 Mon Sep 17 00:00:00 2001 From: "matt.downey" Date: Wed, 11 May 2016 16:30:31 -0600 Subject: [PATCH 014/410] remove line based column --- README.md | 156 +++++++++++++++++++++++++++--------------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index 7951dd14..eb7dda33 100644 --- a/README.md +++ b/README.md @@ -10,84 +10,84 @@ Run scripts based on file name, a selection of code, or by line number. Currently supported grammars are: -| Grammar | File Based | Selection Based | Line Based | Notes | -| :----------------------------------- | :--------- | :-------------- | :---------- | :---- | -| 1C (BSL) | Yes | | | Runs through [OneScript](http://oscript.io/) interpreter in console mode | -| Ansible | Yes | | | | -| AppleScript | Yes | Yes | | | -| Babel ES6 JS | Yes | Yes | | | -| Bash | Yes | Yes | | The shell used is based on your default `$SHELL` environment variable | -| Batch | Yes | | | | -| Behat Feature | Yes | | Yes | | -| C | Yes | | | Only available on OSX (`xcrun clang`) and Linux (`cc`) | -| C# | Yes | | | | -| C++ | Yes | | | Only available on OSX (`xcurn clang++`) and Linux (`g++`) | -| Clojure | Yes | Yes | | Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed | -| CoffeeScript | Yes | Yes | | | -| CoffeeScript (Literate) | Yes | Yes | | Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks | -| Crystal | Yes | Yes | | | -| Cucumber (Gherkin) | Yes | | Yes | | -| D | Yes | | | | -| Dart | Yes | | | | -| DOT (Graphviz) | Yes | | | | -| Elixir | Yes | Yes | | | -| Erlang | | Yes | | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | -| F# | Yes | | | | -| Fish | Yes | Yes | | Finally, a way to run code within Atom for the 90s | -| Forth (via GForth) | Yes | | | | -| Gnuplot | Yes | | | | -| Go | Yes | | | | -| Groovy | Yes | Yes | | | -| Haskell | Yes | Yes | | | -| IcedCoffeeScript | Yes | Yes | | | -| [ioLanguage](http://iolanguage.org/) | Yes | Yes | | | -| Java | Yes | | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables | -| Javascript | Yes | Yes | | | -| [JavaScript for Automation](https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html) (JXA) | Yes | Yes | | | -| Jolie | Yes | | | | -| Julia | Yes | Yes | | | -| Kotlin | Yes | Yes | | | -| LaTeX (via latexmk) | Yes | | | | -| LilyPond | Yes | | | | -| Lisp (via SBCL) | Yes | Yes | | Selection based runs are limited to single line | -| Literate Haskell | Yes | | | | -| LiveScript | Yes | Yes | | | -| Lua | Yes | Yes | | | -| Makefile | Yes | Yes | | | -| MongoDB | Yes | Yes | | | -| MoonScript | Yes | Yes | | | -| [NCL](http://ncl.ucar.edu) | Yes | Yes | | Scripts must end with `exit` command for file based runs | -| newLISP | Yes | Yes | | | -| Nim (and NimScript) | Yes | | | | -| NSIS | Yes | Yes | | | -| Objective-C | Yes | | | Only available on OSX (`xcrun clang`) | -| Objective-C | Yes | | | Only available on OSX (`xcrun clang++`) | -| OCaml | Yes | | | | -| Octave | Yes | Yes | | | -| Pandoc Markdown | Yes | | | Requires the panzer pandoc wrapper https://github.com/msprev/panzer and the pandoc-flavored-markdown language package in Atom https://atom.io/packages/language-pfm | -| Perl | Yes | Yes | | | -| Perl 6 | Yes | Yes | | | -| PHP | Yes | Yes | | | -| PostgreSQL | Yes | Yes | | Requires the atom-language-pgsql package in Atom https://atom.io/packages/language-pgsql. Connects as user `$PGUSER` to database `$PGDATABASE`. Both default to the operating system's user name and both can be set in the process environment or in Atom's `init.coffee` script: `process.env.PGUSER = ⟨username⟩` and `process.env.PGDATABASE = ⟨database name⟩` | -| PowerShell | Yes | | | | -| Prolog | Yes | | | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl | -| Python | Yes | Yes | | | -| R | Yes | Yes | | | -| Racket | Yes | Yes | | | -| [RANT](https://github.com/TheBerkin/Rant) | Yes | Yes | | | -| RSpec | Yes | Yes | Yes | | -| Ruby | Yes | Yes | | | -| Ruby on Rails | Yes | Yes | | | -| Rust | Yes | | | | -| Sage | Yes | Yes | | | -| Sass/SCSS | Yes | | | | -| Scala | Yes | Yes | | | -| Scheme | Yes | Yes | | | -| Shell Script | Yes | Yes | | The shell used is based on your default `$SHELL` environment variable | -| Standard ML | Yes | | | | -| Swift | Yes | | | | -| TypeScript | Yes | Yes | | | -| Zsh | Yes | Yes | | The shell used is based on your default `$SHELL` environment variable | +| Grammar | File Based | Selection Based | Notes | +| :----------------------------------- | :--------- | :-------------- | :---- | +| 1C (BSL) | Yes | | Runs through [OneScript](http://oscript.io/) interpreter in console mode | +| Ansible | Yes | | | +| AppleScript | Yes | Yes | | +| Babel ES6 JS | Yes | Yes | | +| Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | +| Batch | Yes | | | +| Behat Feature | Yes | | | +| C | Yes | | Only available on OSX (`xcrun clang`) and Linux (`cc`) | +| C# | Yes | | | +| C++ | Yes | | Only available on OSX (`xcurn clang++`) and Linux (`g++`) | +| Clojure | Yes | Yes | Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed | +| CoffeeScript | Yes | Yes | | +| CoffeeScript (Literate) | Yes | Yes | Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks | +| Crystal | Yes | Yes | | +| Cucumber (Gherkin) | Yes | | | +| D | Yes | | | +| Dart | Yes | | | +| DOT (Graphviz) | Yes | | | +| Elixir | Yes | Yes | | +| Erlang | | Yes | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | +| F# | Yes | | | +| Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | +| Forth (via GForth) | Yes | | | +| Gnuplot | Yes | | | +| Go | Yes | | | +| Groovy | Yes | Yes | | +| Haskell | Yes | Yes | | +| IcedCoffeeScript | Yes | Yes | | +| [ioLanguage](http://iolanguage.org/) | Yes | Yes | | +| Java | Yes | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables | +| Javascript | Yes | Yes | | +| [JavaScript for Automation](https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html) (JXA) | Yes | Yes | | +| Jolie | Yes | | | +| Julia | Yes | Yes | | +| Kotlin | Yes | Yes | | +| LaTeX (via latexmk) | Yes | | | +| LilyPond | Yes | | | +| Lisp (via SBCL) | Yes | Yes | Selection based runs are limited to single line | +| Literate Haskell | Yes | | | +| LiveScript | Yes | Yes | | +| Lua | Yes | Yes | | +| Makefile | Yes | Yes | | +| MongoDB | Yes | Yes | | +| MoonScript | Yes | Yes | | +| [NCL](http://ncl.ucar.edu) | Yes | Yes | Scripts must end with `exit` command for file based runs | +| newLISP | Yes | Yes | | +| Nim (and NimScript) | Yes | | | +| NSIS | Yes | Yes | | +| Objective-C | Yes | | Only available on OSX (`xcrun clang`) | +| Objective-C | Yes | | Only available on OSX (`xcrun clang++`) | +| OCaml | Yes | | | +| Octave | Yes | Yes | | +| Pandoc Markdown | Yes | | Requires the panzer pandoc wrapper https://github.com/msprev/panzer and the pandoc-flavored-markdown language package in Atom https://atom.io/packages/language-pfm | +| Perl | Yes | Yes | | +| Perl 6 | Yes | Yes | | +| PHP | Yes | Yes | | +| PostgreSQL | Yes | Yes | Requires the atom-language-pgsql package in Atom https://atom.io/packages/language-pgsql. Connects as user `$PGUSER` to database `$PGDATABASE`. Both default to the operating system's user name and both can be set in the process environment or in Atom's `init.coffee` script: `process.env.PGUSER = ⟨username⟩` and `process.env.PGDATABASE = ⟨database name⟩` | +| PowerShell | Yes | | | +| Prolog | Yes | | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl | +| Python | Yes | Yes | | +| R | Yes | Yes | | +| Racket | Yes | Yes | | +| [RANT](https://github.com/TheBerkin/Rant) | Yes | Yes | | +| RSpec | Yes | Yes | | +| Ruby | Yes | Yes | | +| Ruby on Rails | Yes | Yes | | +| Rust | Yes | | | +| Sage | Yes | Yes | | +| Sass/SCSS | Yes | | | +| Scala | Yes | Yes | | +| Scheme | Yes | Yes | | +| Shell Script | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | +| Standard ML | Yes | | | +| Swift | Yes | | | +| TypeScript | Yes | Yes | | +| Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | **NOTE**: Some grammars may require you to install [a custom language package](https://atom.io/search?utf8=✓&q=language). From b4e1b585d036d266783509b6d251dbb907750a4b Mon Sep 17 00:00:00 2001 From: Felipe Faria Date: Sun, 22 May 2016 16:22:18 -0400 Subject: [PATCH 015/410] Fixes Rust inability to execute on Windows. Allows the execution of .rs files on a Windows machine. Tested on Rust version 1.8.0 for Windows. --- lib/grammars.coffee | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 59b29e84..8192cc5a 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -518,8 +518,15 @@ module.exports = Rust: "File Based": - command: "bash" - args: (context) -> ['-c', "rustc '#{context.filepath}' -o /tmp/rs.out && /tmp/rs.out"] + command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + args: (context) -> + progname = context.filename.replace /\.rs$/, "" + args = [] + if GrammarUtils.OperatingSystem.isWindows() + args = ["/c rustc #{context.filepath} && #{progname}.exe"] + else + args = ['-c', "rustc '#{context.filepath}' -o /tmp/rs.out && /tmp/rs.out"] + return args Sage: "Selection Based": From e4bb2b2300a7ae7a8923195c7e6020677023e587 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 23 May 2016 00:01:02 +0300 Subject: [PATCH 016/410] Changelog for 3.7.2 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bc936e7..f7fb02b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.7.2 + +* Support Rust on Windows + ## 3.7.1 * Support for Ansible playbooks From 4c140af7a2cafb377c6d8edda270205ee7bde1f6 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 23 May 2016 00:01:32 +0300 Subject: [PATCH 017/410] Prepare 3.7.2 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 091503ee..7a6be2e9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.7.1", + "version": "3.7.2", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 3da3c445d3d98ca26c8048841f9634c76924113e Mon Sep 17 00:00:00 2001 From: Bram Harmsen Date: Mon, 23 May 2016 21:10:50 +0200 Subject: [PATCH 018/410] Added support for MATLAB. Since matlab script can only start with a letter and can't contain hyphens I added matlab.coffee to the grammar-utils directory. Maybe there is a better way to do this, but I didn't want to touch the grammer-utils file too much. Furthermore I added the -nojvm and -nodisplay command line switches. This makes running MATLAB scripts much faster, but disables pretty much all graphical functionality like plotting for example. It would be better if users could configure this, but I don't know how I should implement this. --- README.md | 1 + examples/helloworld.m | 5 +++++ lib/grammar-utils.coffee | 5 +++++ lib/grammar-utils/matlab.coffee | 28 ++++++++++++++++++++++++++++ lib/grammars.coffee | 11 +++++++++++ 5 files changed, 50 insertions(+) create mode 100644 examples/helloworld.m create mode 100644 lib/grammar-utils/matlab.coffee diff --git a/README.md b/README.md index eb7dda33..01bf0029 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ Currently supported grammars are: | LiveScript | Yes | Yes | | | Lua | Yes | Yes | | | Makefile | Yes | Yes | | +| [MATLAB](http://mathworks.com/products/matlab) | Yes | Yes | Requires the language-matlab package in Atom https://atom.io/packages/language-matlab | | MongoDB | Yes | Yes | | | MoonScript | Yes | Yes | | | [NCL](http://ncl.ucar.edu) | Yes | Yes | Scripts must end with `exit` command for file based runs | diff --git a/examples/helloworld.m b/examples/helloworld.m new file mode 100644 index 00000000..1ed5f147 --- /dev/null +++ b/examples/helloworld.m @@ -0,0 +1,5 @@ +%% MATLAB hello world + +% Print hello world +fprintf('hello world\n'); +exit(0); diff --git a/lib/grammar-utils.coffee b/lib/grammar-utils.coffee index 2bbecc75..985e92f7 100644 --- a/lib/grammar-utils.coffee +++ b/lib/grammar-utils.coffee @@ -43,6 +43,11 @@ module.exports = # Returns an {Object} which assists in splitting Lisp statements. Lisp: require './grammar-utils/lisp' + # Public: Get the MATLAB helper object + # + # Returns an {Object} which assists in splitting MATLAB statements. + MATLAB: require './grammar-utils/matlab' + # Public: Get the OperatingSystem helper object # # Returns an {Object} which assists in writing OS dependent code. diff --git a/lib/grammar-utils/matlab.coffee b/lib/grammar-utils/matlab.coffee new file mode 100644 index 00000000..03537327 --- /dev/null +++ b/lib/grammar-utils/matlab.coffee @@ -0,0 +1,28 @@ +# Require some libs used for creating temporary files +os = require 'os' +fs = require 'fs' +path = require 'path' +uuid = require 'node-uuid' + +# Public: GrammarUtils.MATLAB - a module which assist the creation of MATLAB temporary files +module.exports = + tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles') + + # Public: Create a temporary file with the provided MATLAB code + # + # * `code` A {String} containing some MATLAB code + # + # Returns the {String} filepath of the new file + createTempFileWithCode: (code) -> + try + fs.mkdirSync(@tempFilesDir) unless fs.existsSync(@tempFilesDir) + + tempFilePath = @tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.m' + + file = fs.openSync(tempFilePath, 'w') + fs.writeSync(file, code) + fs.closeSync(file) + + tempFilePath + catch error + throw ("Error while creating temporary file (#{error})") diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8192cc5a..7d812e90 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -316,6 +316,17 @@ module.exports = command: "python" args: (context) -> ['-u', context.filepath] + MATLAB: + "Selection Based": + command: "matlab" + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) + ['-nodesktop','-nosplash','-nojvm','-nodisplay','-r',"try, run('" + tmpFile + "'), catch ME, disp(ME.message);,exit(1);, end, exit(0);"] + "File Based": + command: "matlab" + args: (context) -> ['-nodesktop','-nosplash','-nojvm','-nodisplay','-r',"try, run('" + context.filepath + "'), catch ME, disp(ME.message);,exit(1);, end, exit(0);"] + MoonScript: "Selection Based": command: "moon" From c9e1da20204aa7d1eb3cfae7813e0bbb64eebcbd Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 23 May 2016 22:42:09 +0300 Subject: [PATCH 019/410] Support Stata Signed-off-by: Nikita Gryzlov --- lib/grammars.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8192cc5a..feade5ba 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -591,6 +591,14 @@ module.exports = command: "sml" args: (context) -> [context.filepath] + Stata: + "Selection Based": + command: "xstata-se" + args: (context) -> ['do', context.getCode()] + "File Based": + command: "xstata-se" + args: (context) -> ['do', context.filepath] + Swift: "File Based": command: "swift" From 18304a9c41c1bbe4ce221d97a6ecbc54b2d2be3f Mon Sep 17 00:00:00 2001 From: Bram Harmsen Date: Mon, 23 May 2016 23:26:51 +0200 Subject: [PATCH 020/410] Removed MATLAB Notes in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 01bf0029..00576dd7 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Currently supported grammars are: | LiveScript | Yes | Yes | | | Lua | Yes | Yes | | | Makefile | Yes | Yes | | -| [MATLAB](http://mathworks.com/products/matlab) | Yes | Yes | Requires the language-matlab package in Atom https://atom.io/packages/language-matlab | +| [MATLAB](http://mathworks.com/products/matlab) | Yes | Yes | | | MongoDB | Yes | Yes | | | MoonScript | Yes | Yes | | | [NCL](http://ncl.ucar.edu) | Yes | Yes | Scripts must end with `exit` command for file based runs | From 52cb7db244b81a5828f0112bfca8b219cfd0d5c5 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 24 May 2016 18:17:29 +0300 Subject: [PATCH 021/410] Add Stata entry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 00576dd7..e509de02 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ Currently supported grammars are: | Scheme | Yes | Yes | | | Shell Script | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | | Standard ML | Yes | | | +| Stata | Yes | Yes | Runs through xstata-se | | Swift | Yes | | | | TypeScript | Yes | Yes | | | Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | From 0b300603f49756ac45b7d02534412afbef85ed8e Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 24 May 2016 18:18:44 +0300 Subject: [PATCH 022/410] Changelog for 3.7.3 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7fb02b9..5e7d0d03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 3.7.3 + +* Support for Stata +* Support for MATLAB + ## 3.7.2 * Support Rust on Windows From e2a8354c16f6c71c87e6885f839d368bae965ac1 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 24 May 2016 18:19:26 +0300 Subject: [PATCH 023/410] Prepare 3.7.3 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a6be2e9..e173e3f6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.7.2", + "version": "3.7.3", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From c71e518a21bc3a7ef68f04432009cffcd2525620 Mon Sep 17 00:00:00 2001 From: Nick Eubank Date: Tue, 24 May 2016 08:43:29 -0700 Subject: [PATCH 024/410] tweaks to stata --- README.md | 2 +- lib/grammars.coffee | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e509de02..66bff660 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Currently supported grammars are: | Scheme | Yes | Yes | | | Shell Script | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | | Standard ML | Yes | | | -| Stata | Yes | Yes | Runs through xstata-se | +| Stata | Yes | Yes | Runs through Stata. Note stata needs to be added to your system PATH for this to work. `Mac directions `_ . | | Swift | Yes | | | | TypeScript | Yes | Yes | | | Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8be5937b..b8344ae6 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -604,10 +604,10 @@ module.exports = Stata: "Selection Based": - command: "xstata-se" + command: "stata" args: (context) -> ['do', context.getCode()] "File Based": - command: "xstata-se" + command: "stata" args: (context) -> ['do', context.filepath] Swift: From 308aa5fb5948e67dc35760494fd33d46da91774a Mon Sep 17 00:00:00 2001 From: Paul Gier Date: Sat, 18 Jun 2016 14:44:38 -0500 Subject: [PATCH 025/410] Check for null codeContext (i.e. no files open), fixes #671 --- lib/runtime.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/runtime.coffee b/lib/runtime.coffee index 0995178d..62c022be 100644 --- a/lib/runtime.coffee +++ b/lib/runtime.coffee @@ -50,7 +50,7 @@ class Runtime # In the future we could handle a runner without the language being part # of the grammar map, using the options runner - return unless codeContext.lang? + return unless codeContext?.lang? executionOptions = if options then options else @scriptOptions commandContext = CommandContext.build(@, executionOptions, codeContext) @@ -59,7 +59,7 @@ class Runtime if commandContext.workingDirectory? executionOptions.workingDirectory = commandContext.workingDirectory - + @emitter.emit 'did-context-create', lang: codeContext.lang filename: codeContext.filename From 54b708e002dc56aaf3f4fecaa284493366a05964 Mon Sep 17 00:00:00 2001 From: idleberg Date: Tue, 28 Jun 2016 11:15:51 +0200 Subject: [PATCH 026/410] add Tcl --- README.md | 1 + lib/grammars.coffee | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index e509de02..3b716292 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Currently supported grammars are: | Standard ML | Yes | | | | Stata | Yes | Yes | Runs through xstata-se | | Swift | Yes | | | +| Tcl | Yes | | | | TypeScript | Yes | Yes | | | Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8be5937b..16700c69 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -615,6 +615,17 @@ module.exports = command: "swift" args: (context) -> [context.filepath] + Tcl: + "Selection Based": + command: "tclsh" + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + [tmpFile] + "File Based": + command: "tclsh" + args: (context) -> [context.filepath] + TypeScript: "Selection Based": command: "bash" From e6620e264ef60edf09a5f37666e02abe070512f3 Mon Sep 17 00:00:00 2001 From: Peter Lerup Date: Tue, 28 Jun 2016 19:16:26 +0200 Subject: [PATCH 027/410] Don't save unless buffer is modified --- lib/code-context-builder.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/code-context-builder.coffee b/lib/code-context-builder.coffee index 266850e6..94ce355f 100644 --- a/lib/code-context-builder.coffee +++ b/lib/code-context-builder.coffee @@ -28,10 +28,10 @@ class CodeContextBuilder codeContext.argType = argType if argType == 'Line Number Based' - editor.save() + editor.save() if editor.isModified() else if codeContext.selection.isEmpty() and codeContext.filepath? codeContext.argType = 'File Based' - editor.save() + editor.save() if editor.isModified() # Selection and Line Number Based runs both benefit from knowing the current line # number From 176b37037ee51c1ae80ff7e6db4967191b35d4c0 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Wed, 29 Jun 2016 10:00:20 +0200 Subject: [PATCH 028/410] Update table --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b716292..89d8c598 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ Currently supported grammars are: | Standard ML | Yes | | | | Stata | Yes | Yes | Runs through xstata-se | | Swift | Yes | | | -| Tcl | Yes | | | +| Tcl | Yes | Yes | | | TypeScript | Yes | Yes | | | Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | From aa74fa2d9d923f3c9ede75615af7d6c4bf9c1934 Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Thu, 30 Jun 2016 07:29:36 +0930 Subject: [PATCH 029/410] Prep for windows Just need to change output file and location. --- lib/grammars.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8be5937b..0aa1bdca 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -68,6 +68,10 @@ module.exports = "File Based": command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().indexOf("14399") >= 0 + "File Based: + command: "bash" + args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] Clojure: "Selection Based": From aaf14a1d04cd93265e5ffa5d2ef777d483e5bba2 Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Thu, 30 Jun 2016 22:02:38 +0930 Subject: [PATCH 030/410] Enable the reading of the OS release number --- lib/grammar-utils/operating-system.coffee | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/grammar-utils/operating-system.coffee b/lib/grammar-utils/operating-system.coffee index fefc6bb5..67f14d47 100644 --- a/lib/grammar-utils/operating-system.coffee +++ b/lib/grammar-utils/operating-system.coffee @@ -12,3 +12,6 @@ module.exports = platform: -> process.platform + + release: -> + process.release From e2e8d91ff60af5084862cfe2c473d5ea0e25af28 Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Thu, 30 Jun 2016 22:51:13 +0930 Subject: [PATCH 031/410] Whoops. Need that quote --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 0aa1bdca..d2a7c3cd 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -69,7 +69,7 @@ module.exports = command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().indexOf("14399") >= 0 - "File Based: + "File Based": command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] From b81a5a10c2afdde1fd4965b783e96e211f323943 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Thu, 30 Jun 2016 18:02:27 +0200 Subject: [PATCH 032/410] Update batch Not that it didn't work before, but I think Batch should be executed *explicitly* by `cmd.exe`. --- lib/grammars.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 16700c69..48fed5e4 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -33,8 +33,8 @@ module.exports = Batch: "File Based": - command: "" - args: (context) -> [context.filepath] + command: "cmd.exe" + args: (context) -> ['/q', '/c', context.filepath] 'Behat Feature': "File Based": From c2044f574c1aab4c8431864a5954b8b135860dcf Mon Sep 17 00:00:00 2001 From: Peter Lerup Date: Fri, 1 Jul 2016 20:35:49 +0200 Subject: [PATCH 033/410] Handle empty editor --- lib/code-context-builder.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/code-context-builder.coffee b/lib/code-context-builder.coffee index 94ce355f..45f289f7 100644 --- a/lib/code-context-builder.coffee +++ b/lib/code-context-builder.coffee @@ -28,10 +28,10 @@ class CodeContextBuilder codeContext.argType = argType if argType == 'Line Number Based' - editor.save() if editor.isModified() + editor.save() if editor?.isModified() else if codeContext.selection.isEmpty() and codeContext.filepath? codeContext.argType = 'File Based' - editor.save() if editor.isModified() + editor.save() if editor?.isModified() # Selection and Line Number Based runs both benefit from knowing the current line # number From 6dfb564fb8e46baf18b01914bfc6e7a0445f3fd3 Mon Sep 17 00:00:00 2001 From: Peter Lerup Date: Fri, 1 Jul 2016 20:49:55 +0200 Subject: [PATCH 034/410] isModified only for file --- lib/code-context-builder.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/code-context-builder.coffee b/lib/code-context-builder.coffee index 45f289f7..f16518da 100644 --- a/lib/code-context-builder.coffee +++ b/lib/code-context-builder.coffee @@ -28,7 +28,7 @@ class CodeContextBuilder codeContext.argType = argType if argType == 'Line Number Based' - editor.save() if editor?.isModified() + editor.save() else if codeContext.selection.isEmpty() and codeContext.filepath? codeContext.argType = 'File Based' editor.save() if editor?.isModified() From 2cb4913798302fb2bd65dc4d21d3ca5b5298556b Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Sat, 2 Jul 2016 22:29:43 +0930 Subject: [PATCH 035/410] Fixed path conversion Windows -> Posix Hopefully it's not **TOO** complicated? --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index d2a7c3cd..08b688dc 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -71,7 +71,7 @@ module.exports = else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().indexOf("14399") >= 0 "File Based": command: "bash" - args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] Clojure: "Selection Based": From 2fc8aedf7e4db4619a675677a54b08e686daa95f Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Sat, 2 Jul 2016 23:05:10 +0930 Subject: [PATCH 036/410] Whoops. OS is the module I wanted. --- lib/grammar-utils/operating-system.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammar-utils/operating-system.coffee b/lib/grammar-utils/operating-system.coffee index 67f14d47..f428b6b6 100644 --- a/lib/grammar-utils/operating-system.coffee +++ b/lib/grammar-utils/operating-system.coffee @@ -14,4 +14,4 @@ module.exports = process.platform release: -> - process.release + os.release From 47a707666a3ae29acfe5459071036f6a4f24e12d Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Sat, 2 Jul 2016 23:11:59 +0930 Subject: [PATCH 037/410] Need to require OS --- lib/grammar-utils/operating-system.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/grammar-utils/operating-system.coffee b/lib/grammar-utils/operating-system.coffee index f428b6b6..476acedf 100644 --- a/lib/grammar-utils/operating-system.coffee +++ b/lib/grammar-utils/operating-system.coffee @@ -1,3 +1,5 @@ +os = require 'os' + # Public: GrammarUtils.OperatingSystem - a module which exposes different # platform related helper functions. module.exports = From d79b11c4c40112f0e5d87299bb9355d2782e1396 Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Sun, 3 Jul 2016 00:27:24 +0930 Subject: [PATCH 038/410] Forgot this was Coffee instead of JS Removed JS specificity. Let's see if this passes... --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 08b688dc..ed6d683e 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -68,7 +68,7 @@ module.exports = "File Based": command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] - else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().indexOf("14399") >= 0 + else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().slice(-1) >= '14399' "File Based": command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] From a3bc81235a9525bf9cd2087a383fac5030340d38 Mon Sep 17 00:00:00 2001 From: Jarod Brennfleck Date: Sun, 3 Jul 2016 00:30:53 +0930 Subject: [PATCH 039/410] Need to split first --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index ed6d683e..3837c782 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -68,7 +68,7 @@ module.exports = "File Based": command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] - else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().slice(-1) >= '14399' + else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().split(".").slice -1 >= '14399' "File Based": command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] From 9b7d4bc92553d7bc1a83361e7bfd789ae6f46cc2 Mon Sep 17 00:00:00 2001 From: Brian Lennon Date: Tue, 5 Jul 2016 14:34:24 +0300 Subject: [PATCH 040/410] Add Fortran support --- README.md | 1 + examples/hello.f | 2 ++ examples/hello.f90 | 2 ++ lib/grammars.coffee | 20 ++++++++++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 examples/hello.f create mode 100644 examples/hello.f90 diff --git a/README.md b/README.md index 89d8c598..f96b4a71 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ Currently supported grammars are: | F# | Yes | | | | Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | | Forth (via GForth) | Yes | | | +| Fortran (via gfortran) | Yes | | | Gnuplot | Yes | | | | Go | Yes | | | | Groovy | Yes | Yes | | diff --git a/examples/hello.f b/examples/hello.f new file mode 100644 index 00000000..c97a1db5 --- /dev/null +++ b/examples/hello.f @@ -0,0 +1,2 @@ + print *, 'hello world' + end diff --git a/examples/hello.f90 b/examples/hello.f90 new file mode 100644 index 00000000..7b890fff --- /dev/null +++ b/examples/hello.f90 @@ -0,0 +1,2 @@ +print *, 'hello world' +end diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 16700c69..4de8289b 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -139,6 +139,26 @@ module.exports = command: "gforth" args: (context) -> [context.filepath] + "Fortran - Fixed Form": + "File Based": + command: "bash" + args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffixed-form -o /tmp/f.out && /tmp/f.out"] + + "Fortran - Free Form": + "File Based": + command: "bash" + args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] + + "Fortran - Modern": + "File Based": + command: "bash" + args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] + + "Fortran - Punchcard": + "File Based": + command: "bash" + args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffixed-form -o /tmp/f.out && /tmp/f.out"] + Gherkin: "File Based": command: "cucumber" From 994cb4488fb3336561d7bf07ea1701c79617d8d6 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Tue, 5 Jul 2016 21:54:13 +0200 Subject: [PATCH 041/410] add Inno Setup --- README.md | 1 + lib/grammars.coffee | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 1866d0a4..14ed1627 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Currently supported grammars are: | Groovy | Yes | Yes | | | Haskell | Yes | Yes | | | IcedCoffeeScript | Yes | Yes | | +| Inno Setup | Yes | | Requires the path of `ISCC.exe` in your system environment variables | | [ioLanguage](http://iolanguage.org/) | Yes | Yes | | | Java | Yes | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables | | Javascript | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index df8fe25e..be0ed206 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -205,6 +205,11 @@ module.exports = command: "iced" args: (context) -> [context.filepath] + InnoSetup: + "File Based": + command: "ISCC.exe" + args: (context) -> ['/Q', context.filepath] + ioLanguage: "Selection Based": command: "io" From dc3b3d5248faab9726ffa25bd63ab90e03dbb525 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 5 Jul 2016 23:24:32 +0300 Subject: [PATCH 042/410] Remove old c/cpp tests --- spec/grammars-spec.coffee | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/spec/grammars-spec.coffee b/spec/grammars-spec.coffee index 538d6320..5455d806 100644 --- a/spec/grammars-spec.coffee +++ b/spec/grammars-spec.coffee @@ -40,13 +40,6 @@ describe 'grammarMap', -> expect(args[0]).toEqual('-c') expect(args[1]).toMatch(/^xcrun clang/) - it 'is not defined on other operating systems', -> - OperatingSystem.platform = -> 'win32' - @reloadGrammar() - - grammar = grammarMap['C'] - expect(grammar).toBe(undefined) - describe 'C++', -> it 'returns the appropriate File Based runner on Mac OS X', -> OperatingSystem.platform = -> 'darwin' @@ -59,13 +52,6 @@ describe 'grammarMap', -> expect(args[0]).toEqual('-c') expect(args[1]).toMatch(/^xcrun clang\+\+/) - it 'is not defined on other operating systems', -> - OperatingSystem.platform = -> 'win32' - @reloadGrammar() - - grammar = grammarMap['C++'] - expect(grammar).toBe(undefined) - describe 'F#', -> it 'returns "fsi" as command for File Based runner on Windows', -> OperatingSystem.platform = -> 'win32' @@ -101,13 +87,6 @@ describe 'grammarMap', -> expect(args[0]).toEqual('-c') expect(args[1]).toMatch(/^xcrun clang/) - it 'is not defined on other operating systems', -> - OperatingSystem.platform = -> 'win32' - @reloadGrammar() - - grammar = grammarMap['Objective-C'] - expect(grammar).toBe(undefined) - describe 'Objective-C++', -> it 'returns the appropriate File Based runner on Mac OS X', -> OperatingSystem.platform = -> 'darwin' @@ -119,10 +98,3 @@ describe 'grammarMap', -> expect(fileBasedRunner.command).toEqual('bash') expect(args[0]).toEqual('-c') expect(args[1]).toMatch(/^xcrun clang\+\+/) - - it 'is not defined on other operating systems', -> - OperatingSystem.platform = -> 'win32' - @reloadGrammar() - - grammar = grammarMap['Objective-C++'] - expect(grammar).toBe(undefined) From a3ee2dad3ce78c5a1a039edab0e6c3acbf260aa4 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 5 Jul 2016 23:29:02 +0300 Subject: [PATCH 043/410] Changelog for 3.8.0 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e7d0d03..ade1c588 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## 3.8.0 + +* Support for C/C++ on Windows (only latest win10 builds with `bash` and `g++` installed) +* Support for Fortran +* Support for `Inno Setup` +* Support for Tcl +* Use `cmd.exe` for `Batch` files +* Change `stata` intrepreter to `stata` + ## 3.7.3 * Support for Stata From 4164c3e7cca9de3eed6f4f263b00e95ac0209bb3 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 5 Jul 2016 23:29:50 +0300 Subject: [PATCH 044/410] Prepare 3.8.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e173e3f6..d390bf8f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.7.3", + "version": "3.8.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 70f2c60e45b40a0873002e4c095c38a185b53e6a Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 5 Jul 2016 23:41:12 +0300 Subject: [PATCH 045/410] Fix compilation errors --- lib/grammar-utils/operating-system.coffee | 6 +++--- lib/grammars.coffee | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/grammar-utils/operating-system.coffee b/lib/grammar-utils/operating-system.coffee index 476acedf..aa46944a 100644 --- a/lib/grammar-utils/operating-system.coffee +++ b/lib/grammar-utils/operating-system.coffee @@ -13,7 +13,7 @@ module.exports = @platform() is 'linux' platform: -> - process.platform - + os.platform() + release: -> - os.release + os.release() diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 77255d43..7528617f 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -2,6 +2,7 @@ # As well as any special setup for arguments. _ = require 'underscore' +path = require 'path' GrammarUtils = require '../lib/grammar-utils' module.exports = From e659a834dd527fa7cbfd61ea6c44e9a93b538fc5 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 5 Jul 2016 23:41:51 +0300 Subject: [PATCH 046/410] Changelog for 3.8.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ade1c588..e1d5324e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.8.1 + +* Fix compilation errors + ## 3.8.0 * Support for C/C++ on Windows (only latest win10 builds with `bash` and `g++` installed) From f36d27eea1b7080049201b5db73a0be1b610d957 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 5 Jul 2016 23:42:20 +0300 Subject: [PATCH 047/410] Prepare 3.8.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d390bf8f..3c42498f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.8.0", + "version": "3.8.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 147332a7d05e756645ae24a4bd04b2f8131ba9b4 Mon Sep 17 00:00:00 2001 From: Bram Harmsen Date: Wed, 6 Jul 2016 18:41:30 +0200 Subject: [PATCH 048/410] Updated MATLAB in grammers.coffee. By removing -nodisplay and -nojvm and injecting a while loop which monitors open windows users should now be able to use the graphical capabilities of MATLAB as well. I guess this is the behavior that most users expect. It comes at the cost of adding a couple seconds time for running scripts, even if these scripts don't use any of the graphical capabilities. --- lib/grammars.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 7528617f..22cfe27d 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -352,10 +352,10 @@ module.exports = args: (context) -> code = context.getCode() tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) - ['-nodesktop','-nosplash','-nojvm','-nodisplay','-r',"try, run('" + tmpFile + "'), catch ME, disp(ME.message);,exit(1);, end, exit(0);"] + ['-nodesktop','-nosplash','-r',"try, run('" + tmpFile + "');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] "File Based": command: "matlab" - args: (context) -> ['-nodesktop','-nosplash','-nojvm','-nodisplay','-r',"try, run('" + context.filepath + "'), catch ME, disp(ME.message);,exit(1);, end, exit(0);"] + args: (context) -> ['-nodesktop','-nosplash','-r',"try run('" + context.filepath + "');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] MoonScript: "Selection Based": From 3f5b50ca22474abcf9e21ba70a6844150c129ac4 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Fri, 15 Jul 2016 19:43:57 +0300 Subject: [PATCH 049/410] Lua (WoW) added. Fix #1008 --- README.md | 1 + lib/grammars.coffee | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 14ed1627..3e4c9a21 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ Currently supported grammars are: | Literate Haskell | Yes | | | | LiveScript | Yes | Yes | | | Lua | Yes | Yes | | +| Lua (WoW) | Yes | Yes | | | Makefile | Yes | Yes | | | [MATLAB](http://mathworks.com/products/matlab) | Yes | Yes | | | MongoDB | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 7528617f..33286701 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -330,6 +330,17 @@ module.exports = command: "lua" args: (context) -> [context.filepath] + 'Lua (WoW)': + "Selection Based": + command: "lua" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code) + [tmpFile] + "File Based": + command: "lua" + args: (context) -> [context.filepath] + Makefile: "Selection Based": command: "bash" From 33db9426d6f81301a82573f2c1e284bd50bb26ae Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Fri, 15 Jul 2016 19:44:32 +0300 Subject: [PATCH 050/410] Changelog for 3.8.2 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1d5324e..c30e0112 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.8.2 + +* Support for Lua (WoW) + ## 3.8.1 * Fix compilation errors From a47e8f582683b5f9055e6a57527897cdb4c067ca Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Fri, 15 Jul 2016 19:44:45 +0300 Subject: [PATCH 051/410] Prepare 3.8.2 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3c42498f..8a304095 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.8.1", + "version": "3.8.2", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From b4f3516030d9474344301c70068cb5b3ccdaa512 Mon Sep 17 00:00:00 2001 From: samendez Date: Thu, 21 Jul 2016 22:25:09 -0500 Subject: [PATCH 052/410] Added Processing execution through processing-java for Mac-OSX (tested on OSX 10.11.5 Processing 0241) --- examples/bounce/bounce.pde | 19 +++++++++++++++++++ lib/grammars.coffee | 5 +++++ 2 files changed, 24 insertions(+) create mode 100644 examples/bounce/bounce.pde diff --git a/examples/bounce/bounce.pde b/examples/bounce/bounce.pde new file mode 100644 index 00000000..47a00e28 --- /dev/null +++ b/examples/bounce/bounce.pde @@ -0,0 +1,19 @@ +//Must be contained in a folder with same name for setup and draw to function +//Other files in this folder are appended on build +PVector pos; +PVector vel; +final float r = 50; +void setup(){ + size(300,300); + pos = new PVector(random(width-r*2)+r,random(height-r*2)+r); + vel = new PVector(random(3,5)*(int)random(0,1)*2-1,random(3,5)*(int)random(0,1)*2-1); +} +void draw(){ + clear(); + background(255); + fill(100,100,100); + if(pos.x+vel.x+r > width || pos.x+vel.x-r < 0) vel.x *= -1; + if(pos.y+vel.y+r > height || pos.y+vel.y-r < 0) vel.y *= -1; + pos.add(vel); + ellipse(pos.x,pos.y,r*2,r*2); +} diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 33286701..e56ceb5a 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -497,6 +497,11 @@ module.exports = "File Based": command: "powershell" args: (context) -> [context.filepath.replace /\ /g, "` "] + + Processing: + "File Based": + command: "bash" + args: (context) -> ['-c', 'processing-java --sketch='+context.filepath.replace("/"+context.filename,"")+' --run'] Prolog: "File Based": From 30447928fd145480d0accbce5aadcde31032b8a6 Mon Sep 17 00:00:00 2001 From: samendez Date: Mon, 25 Jul 2016 09:50:10 -0500 Subject: [PATCH 053/410] Added windows functionality --- lib/grammars.coffee | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index e56ceb5a..9648ce42 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -497,11 +497,16 @@ module.exports = "File Based": command: "powershell" args: (context) -> [context.filepath.replace /\ /g, "` "] - + Processing: "File Based": - command: "bash" - args: (context) -> ['-c', 'processing-java --sketch='+context.filepath.replace("/"+context.filename,"")+' --run'] + command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + args: (context) -> + if GrammarUtils.OperatingSystem.isWindows() + return ['/c processing-java --sketch='+context.filepath.replace("\\"+context.filename,"")+' --run'] + else + return ['-c', 'processing-java --sketch='+context.filepath.replace("/"+context.filename,"")+' --run'] + Prolog: "File Based": From dfeedbd79faea6f3970bbf0ed2b08128fa0aa502 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 25 Jul 2016 18:00:44 +0300 Subject: [PATCH 054/410] Changelog for 3.8.3 --- CHANGELOG.md | 4 ++++ README.md | 1 + 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c30e0112..f0b91761 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.8.3 + +* Support for Processing + ## 3.8.2 * Support for Lua (WoW) diff --git a/README.md b/README.md index 3e4c9a21..eec24db4 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ Currently supported grammars are: | PHP | Yes | Yes | | | PostgreSQL | Yes | Yes | Requires the atom-language-pgsql package in Atom https://atom.io/packages/language-pgsql. Connects as user `$PGUSER` to database `$PGDATABASE`. Both default to the operating system's user name and both can be set in the process environment or in Atom's `init.coffee` script: `process.env.PGUSER = ⟨username⟩` and `process.env.PGDATABASE = ⟨database name⟩` | | PowerShell | Yes | | | +| Processing | Yes | | Runs through processing-java. | | Prolog | Yes | | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl | | Python | Yes | Yes | | | R | Yes | Yes | | From 403b4dd0bca5035c9c2ad039a3cd2ca8b4497589 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 25 Jul 2016 18:00:57 +0300 Subject: [PATCH 055/410] Prepare 3.8.3 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8a304095..4cce648d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.8.2", + "version": "3.8.3", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 272209d698a9f26ccae8c936d9064515904d13c7 Mon Sep 17 00:00:00 2001 From: Allieway Date: Mon, 8 Aug 2016 11:54:11 -0500 Subject: [PATCH 056/410] Add Selection based support for powershell Tested and working correctly. --- lib/grammars.coffee | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 9648ce42..545e40a0 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -494,6 +494,9 @@ module.exports = args: (context) -> [context.filepath] PowerShell: + "Selection Based": + command: "powershell" + args: (context) -> [context.getCode()] "File Based": command: "powershell" args: (context) -> [context.filepath.replace /\ /g, "` "] From 2389e92d31f158c149ae1b7df3620e511bdb97c4 Mon Sep 17 00:00:00 2001 From: Allieway Date: Tue, 9 Aug 2016 14:40:16 -0500 Subject: [PATCH 057/410] Added Selection support to several languages --- examples/hello.cs | 8 ++++ examples/hello.csx | 2 + examples/hello.d | 6 +++ examples/hello.dart | 3 ++ lib/grammar-utils.coffee | 5 +++ lib/grammars.coffee | 95 ++++++++++++++++++++++++++++++++++++---- 6 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 examples/hello.cs create mode 100755 examples/hello.csx create mode 100644 examples/hello.d create mode 100644 examples/hello.dart diff --git a/examples/hello.cs b/examples/hello.cs new file mode 100644 index 00000000..74a0fad7 --- /dev/null +++ b/examples/hello.cs @@ -0,0 +1,8 @@ +// hello.cs +public class Hello1 +{ + public static void Main() + { + System.Console.WriteLine("Hello, World!"); + } +} diff --git a/examples/hello.csx b/examples/hello.csx new file mode 100755 index 00000000..14dba17a --- /dev/null +++ b/examples/hello.csx @@ -0,0 +1,2 @@ +// hello.csx +Console.WriteLine("Hello world!"); diff --git a/examples/hello.d b/examples/hello.d new file mode 100644 index 00000000..5de808ed --- /dev/null +++ b/examples/hello.d @@ -0,0 +1,6 @@ +import std.stdio; + +void main() +{ + writeln("Hello, World!"); +} diff --git a/examples/hello.dart b/examples/hello.dart new file mode 100644 index 00000000..90089f68 --- /dev/null +++ b/examples/hello.dart @@ -0,0 +1,3 @@ +main() { + print('Hello World!'); +} diff --git a/lib/grammar-utils.coffee b/lib/grammar-utils.coffee index 985e92f7..afbe6a22 100644 --- a/lib/grammar-utils.coffee +++ b/lib/grammar-utils.coffee @@ -77,3 +77,8 @@ module.exports = # # Returns an [array] of appropriate command line flags for the active CS compiler. CScompiler: require './grammar-utils/coffee-script-compiler' + + # Public: Get the D helper object + # + # Returns an {Object} which assists in creating temp files containing D code + D: require './grammar-utils/d' diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 9648ce42..ad5c7a38 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -46,19 +46,61 @@ module.exports = args: (context) -> [context.fileColonLine()] C: - if GrammarUtils.OperatingSystem.isDarwin() - "File Based": - command: "bash" - args: (context) -> ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '" + context.filepath + "' -o /tmp/c.out && /tmp/c.out"] - else if GrammarUtils.OperatingSystem.isLinux() - "File Based": - command: "bash" - args: (context) -> ["-c", "cc -Wall -include stdio.h '" + context.filepath + "' -o /tmp/c.out && /tmp/c.out"] + "File Based": + command: "bash" + args: (context) -> + args = [] + if GrammarUtils.OperatingSystem.isDarwin() + args = ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '" + context.filepath + "' -o /tmp/c.out && /tmp/c.out"] + else if GrammarUtils.OperatingSystem.isLinux() + args = ["-c", "cc -Wall -include stdio.h '" + context.filepath + "' -o /tmp/c.out && /tmp/c.out"] + return args + "Selection Based": + command: "bash" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".c") + args = [] + if GrammarUtils.OperatingSystem.isDarwin() + args = ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '" + tmpFile + "' -o /tmp/c.out && /tmp/c.out"] + else if GrammarUtils.OperatingSystem.isLinux() + args = ["-c", "cc -Wall -include stdio.h '" + tmpFile + "' -o /tmp/c.out && /tmp/c.out"] + return args + + 'C#': + "File Based": + command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + args: (context) -> + progname = context.filename.replace /\.cs$/, "" + args = [] + if GrammarUtils.OperatingSystem.isWindows() + args = ["/c csc #{context.filepath} && #{progname}.exe"] + else + args = ['-c', "csc #{context.filepath} && mono #{progname}.exe"] + return args + "Selection Based": + command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".cs") + progname = tmpFile.replace /\.cs$/, "" + args = [] + if GrammarUtils.OperatingSystem.isWindows() + args = ["/c csc /out:#{progname}.exe #{tmpFile} && #{progname}.exe"] + else + args = ['-c', "csc /out:#{progname}.exe #{tmpFile} && mono #{progname}.exe"] + return args 'C# Script File': "File Based": command: "scriptcs" args: (context) -> ['-script', context.filepath] + "Selection Based": + command: "scriptcs" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".csx") + ['-script', tmpFile] 'C++': if GrammarUtils.OperatingSystem.isDarwin() @@ -66,6 +108,12 @@ module.exports = command: "bash" args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] else if GrammarUtils.OperatingSystem.isLinux() + "Selection Based": + command: "bash" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") + ["-c", "g++ -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] "File Based": command: "bash" args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] @@ -107,16 +155,44 @@ module.exports = args: (context) -> [context.filepath] D: + "Selection Based": + command: "rdmd" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.D.createTempFileWithCode(code) + [tmpFile] "File Based": command: "rdmd" args: (context) -> [context.filepath] Dart: + "Selection Based": + command: "dart" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".dart") + [tmpFile] "File Based": command: "dart" args: (context) -> [context.filepath] + "Graphviz (DOT)": + "Selection Based": + command: "dot" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") + ['-Tpng', tmpFile, '-o', tmpFile + '.png'] + "File Based": + command: "dot" + args: (context) -> ['-Tpng', context.filepath, '-o', context.filepath + '.png'] DOT: + "Selection Based": + command: "dot" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") + ['-Tpng', tmpFile, '-o', tmpFile + '.png'] "File Based": command: "dot" args: (context) -> ['-Tpng', context.filepath, '-o', context.filepath + '.png'] @@ -494,6 +570,9 @@ module.exports = args: (context) -> [context.filepath] PowerShell: + "Selection Based": + command: "powershell" + args: (context) -> [context.getCode()] "File Based": command: "powershell" args: (context) -> [context.filepath.replace /\ /g, "` "] From fa9339eaaddf3751fed0e79e6df7ca8a66db5fec Mon Sep 17 00:00:00 2001 From: Allieway Date: Tue, 9 Aug 2016 14:46:18 -0500 Subject: [PATCH 058/410] added D.coffee for D selection support --- lib/grammar-utils/d.coffee | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/grammar-utils/d.coffee diff --git a/lib/grammar-utils/d.coffee b/lib/grammar-utils/d.coffee new file mode 100644 index 00000000..87467a86 --- /dev/null +++ b/lib/grammar-utils/d.coffee @@ -0,0 +1,28 @@ +# Require some libs used for creating temporary files +os = require 'os' +fs = require 'fs' +path = require 'path' +uuid = require 'node-uuid' + +# Public: GrammarUtils.D - a module which assist the creation of D temporary files +module.exports = + tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles') + + # Public: Create a temporary file with the provided D code + # + # * `code` A {String} containing some D code + # + # Returns the {String} filepath of the new file + createTempFileWithCode: (code) -> + try + fs.mkdirSync(@tempFilesDir) unless fs.existsSync(@tempFilesDir) + + tempFilePath = @tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.d' + + file = fs.openSync(tempFilePath, 'w') + fs.writeSync(file, code) + fs.closeSync(file) + + tempFilePath + catch error + throw ("Error while creating temporary file (#{error})") From a822a017423bf0b7455d10940af8f0484764860f Mon Sep 17 00:00:00 2001 From: Allieway Date: Tue, 9 Aug 2016 14:54:27 -0500 Subject: [PATCH 059/410] updated README to reflect current supported grammars --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index eec24db4..44f04d21 100644 --- a/README.md +++ b/README.md @@ -19,17 +19,18 @@ Currently supported grammars are: | Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | | Batch | Yes | | | | Behat Feature | Yes | | | -| C | Yes | | Only available on OSX (`xcrun clang`) and Linux (`cc`) | -| C# | Yes | | | +| C | Yes | Yes | Only available on OSX (`xcrun clang`) and Linux (`cc`) | +| C# | Yes | Yes | Requires the path of 'csc.exe' in your system environment variables | +| C# Script | Yes | Yes | | | C++ | Yes | | Only available on OSX (`xcurn clang++`) and Linux (`g++`) | | Clojure | Yes | Yes | Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed | | CoffeeScript | Yes | Yes | | | CoffeeScript (Literate) | Yes | Yes | Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks | | Crystal | Yes | Yes | | | Cucumber (Gherkin) | Yes | | | -| D | Yes | | | -| Dart | Yes | | | -| DOT (Graphviz) | Yes | | | +| D | Yes | Yes | | +| Dart | Yes | Yes | | +| DOT (Graphviz) | Yes | Yes | | | Elixir | Yes | Yes | | | Erlang | | Yes | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | | F# | Yes | | | @@ -73,7 +74,7 @@ Currently supported grammars are: | Perl 6 | Yes | Yes | | | PHP | Yes | Yes | | | PostgreSQL | Yes | Yes | Requires the atom-language-pgsql package in Atom https://atom.io/packages/language-pgsql. Connects as user `$PGUSER` to database `$PGDATABASE`. Both default to the operating system's user name and both can be set in the process environment or in Atom's `init.coffee` script: `process.env.PGUSER = ⟨username⟩` and `process.env.PGDATABASE = ⟨database name⟩` | -| PowerShell | Yes | | | +| PowerShell | Yes | Yes | | | Processing | Yes | | Runs through processing-java. | | Prolog | Yes | | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl | | Python | Yes | Yes | | From 30279313cb6d1a13cff26809b5d9188e3e0902c6 Mon Sep 17 00:00:00 2001 From: Allieway Date: Tue, 9 Aug 2016 15:03:54 -0500 Subject: [PATCH 060/410] updated README to reflect current supported grammars --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44f04d21..006a38f3 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Currently supported grammars are: | C | Yes | Yes | Only available on OSX (`xcrun clang`) and Linux (`cc`) | | C# | Yes | Yes | Requires the path of 'csc.exe' in your system environment variables | | C# Script | Yes | Yes | | -| C++ | Yes | | Only available on OSX (`xcurn clang++`) and Linux (`g++`) | +| C++ | Yes | Yes | Only available on OSX (`xcurn clang++`) and Linux (`g++`) | | Clojure | Yes | Yes | Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed | | CoffeeScript | Yes | Yes | | | CoffeeScript (Literate) | Yes | Yes | Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks | From 59d0256edc1c411aeaea0207484fad6a9be5f470 Mon Sep 17 00:00:00 2001 From: weiss Date: Wed, 10 Aug 2016 12:08:12 +0300 Subject: [PATCH 061/410] Fix #973 - Uncaught TypeError: args.split is not a function --- lib/script-options-view.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/script-options-view.coffee b/lib/script-options-view.coffee index d6eb3068..291140c3 100644 --- a/lib/script-options-view.coffee +++ b/lib/script-options-view.coffee @@ -84,11 +84,11 @@ class ScriptOptionsView extends View (replaces['`#match' + (Object.keys(replaces).length + 1) + '`'] = match) for match in matches # replace strings - args = (args.replace(new RegExp(part, 'g'), match) for match, part of replaces) + (args = args.replace(new RegExp(part, 'g'), match)) for match, part of replaces split = (item for item in args.split ' ' when item isnt '') replacer = (argument) -> - argument = (argument.replace(match, replacement) for match, replacement of replaces) + (argument = argument.replace(match, replacement)) for match, replacement of replaces argument # restore strings, strip quotes From df09d45a20299bbc8477ccc4045c9d2d78f4e186 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Sat, 13 Aug 2016 17:01:45 +0300 Subject: [PATCH 062/410] Changelog for 3.9.0 --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0b91761..b4e976e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## 3.9.0 + +* Support "Selection Based" run for `C#` +* Support "Selection Based" run for `C# Script` +* Support "Selection Based" run for `C` +* Support "Selection Based" run for `C++` +* Support "Selection Based" run for `D` +* Support "Selection Based" run for `Dart` +* Support "Selection Based" run for `DOT (Graphviz)` +* Support "Selection Based" run for `Powershell` +* Fix `MATLAB` plot support +* Fix #973 (`args.split is not a function`) + ## 3.8.3 * Support for Processing From 1cdbe8624ab199f40e650a998c59c446630b1f7a Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Sat, 13 Aug 2016 17:02:16 +0300 Subject: [PATCH 063/410] Prepare 3.9.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4cce648d..64afc03d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.8.3", + "version": "3.9.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From e55fc37087e9f63353ce2539f2ffd99a3d258057 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Sat, 13 Aug 2016 18:21:58 +0300 Subject: [PATCH 064/410] Update package.json --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index 64afc03d..3c9c428f 100644 --- a/package.json +++ b/package.json @@ -269,6 +269,10 @@ { "name": "Vladimir Shvets", "email": "stormherz@gmail.com" + }, + { + "name": "Nikita Gryzlov", + "email": "nixel2007@gmail.com" } ], "repository": "https://github.com/rgbkrk/atom-script", From f5b98906e94b9a858779c2cee548ff4462ddea1a Mon Sep 17 00:00:00 2001 From: Alton Campbell Date: Tue, 16 Aug 2016 10:38:25 -0700 Subject: [PATCH 065/410] Added support for Hy Changed the readme to show requirements. Changed grammars.coffee to include hy command and appropriate arguments. --- README.md | 1 + lib/grammars.coffee | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 006a38f3..736911d1 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Currently supported grammars are: | Go | Yes | | | | Groovy | Yes | Yes | | | Haskell | Yes | Yes | | +| Hy | Yes | Yes | Requires the path of 'hy.exe' in your system environment variables. Also requires the a Hy grammar, such as [this one](https://atom.io/packages/language-hy) | | IcedCoffeeScript | Yes | Yes | | | Inno Setup | Yes | | Requires the path of `ISCC.exe` in your system environment variables | | [ioLanguage](http://iolanguage.org/) | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index c8562088..6a883521 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -278,6 +278,14 @@ module.exports = command: "ghc" args: (context) -> ['-e', context.getCode()] + Hy: + "File Based": + command: "hy" + args: (context) -> [context.filepath] + "Selection Based": + command: "hy" + args: (context) -> ['-c', context.getCode()] + IcedCoffeeScript: "Selection Based": command: "iced" From b55dc2f4a9e146da6b5c34b7118211924e223d6a Mon Sep 17 00:00:00 2001 From: Zhao Cai Date: Mon, 22 Aug 2016 23:14:05 -0400 Subject: [PATCH 066/410] Add Support for AutoHotKey https://autohotkey.com/ --- README.md | 1 + lib/grammars.coffee | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 736911d1..5eb388e5 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Currently supported grammars are: | :----------------------------------- | :--------- | :-------------- | :---- | | 1C (BSL) | Yes | | Runs through [OneScript](http://oscript.io/) interpreter in console mode | | Ansible | Yes | | | +| AutoHotKey | Yes | Yes | Requires the path of 'AutoHotKey.exe' in your system environment variables. | AppleScript | Yes | Yes | | | Babel ES6 JS | Yes | Yes | | | Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 6a883521..fd0617f1 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -24,6 +24,17 @@ module.exports = command: 'osascript' args: (context) -> [context.filepath] + AutoHotKey: + "File Based": + command: "AutoHotKey.exe" + args: (context) -> [context.filepath] + "Selection Based": + command: "AutoHotKey.exe" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code) + [tmpFile] + 'Babel ES6 JavaScript': "Selection Based": command: "babel-node" From 523f9669c85b9e02f4b51cd369effbbd8469e7aa Mon Sep 17 00:00:00 2001 From: Zhao Cai Date: Tue, 23 Aug 2016 19:32:22 -0400 Subject: [PATCH 067/410] Remove ".exe" extension in AutoHotKey.exe --- lib/grammars.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index fd0617f1..88cb9ec8 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -26,10 +26,10 @@ module.exports = AutoHotKey: "File Based": - command: "AutoHotKey.exe" + command: "AutoHotKey" args: (context) -> [context.filepath] "Selection Based": - command: "AutoHotKey.exe" + command: "AutoHotKey" args: (context) -> code = context.getCode(true) tmpFile = GrammarUtils.createTempFileWithCode(code) From ec85908f06498dd062bbe773e2141bd37452fe47 Mon Sep 17 00:00:00 2001 From: Alton Campbell Date: Wed, 24 Aug 2016 09:07:39 -0700 Subject: [PATCH 068/410] Corrected typos in README about Hy, clarified req's Corrected typos and clarified the requirements in order to make it easier to understand how to get Hy to work with Atom. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 736911d1..efc40460 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Currently supported grammars are: | Go | Yes | | | | Groovy | Yes | Yes | | | Haskell | Yes | Yes | | -| Hy | Yes | Yes | Requires the path of 'hy.exe' in your system environment variables. Also requires the a Hy grammar, such as [this one](https://atom.io/packages/language-hy) | +| Hy | Yes | Yes | Requires the path of 'hy.exe' in your system environment variables. This is probably already fulfilled if you used `pip install hy` to get Hy. A Hy grammar, such as [this one](https://atom.io/packages/language-hy) is also a good idea. | | IcedCoffeeScript | Yes | Yes | | | Inno Setup | Yes | | Requires the path of `ISCC.exe` in your system environment variables | | [ioLanguage](http://iolanguage.org/) | Yes | Yes | | From dc3996e7bcdca379bc11295fef55459791d5c65d Mon Sep 17 00:00:00 2001 From: Alton Campbell Date: Wed, 24 Aug 2016 15:48:33 -0700 Subject: [PATCH 069/410] Fix `script: run selection` support for Hy `script: run selection` was broken for Hy statements that included strings because of the way the `hy -c` command is implemented. To work around this, the temp-file technique used in other grammars (e.g. dart) was implemented. --- lib/grammars.coffee | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 6a883521..47b71751 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -284,7 +284,10 @@ module.exports = args: (context) -> [context.filepath] "Selection Based": command: "hy" - args: (context) -> ['-c', context.getCode()] + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".hy") + [tmpFile] IcedCoffeeScript: "Selection Based": From f69b50c08b51bf0797e1e05ea47bcea9f003e380 Mon Sep 17 00:00:00 2001 From: stefanprobst Date: Mon, 29 Aug 2016 21:39:54 +0200 Subject: [PATCH 070/410] Make {FILE_ACTIVE_NAME_BASE} work Use path.basename and path.extname instead of path.join --- lib/runner.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/runner.coffee b/lib/runner.coffee index 1b1cec9b..48e0a24f 100644 --- a/lib/runner.coffee +++ b/lib/runner.coffee @@ -92,7 +92,7 @@ class Runner arg = arg.replace(/{FILE_ACTIVE_PATH}/g, path.join(codeContext.filepath, '..')) if codeContext.filename? arg = arg.replace(/{FILE_ACTIVE_NAME}/g, codeContext.filename) - arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.join(codeContext.filename, '..')) + arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.basename(codeContext.filename, path.extname(codeContext.filename))) if project_path? arg = arg.replace(/{PROJECT_PATH}/g, project_path) From 5420d399bd49a7cfd5f8cfce39f0ef6892f2ed23 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 30 Aug 2016 16:50:35 +0300 Subject: [PATCH 071/410] Fix #1063 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5eb388e5..76540bf0 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ Make sure to run `atom` from the command line to get full access to your environ **Script: Run by Line Number** to run using the specified line number. **Note** that if you select an entire line this number could be off by one due to the way Atom detects numbers while text is selected. -**Script: Run Options** should be used to configure command options, program arguments, and environment variables overrides. Environment variables may be input into the options view in the form `VARIABLE_NAME_ONE=value;VARIABLE_NAME_TWO="other value";VARIABLE_NAME_3='test'`. +**Script: Configure Script** should be used to configure command options, program arguments, and environment variables overrides. Environment variables may be input into the options view in the form `VARIABLE_NAME_ONE=value;VARIABLE_NAME_TWO="other value";VARIABLE_NAME_3='test'`. Also, in this dialog you can save options as a profile for future use. For example, you can add two profiles, one for `python2.7` and another for `python3` and run scripts with a specified profile, which will be more convinient than entering options every time you want to switch python versions. From 22cb265bfdc53c1e583812a310145006de5c9157 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Thu, 8 Sep 2016 23:57:23 +0200 Subject: [PATCH 072/410] add support for BucketScript --- README.md | 1 + lib/grammars.coffee | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 76540bf0..71cbdb48 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Currently supported grammars are: | Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | | Batch | Yes | | | | Behat Feature | Yes | | | +| BucketScript | Yes | | | | C | Yes | Yes | Only available on OSX (`xcrun clang`) and Linux (`cc`) | | C# | Yes | Yes | Requires the path of 'csc.exe' in your system environment variables | | C# Script | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 88cb9ec8..702700e7 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -56,6 +56,17 @@ module.exports = command: "behat" args: (context) -> [context.fileColonLine()] + BucketScript: + "Selection Based": + command: "bsc" + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + ['-c', tmpFile] + "File Based": + command: "bsc" + args: (context) -> ['-c', context.filepath] + C: "File Based": command: "bash" From 28d9565a7bb8640f4fe0227c965cb65cbf2179cb Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Thu, 8 Sep 2016 23:58:59 +0200 Subject: [PATCH 073/410] fix grammar table --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71cbdb48..8d30b4c6 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Currently supported grammars are: | Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | | Batch | Yes | | | | Behat Feature | Yes | | | -| BucketScript | Yes | | | +| BucketScript | Yes | Yes | | | C | Yes | Yes | Only available on OSX (`xcrun clang`) and Linux (`cc`) | | C# | Yes | Yes | Requires the path of 'csc.exe' in your system environment variables | | C# Script | Yes | Yes | | From 3cde35ad47fff2c8173a436d378fdfa362b98104 Mon Sep 17 00:00:00 2001 From: Mirek Rusin Date: Fri, 9 Sep 2016 14:25:01 -0300 Subject: [PATCH 074/410] [fix #1042] Adding Facebook's Reason. https://facebook.github.io/reason --- lib/grammars.coffee | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 702700e7..fa8856dc 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -660,6 +660,18 @@ module.exports = command: "RantConsole.exe" args: (context) -> ['-file', context.filepath] + Reason: + "File Based": + command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + args: (context) -> + progname = context.filename.replace /\.re$/, "" + args = [] + if GrammarUtils.OperatingSystem.isWindows() + args = ["/c rebuild #{progname}.native && #{progname}.native"] + else + args = ['-c', "rebuild '#{progname}.native' && '#{progname}.native'"] + return args + RSpec: "Selection Based": command: "ruby" From 437462366e1aafa4a1ded7e85d8321cd7d21d19a Mon Sep 17 00:00:00 2001 From: DengSir Date: Sun, 11 Sep 2016 18:14:53 +0800 Subject: [PATCH 075/410] Ignore firstline check on Windows --- lib/code-context-builder.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/code-context-builder.coffee b/lib/code-context-builder.coffee index f16518da..0e5dbfbb 100644 --- a/lib/code-context-builder.coffee +++ b/lib/code-context-builder.coffee @@ -67,6 +67,7 @@ class CodeContextBuilder return codeContext getShebang: (editor) -> + return unless process.platform isnt 'win32' text = editor.getText() lines = text.split("\n") firstLine = lines[0] From 6ac3f4ac4d0f0a254445b6569a90ef0964468f54 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Mon, 12 Sep 2016 17:41:19 +0200 Subject: [PATCH 076/410] fix typo --- README.md | 2 +- lib/grammars.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8d30b4c6..d221aba6 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Currently supported grammars are: | Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | | Batch | Yes | | | | Behat Feature | Yes | | | -| BucketScript | Yes | Yes | | +| BuckleScript | Yes | Yes | | | C | Yes | Yes | Only available on OSX (`xcrun clang`) and Linux (`cc`) | | C# | Yes | Yes | Requires the path of 'csc.exe' in your system environment variables | | C# Script | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 702700e7..eb937196 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -56,7 +56,7 @@ module.exports = command: "behat" args: (context) -> [context.fileColonLine()] - BucketScript: + BuckleScript: "Selection Based": command: "bsc" args: (context) -> From 8700908922665a27ced02d53e6107af8b357024e Mon Sep 17 00:00:00 2001 From: A L Manning Date: Wed, 14 Sep 2016 16:35:42 -0400 Subject: [PATCH 077/410] Added myself as Contributor --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index 3c9c428f..3d6ea411 100644 --- a/package.json +++ b/package.json @@ -274,6 +274,10 @@ "name": "Nikita Gryzlov", "email": "nixel2007@gmail.com" } + { + "name": "A Manning", + "email": "449a6a9b@opayq.com" + } ], "repository": "https://github.com/rgbkrk/atom-script", "keywords": [ From d4f477e843516dbe53e1a3332924d65f07eacdf2 Mon Sep 17 00:00:00 2001 From: A L Manning Date: Wed, 14 Sep 2016 16:37:07 -0400 Subject: [PATCH 078/410] Added File-Based Support for F*(FStar) --- lib/grammars.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 62b6d20e..d2df4de5 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -237,6 +237,11 @@ module.exports = command: if GrammarUtils.OperatingSystem.isWindows() then "fsi" else "fsharpi" args: (context) -> ['--exec', context.filepath] + 'F*': + "File Based": + command: "fstar" + args: (context) -> ['--fsi', context.filepath] + Forth: "File Based": command: "gforth" From 0e79c9d3510bfc795af4a0005acd002ab24a7cf0 Mon Sep 17 00:00:00 2001 From: A L Manning Date: Wed, 14 Sep 2016 16:38:09 -0400 Subject: [PATCH 079/410] Added File-Based Support for F*(FStar) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4e976e0..1156e1be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.9.1 + +* Support "File Based" run for `F*` + ## 3.9.0 * Support "Selection Based" run for `C#` From ef347fd9eb13ab4f996c4b40fc15060387179363 Mon Sep 17 00:00:00 2001 From: A L Manning Date: Wed, 14 Sep 2016 16:40:06 -0400 Subject: [PATCH 080/410] Updated to include alternate names for F* and F# --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 3d6ea411..ce171a46 100644 --- a/package.json +++ b/package.json @@ -292,6 +292,9 @@ "Elixir", "Erlang", "F#", + "FSharp", + "F*", + "FStar", "Go", "Groovy", "Haskell", From 7c09170157c66e7012853e0c45b565a80eb658de Mon Sep 17 00:00:00 2001 From: A L Manning Date: Wed, 14 Sep 2016 16:41:03 -0400 Subject: [PATCH 081/410] F* Example from the F* Tutorial --- examples/Example1.fst | 60 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 examples/Example1.fst diff --git a/examples/Example1.fst b/examples/Example1.fst new file mode 100644 index 00000000..db166f63 --- /dev/null +++ b/examples/Example1.fst @@ -0,0 +1,60 @@ +module Example1 +//safe-read-write + + +type filename = string + +(* canWrite is a function specifying whether or not a file f can be written *) +let canWrite (f:filename) = + match f with + | "demo/tempfile" -> true + | _ -> false + +(* canRead is also a function ... *) +let canRead (f:filename) = + canWrite f (* writeable files are also readable *) + || f="demo/README" (* and so is this file *) + + +val read : f:filename{canRead f} -> string +let read f = FStar.IO.print_string ("Dummy read of file " ^ f ^ "\n"); f + +val write : f:filename{canWrite f} -> string -> unit +let write f s = FStar.IO.print_string ("Dummy write of string " ^ s ^ " to file " ^ f ^ "\n") + + +let passwd = "demo/password" +let readme = "demo/README" +let tmp = "demo/tempfile" + + +val staticChecking : unit -> unit +let staticChecking () = + let v1 = read tmp in + let v2 = read readme in + (* let v3 = read passwd in -- invalid read, fails type-checking *) + write tmp "hello!" + (* ; write passwd "junk" -- invalid write , fails type-checking *) + + +exception InvalidRead +val checkedRead : filename -> string +let checkedRead f = + if canRead f then read f else raise InvalidRead + + +assume val checkedWrite : filename -> string -> unit + +// solution here +// +// + + +let dynamicChecking () = + let v1 = checkedRead tmp in + let v2 = checkedRead readme in + let v3 = checkedRead passwd in (* this raises exception *) + checkedWrite tmp "hello!"; + checkedWrite passwd "junk" (* this raises exception *) + +let main = staticChecking (); dynamicChecking () From e9269e57a4e39cee6b8397e6e143a4026c2dbc71 Mon Sep 17 00:00:00 2001 From: A L Manning Date: Wed, 14 Sep 2016 17:05:16 -0400 Subject: [PATCH 082/410] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ce171a46..0ee83c60 100644 --- a/package.json +++ b/package.json @@ -273,7 +273,7 @@ { "name": "Nikita Gryzlov", "email": "nixel2007@gmail.com" - } + }, { "name": "A Manning", "email": "449a6a9b@opayq.com" From 676010ce3d1e42f154b1736444eb0e114c313d35 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 15 Sep 2016 10:00:59 +0300 Subject: [PATCH 083/410] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1156e1be..8a1b59d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 3.9.1 +## 3.9.1 (Unreleased) * Support "File Based" run for `F*` From 4f5126003793184bed63529c93ce0ff5a41deb4c Mon Sep 17 00:00:00 2001 From: idleberg Date: Thu, 15 Sep 2016 10:17:09 +0200 Subject: [PATCH 084/410] add support for Oz --- README.md | 1 + lib/grammars.coffee | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index d221aba6..cc928d49 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Currently supported grammars are: | Objective-C | Yes | | Only available on OSX (`xcrun clang++`) | | OCaml | Yes | | | | Octave | Yes | Yes | | +| [Oz](https://mozart.github.io/) | Yes | Yes | | | Pandoc Markdown | Yes | | Requires the panzer pandoc wrapper https://github.com/msprev/panzer and the pandoc-flavored-markdown language package in Atom https://atom.io/packages/language-pfm | | Perl | Yes | Yes | | | Perl 6 | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index eb937196..e4f336ff 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -556,6 +556,17 @@ module.exports = command: "octave" args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), context.filepath] + Oz: + "Selection Based": + command: "ozc" + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + ['-c', tmpFile] + "File Based": + command: "ozc" + args: (context) -> ['-c', context.filepath] + 'Pandoc Markdown': "File Based": command: "panzer" From b3a102460b79da753c8d4b41829aa9564896a114 Mon Sep 17 00:00:00 2001 From: Oliver Hoffmann Date: Thu, 22 Sep 2016 14:44:43 +0200 Subject: [PATCH 085/410] Fix output dir parameter for tsc. The --out parameter works with module type "amd" and "system" only. --- lib/grammars.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 5ab6b666..dfc205b7 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -812,8 +812,8 @@ module.exports = code = context.getCode(true) tmpFile = GrammarUtils.createTempFileWithCode(code, ".ts") jsFile = tmpFile.replace /\.ts$/, ".js" - args = ['-c', "tsc --out '#{jsFile}' '#{tmpFile}' && node '#{jsFile}'"] + args = ['-c', "tsc --outDir '#{jsFile}' '#{tmpFile}' && node '#{jsFile}'"] return args "File Based": command: "bash" - args: (context) -> ['-c', "tsc '#{context.filepath}' --out /tmp/js.out && node /tmp/js.out"] + args: (context) -> ['-c', "tsc '#{context.filepath}' --outDir /tmp/js.out && node /tmp/js.out"] From 81097fb00baab51262273943c99a40aae5a39c38 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 22 Sep 2016 16:17:41 +0300 Subject: [PATCH 086/410] Add support for MIPS. Fix #1070 --- README.md | 1 + lib/grammars.coffee | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 135e7178..7479b575 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ Currently supported grammars are: | Lua (WoW) | Yes | Yes | | | Makefile | Yes | Yes | | | [MATLAB](http://mathworks.com/products/matlab) | Yes | Yes | | +| MIPS | Yes | | Requires the path of `spim` in your system environment variables | | MongoDB | Yes | Yes | | | MoonScript | Yes | Yes | | | [NCL](http://ncl.ucar.edu) | Yes | Yes | Scripts must end with `exit` command for file based runs | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index bea2b5bc..2fc5d1e5 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -482,6 +482,11 @@ module.exports = command: "matlab" args: (context) -> ['-nodesktop','-nosplash','-r',"try run('" + context.filepath + "');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] + 'MIPS Assembler': + "File Based": + command: "spim" + args: (context) -> [context.filepath] + MoonScript: "Selection Based": command: "moon" From be8dd87ece81dcd7e1adeb8d3343641d0ea75dec Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 22 Sep 2016 16:30:08 +0300 Subject: [PATCH 087/410] Add missed readme entries --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7479b575..213e275d 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ Currently supported grammars are: | Elixir | Yes | Yes | | | Erlang | | Yes | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | | F# | Yes | | | +| F* | Yes | | | | Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | | Forth (via GForth) | Yes | | | | Fortran (via gfortran) | Yes | | @@ -86,6 +87,7 @@ Currently supported grammars are: | R | Yes | Yes | | | Racket | Yes | Yes | | | [RANT](https://github.com/TheBerkin/Rant) | Yes | Yes | | +| Reason | Yes | Yes | | | RSpec | Yes | Yes | | | Ruby | Yes | Yes | | | Ruby on Rails | Yes | Yes | | From ae1306232935ba715852b6c9b5596a49d12caca5 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 22 Sep 2016 16:35:19 +0300 Subject: [PATCH 088/410] Changelog for 3.10.0 --- CHANGELOG.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a1b59d7..e9f72041 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ -## 3.9.1 (Unreleased) - -* Support "File Based" run for `F*` +## 3.10.0 + +* Support for `BuckleScript` +* Support for `F*` +* Support for `Hy` +* Support for `MIPS` +* Support for `Oz` +* Ignore first line check in scripts on Windows +* Fix the `{FILE_ACTIVE_NAME_BASE}}` doesn't work +* Fix run `tsc` on non amd or system module types ## 3.9.0 From 787095cdcda7302d85a3e55302482236b267a2f5 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 22 Sep 2016 16:35:41 +0300 Subject: [PATCH 089/410] Prepare 3.10.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0ee83c60..5680f997 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.9.0", + "version": "3.10.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From e641d07def8d17c536e1473a5bc7026af7686ab3 Mon Sep 17 00:00:00 2001 From: Oliver Hoffmann Date: Thu, 22 Sep 2016 16:19:22 +0200 Subject: [PATCH 090/410] Change output parameter from outDir to outFile related to b3a102460b79da753c8d4b41829aa9564896a114 --- lib/grammars.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 2fc5d1e5..be9e3a9e 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -829,8 +829,8 @@ module.exports = code = context.getCode(true) tmpFile = GrammarUtils.createTempFileWithCode(code, ".ts") jsFile = tmpFile.replace /\.ts$/, ".js" - args = ['-c', "tsc --outDir '#{jsFile}' '#{tmpFile}' && node '#{jsFile}'"] + args = ['-c', "tsc --outFile '#{jsFile}' '#{tmpFile}' && node '#{jsFile}'"] return args "File Based": command: "bash" - args: (context) -> ['-c', "tsc '#{context.filepath}' --outDir /tmp/js.out && node /tmp/js.out"] + args: (context) -> ['-c', "tsc '#{context.filepath}' --outFile /tmp/js.out && node /tmp/js.out"] From 9a0c7364fc25dcd369ecba8b15ce65d5b784afe0 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 22 Sep 2016 17:29:29 +0300 Subject: [PATCH 091/410] Changelog for 3.10.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9f72041..243cfde0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.10.1 + +* Fix `tsc` run + ## 3.10.0 * Support for `BuckleScript` From 650730620ea121148924e2d6ccb8e0c5331f6b83 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 22 Sep 2016 17:29:38 +0300 Subject: [PATCH 092/410] Prepare 3.10.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5680f997..a3306d46 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.10.0", + "version": "3.10.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 4008d535ecf8211289af17ae8baea352c2ded8fc Mon Sep 17 00:00:00 2001 From: Elijah Rippeth Date: Mon, 26 Sep 2016 19:23:16 -0400 Subject: [PATCH 093/410] Change `clang++` to `g++` because OS X already links them. However, if the developer prefers to use `g++` on Darwin (i.e., explicitly linking `g++` to gcc), he shouldn't be forced to use clang.. --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index be9e3a9e..70c94ac7 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -128,7 +128,7 @@ module.exports = if GrammarUtils.OperatingSystem.isDarwin() "File Based": command: "bash" - args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + args: (context) -> ['-c', "xcrun g++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] else if GrammarUtils.OperatingSystem.isLinux() "Selection Based": command: "bash" From 13c68f60d0e08675f7114f2facedb7718a31fc70 Mon Sep 17 00:00:00 2001 From: Elijah Rippeth Date: Mon, 26 Sep 2016 19:25:43 -0400 Subject: [PATCH 094/410] replace C++11 extensions in Darwin to use C++14 standard. --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 70c94ac7..4b73f230 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -128,7 +128,7 @@ module.exports = if GrammarUtils.OperatingSystem.isDarwin() "File Based": command: "bash" - args: (context) -> ['-c', "xcrun g++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + args: (context) -> ['-c', "xcrun g++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] else if GrammarUtils.OperatingSystem.isLinux() "Selection Based": command: "bash" From 41060c89b791153a2754f888be156d200745a3c8 Mon Sep 17 00:00:00 2001 From: Elijah Rippeth Date: Mon, 26 Sep 2016 19:27:25 -0400 Subject: [PATCH 095/410] add to all other platforms' compilation string. --- lib/grammars.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 4b73f230..1fd18e3a 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -135,14 +135,14 @@ module.exports = args: (context) -> code = context.getCode(true) tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") - ["-c", "g++ -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] + ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] "File Based": command: "bash" - args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().split(".").slice -1 >= '14399' "File Based": command: "bash" - args: (context) -> ["-c", "g++ -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] + args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] Clojure: "Selection Based": From 1ffdb42c8d91591c4bd8fbbbf70d49e01755a90d Mon Sep 17 00:00:00 2001 From: Elijah Rippeth Date: Mon, 26 Sep 2016 19:43:25 -0400 Subject: [PATCH 096/410] fix g++/clang++ issue. Humbug. --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 1fd18e3a..b8bff092 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -128,7 +128,7 @@ module.exports = if GrammarUtils.OperatingSystem.isDarwin() "File Based": command: "bash" - args: (context) -> ['-c', "xcrun g++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] else if GrammarUtils.OperatingSystem.isLinux() "Selection Based": command: "bash" From f97186545b2e235b057d7d222948361d57be2f3c Mon Sep 17 00:00:00 2001 From: A L Manning Date: Tue, 27 Sep 2016 14:15:40 -0400 Subject: [PATCH 097/410] Changed F* to not use interactive mode --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index be9e3a9e..b68ff837 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -240,7 +240,7 @@ module.exports = 'F*': "File Based": command: "fstar" - args: (context) -> ['--fsi', context.filepath] + args: (context) -> [context.filepath] Forth: "File Based": From cfe803542e12561ff488925b60b025b0ae45322a Mon Sep 17 00:00:00 2001 From: Elijah Rippeth Date: Tue, 27 Sep 2016 16:13:10 -0400 Subject: [PATCH 098/410] update requirements for C++ in README. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 213e275d..951d9a3d 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Currently supported grammars are: | C | Yes | Yes | Only available on OSX (`xcrun clang`) and Linux (`cc`) | | C# | Yes | Yes | Requires the path of 'csc.exe' in your system environment variables | | C# Script | Yes | Yes | | -| C++ | Yes | Yes | Only available on OSX (`xcurn clang++`) and Linux (`g++`) | +| C++ | Yes | Yes | Requires `-std=c++14`. Only available on OSX (`xcrun clang++`) and Linux (`g++`) | | Clojure | Yes | Yes | Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed | | CoffeeScript | Yes | Yes | | | CoffeeScript (Literate) | Yes | Yes | Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks | From bbde0fc55b99370f71f224bf44bb32a3d0357a08 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 30 Sep 2016 16:03:27 +0200 Subject: [PATCH 099/410] Use ts-node to run typescript files. --- README.md | 2 +- lib/grammars.coffee | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 951d9a3d..d2dbdd49 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ Currently supported grammars are: | Stata | Yes | Yes | Runs through Stata. Note stata needs to be added to your system PATH for this to work. `Mac directions `_ . | | Swift | Yes | | | | Tcl | Yes | Yes | | -| TypeScript | Yes | Yes | | +| TypeScript | Yes | Yes | Requires `ts-node` https://github.com/TypeStrong/ts-node | | Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | **NOTE**: Some grammars may require you to install [a custom language package](https://atom.io/search?utf8=✓&q=language). diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 1b927570..2b96b0dd 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -824,13 +824,8 @@ module.exports = TypeScript: "Selection Based": - command: "bash" - args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".ts") - jsFile = tmpFile.replace /\.ts$/, ".js" - args = ['-c', "tsc --outFile '#{jsFile}' '#{tmpFile}' && node '#{jsFile}'"] - return args + command: "ts-node" + args: (context) -> ['-e', context.getCode()] "File Based": - command: "bash" - args: (context) -> ['-c', "tsc '#{context.filepath}' --outFile /tmp/js.out && node /tmp/js.out"] + command: "ts-node" + args: (context) -> [context.filepath] From 9f5ba91ad2ddaa593aab8b2d0a98aa135372e17e Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Sat, 15 Oct 2016 19:22:32 +0100 Subject: [PATCH 100/410] support for Java packages --- lib/grammars.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 2b96b0dd..49392c7d 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -342,11 +342,12 @@ module.exports = command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" args: (context) -> className = context.filename.replace /\.java$/, "" + classPackage = (context.filepath.replace atom.project.rootDirectories[0].path + "/", "").replace context.filename, "" args = [] if GrammarUtils.OperatingSystem.isWindows() args = ["/c javac -Xlint #{context.filename} && java #{className}"] else - args = ['-c', "javac -d /tmp '#{context.filepath}' && java -cp /tmp #{className}"] + args = ["-c", "javac -cp . -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackage}#{className}"] return args JavaScript: From cc3f2a7c525a374703b278feb4281ea18986d0c9 Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Sat, 15 Oct 2016 22:20:14 +0100 Subject: [PATCH 101/410] allow multiple projects --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 49392c7d..ac6a6951 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -342,7 +342,7 @@ module.exports = command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" args: (context) -> className = context.filename.replace /\.java$/, "" - classPackage = (context.filepath.replace atom.project.rootDirectories[0].path + "/", "").replace context.filename, "" + classPackage = (context.filepath.replace (GrammarUtils.Nim.projectDir context.filepath) + "/", "").replace context.filename, "" args = [] if GrammarUtils.OperatingSystem.isWindows() args = ["/c javac -Xlint #{context.filename} && java #{className}"] From b7a0a8c326f6a732a4e33e6399a33ca046d77069 Mon Sep 17 00:00:00 2001 From: Felix Date: Mon, 17 Oct 2016 14:01:45 +0200 Subject: [PATCH 102/410] Implemented dummy runner for generic SQL and added a short how-to to the SQL example. --- examples/hello.sql | 12 ++++++++++++ lib/grammars.coffee | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/examples/hello.sql b/examples/hello.sql index ea150c8b..bcb050cb 100644 --- a/examples/hello.sql +++ b/examples/hello.sql @@ -1,3 +1,15 @@ +-- To configure a SQL runner, use the following steps: +-- +-- 1. Run "Script: Run Options" in Atom. +-- 2. Create a run profile that contains the following lines +-- For PostgreSQL: +-- Command: psql +-- Command Arguments: -h host -p port -d database -U user -q -f {FILE_ACTIVE} +-- For MySQL: +-- Command: mysql +-- Command Arguments: --host=host --user=user --password=password database < {FILE_ACTIVE} +-- 3. Use "Script: Run With Profile" and select this profile to run the active SQL file. + -- "Hello, world!" from SQL (PostgreSQL) SELECT string_agg(w, ' ') AS welcome diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 2b96b0dd..f1a5d39e 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -785,6 +785,14 @@ module.exports = command: "fish" args: (context) -> [context.filepath] + "SQL": + "Selection Based": + command: "echo" + args: (context) -> ['SQL requires setting \'Script: Run Options\' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information.'] + "File Based": + command: "echo" + args: (context) -> ['SQL requires setting \'Script: Run Options\' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information.'] + "SQL (PostgreSQL)": "Selection Based": command: "psql" From 8175e7262b5d14826b1727fcdf7421da73f5b396 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 17 Oct 2016 15:32:52 +0300 Subject: [PATCH 103/410] Update grammars.coffee --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 9d123418..421a0db3 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -792,7 +792,7 @@ module.exports = args: (context) -> ['SQL requires setting \'Script: Run Options\' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information.'] "File Based": command: "echo" - args: (context) -> ['SQL requires setting \'Script: Run Options\' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information.'] + args: (context) -> ['SQL requires setting \'Script: Run Options\' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information.'] "SQL (PostgreSQL)": "Selection Based": From cfeb6dc2e78b5b4ccc1f7492261b87d477d3c736 Mon Sep 17 00:00:00 2001 From: Christoph Wedenig Date: Tue, 18 Oct 2016 08:29:17 +0200 Subject: [PATCH 104/410] Fixed MIPS execution using correct spim arguments --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 421a0db3..014900de 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -486,7 +486,7 @@ module.exports = 'MIPS Assembler': "File Based": command: "spim" - args: (context) -> [context.filepath] + args: (context) -> ['-f', context.filepath] MoonScript: "Selection Based": From 0303d072ecf4820f0831cc23f3a7643fbd9f6188 Mon Sep 17 00:00:00 2001 From: Christoph Wedenig Date: Tue, 18 Oct 2016 08:33:35 +0200 Subject: [PATCH 105/410] Added MIPS Hello World example --- examples/hello.asm | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 examples/hello.asm diff --git a/examples/hello.asm b/examples/hello.asm new file mode 100644 index 00000000..85aabc65 --- /dev/null +++ b/examples/hello.asm @@ -0,0 +1,12 @@ +.data +hello: .asciiz "Hello world!" + +.text +main: +li $v0, 4 # system call code for printing string = 4 +la $a0, hello # load address of string to be printed into $a0 +syscall + +end: +li $v0, 10 # terminate program +syscall From c522c7f7306c850902db5b9539dc52bd1c24e199 Mon Sep 17 00:00:00 2001 From: Michael Wu Date: Wed, 19 Oct 2016 01:10:27 -0400 Subject: [PATCH 106/410] Add Ren'Py file support Launches Ren'Py on project of current file. --- lib/grammars.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 014900de..0a570417 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -696,6 +696,11 @@ module.exports = else args = ['-c', "rebuild '#{progname}.native' && '#{progname}.native'"] return args + + "Ren'Py": + "File Based": + command: "renpy" + args: (context) -> [context.filepath.substr(0, context.filepath.lastIndexOf("/"))] RSpec: "Selection Based": From cf5da443477b64174eb88036ccfc6585db28d910 Mon Sep 17 00:00:00 2001 From: Michael Wu Date: Wed, 19 Oct 2016 01:16:41 -0400 Subject: [PATCH 107/410] Fix for game root launch --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 0a570417..55f035da 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -700,7 +700,7 @@ module.exports = "Ren'Py": "File Based": command: "renpy" - args: (context) -> [context.filepath.substr(0, context.filepath.lastIndexOf("/"))] + args: (context) -> [context.filepath.substr(0, context.filepath.lastIndexOf("game"))] RSpec: "Selection Based": From 154287b23385aac5bb427aa2e722427d7c8f03b1 Mon Sep 17 00:00:00 2001 From: Michael Wu Date: Wed, 19 Oct 2016 13:11:48 -0400 Subject: [PATCH 108/410] index search update to properly find project root --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 55f035da..8fa1a2ff 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -700,7 +700,7 @@ module.exports = "Ren'Py": "File Based": command: "renpy" - args: (context) -> [context.filepath.substr(0, context.filepath.lastIndexOf("game"))] + args: (context) -> [context.filepath.substr(0, context.filepath.indexOf("/game"))] RSpec: "Selection Based": From 251d1ee7a47a91515814cfecaf96c08afe241ee1 Mon Sep 17 00:00:00 2001 From: Michael Wu Date: Wed, 19 Oct 2016 13:31:34 -0400 Subject: [PATCH 109/410] Update readme for Ren'Py support --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2dbdd49..fd4e36c0 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ Currently supported grammars are: | Racket | Yes | Yes | | | [RANT](https://github.com/TheBerkin/Rant) | Yes | Yes | | | Reason | Yes | Yes | | +| Ren'Py | Yes | No | Requires `renpy` to be in path. Runs project at root of current file.| | RSpec | Yes | Yes | | | Ruby | Yes | Yes | | | Ruby on Rails | Yes | Yes | | From 417b9e9422cc02f0d202de1e8b3b3ffc9ac821af Mon Sep 17 00:00:00 2001 From: Michael Wu Date: Wed, 19 Oct 2016 13:34:06 -0400 Subject: [PATCH 110/410] Revert back to lastIndexOf Likelihood of "game" in path prior to Ren'Py project root greater than having a second "game" folder inside the Ren'Py project. --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8fa1a2ff..da1d7cbb 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -700,7 +700,7 @@ module.exports = "Ren'Py": "File Based": command: "renpy" - args: (context) -> [context.filepath.substr(0, context.filepath.indexOf("/game"))] + args: (context) -> [context.filepath.substr(0, context.filepath.lastIndexOf("/game"))] RSpec: "Selection Based": From 5305896987742bfee4fc5cd607e1a20ee1f2d02e Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Mon, 24 Oct 2016 16:06:52 +0100 Subject: [PATCH 111/410] Modularization and correct retrieval of java class --- lib/grammar-utils.coffee | 5 +++++ lib/grammar-utils/java.coffee | 38 +++++++++++++++++++++++++++++++++++ lib/grammars.coffee | 9 +++++---- 3 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 lib/grammar-utils/java.coffee diff --git a/lib/grammar-utils.coffee b/lib/grammar-utils.coffee index afbe6a22..63ddacda 100644 --- a/lib/grammar-utils.coffee +++ b/lib/grammar-utils.coffee @@ -38,6 +38,11 @@ module.exports = catch error throw ("Error while deleting temporary files (#{error})") + # Public: Get the Java helper object + # + # Returns an {Object} which assists in preparing java + javac statements + Java: require './grammar-utils/java' + # Public: Get the Lisp helper object # # Returns an {Object} which assists in splitting Lisp statements. diff --git a/lib/grammar-utils/java.coffee b/lib/grammar-utils/java.coffee new file mode 100644 index 00000000..2d1d55e6 --- /dev/null +++ b/lib/grammar-utils/java.coffee @@ -0,0 +1,38 @@ +# Java script preparation functions +os = require 'os' +path = require 'path' + +module.exports = + # Public: Get atom temp file directory + # + # Returns {String} containing atom temp file directory + tempFilesDir: path.join(os.tmpdir()) + + # Public: Get class name of file in context + # + # * `filePath` {String} containing file path + # + # Returns {String} containing class name of file + getClassName: (context) -> + context.filename.replace /\.java$/, "" + + # Public: Get project path of context + # + # * `context` {Object} containing current context + # + # Returns {String} containing the matching project path + getProjectPath: (context) -> + projectPaths = atom.project.getPaths() + for projectPath in projectPaths + if context.filepath.includes(projectPath) + projectPath + + # Public: Get package of file in context + # + # * `context` {Object} containing current context + # + # Returns {String} containing class of contextual file + getClassPackage: (context) -> + projectPath = module.exports.getProjectPath context + projectRemoved = (context.filepath.replace projectPath + "/", "") + projectRemoved.replace "/" + context.filename, "" diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 014900de..bc2970b7 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -341,13 +341,14 @@ module.exports = "File Based": command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" args: (context) -> - className = context.filename.replace /\.java$/, "" - classPackage = (context.filepath.replace (GrammarUtils.Nim.projectDir context.filepath) + "/", "").replace context.filename, "" - args = [] + tmpFolder = GrammarUtils.Java.tempFilesDir + className = GrammarUtils.Java.getClassName context + classPackage = GrammarUtils.Java.getClassPackage context + if GrammarUtils.OperatingSystem.isWindows() args = ["/c javac -Xlint #{context.filename} && java #{className}"] else - args = ["-c", "javac -cp . -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackage}#{className}"] + args = ["-c", "javac -cp . -d '#{tmpFolder}' '#{context.filepath}' && java -cp /tmp #{classPackage}.#{className}"] return args JavaScript: From 73b2c40d7855d3c14091b6f3e8e46cf14a1bcb8d Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 24 Oct 2016 21:10:00 +0300 Subject: [PATCH 112/410] Changelog 3.11.0 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 243cfde0..648b4623 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## 3.11.0 + +* Add ability to set how `current working directory` is calculated. See the package settings! +* Support for `Ren'py` +* Add a dummy runner for generic `SQL` +* Support `c++14` standard for `c++` +* Support `java` packages +* Use `ts-node` as `typescript` runner +* Tweek `F*` run +* Fix `MIPS` file-based run + ## 3.10.1 * Fix `tsc` run From d611912cca7c7a99537bf0ebfa185e9aa0b2e54b Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 24 Oct 2016 21:10:16 +0300 Subject: [PATCH 113/410] Prepare 3.11.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a3306d46..1b1e1e4b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.10.1", + "version": "3.11.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From e852a1b740f820a2d7e44bcf8bb0506a427b8acb Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Mon, 24 Oct 2016 21:12:42 +0300 Subject: [PATCH 114/410] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 648b4623..a0a467d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ * Support `c++14` standard for `c++` * Support `java` packages * Use `ts-node` as `typescript` runner -* Tweek `F*` run +* Tune `F*` run * Fix `MIPS` file-based run ## 3.10.1 From d152cab961005895fc55ca1321adef7439a00cc5 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 25 Oct 2016 16:56:50 +0300 Subject: [PATCH 115/410] Revert "Merge pull request #1107 from andyrichardson/java-package" This reverts commit 0886816c274d85e0b896c2b2f28348d427ea5881, reversing changes made to aac36114d45029c6a3ccbced3dbbce39c71f6e14. --- lib/grammars.coffee | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 2b96c1bc..d54ee15d 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -341,14 +341,12 @@ module.exports = "File Based": command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" args: (context) -> - tmpFolder = GrammarUtils.Java.tempFilesDir - className = GrammarUtils.Java.getClassName context - classPackage = GrammarUtils.Java.getClassPackage context - + className = context.filename.replace /\.java$/, "" + args = [] if GrammarUtils.OperatingSystem.isWindows() args = ["/c javac -Xlint #{context.filename} && java #{className}"] else - args = ["-c", "javac -cp . -d '#{tmpFolder}' '#{context.filepath}' && java -cp /tmp #{classPackage}.#{className}"] + args = ['-c', "javac -d /tmp '#{context.filepath}' && java -cp /tmp #{className}"] return args JavaScript: @@ -697,7 +695,7 @@ module.exports = else args = ['-c', "rebuild '#{progname}.native' && '#{progname}.native'"] return args - + "Ren'Py": "File Based": command: "renpy" From bde76def2eb2308c37a2742887d32b0022d2a6c0 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 25 Oct 2016 16:58:38 +0300 Subject: [PATCH 116/410] Changelog 3.11.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0a467d7..6f33a997 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.11.1 + +* Revert `Support java packages` + ## 3.11.0 * Add ability to set how `current working directory` is calculated. See the package settings! From 19e193a6006af024df9453859a85858ad55da9b5 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 25 Oct 2016 17:00:31 +0300 Subject: [PATCH 117/410] Prepare 3.11.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b1e1e4b..308a828b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.11.0", + "version": "3.11.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 31cdf5fc9c5ac358472c1b161fd3af4b222f4b27 Mon Sep 17 00:00:00 2001 From: Jim Lawhorn Date: Wed, 16 Nov 2016 22:33:33 -0600 Subject: [PATCH 118/410] Added support for VBScript --- README.md | 1 + examples/hello.vbs | 5 +++++ lib/grammars.coffee | 11 +++++++++++ 3 files changed, 17 insertions(+) create mode 100644 examples/hello.vbs diff --git a/README.md b/README.md index fd4e36c0..7531c12c 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ Currently supported grammars are: | Swift | Yes | | | | Tcl | Yes | Yes | | | TypeScript | Yes | Yes | Requires `ts-node` https://github.com/TypeStrong/ts-node | +| VBScript | Yes | Yes | | | Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | **NOTE**: Some grammars may require you to install [a custom language package](https://atom.io/search?utf8=✓&q=language). diff --git a/examples/hello.vbs b/examples/hello.vbs new file mode 100644 index 00000000..09ccca1d --- /dev/null +++ b/examples/hello.vbs @@ -0,0 +1,5 @@ +Dim strInstructions +strInstructions = "Hello World!" + +Wscript.Echo strInstructions +Wscript.Quit diff --git a/lib/grammars.coffee b/lib/grammars.coffee index d54ee15d..58973ba8 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -842,3 +842,14 @@ module.exports = "File Based": command: "ts-node" args: (context) -> [context.filepath] + + VBScript: + 'Selection Based': + command: 'cscript' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, ".vbs") + ['//NOLOGO',tmpFile] + 'File Based': + command: 'cscript' + args: (context) -> ['//NOLOGO',context.filepath] From 66e2674671cfb027b07f0f73869be1de28159874 Mon Sep 17 00:00:00 2001 From: Jim Lawhorn Date: Thu, 17 Nov 2016 21:21:39 -0600 Subject: [PATCH 119/410] Fixed indentation issue in vbs config --- lib/grammars.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 58973ba8..51963b8a 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -847,9 +847,9 @@ module.exports = 'Selection Based': command: 'cscript' args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, ".vbs") - ['//NOLOGO',tmpFile] + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, ".vbs") + ['//NOLOGO',tmpFile] 'File Based': command: 'cscript' args: (context) -> ['//NOLOGO',context.filepath] From 8b2c5d304a69eda3a422c9523f0b15a6a95b8a17 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Sat, 26 Nov 2016 18:12:07 +0000 Subject: [PATCH 120/410] Update CoffeeScript to latest version --- package.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/package.json b/package.json index 308a828b..88abdedc 100644 --- a/package.json +++ b/package.json @@ -90,10 +90,6 @@ "name": "Daniel Bayley", "email": "daniel.bayley@me.com" }, - { - "name": "Dan", - "email": "daniel.bayley@me.com" - }, { "name": "rgbkrk", "email": "rgbkrk@gmail.com" @@ -338,7 +334,7 @@ "atom-message-panel": "1.2.4" }, "devDependencies": { - "coffee-script": "^1.10.0", + "coffee-script": "^1.11.1", "coffeelint": "^1.14.2", "grunt": "~0.4.5" }, From 0a08da7c884fd683c726ce1402fb663780421059 Mon Sep 17 00:00:00 2001 From: "bruno@mpbd2" Date: Thu, 1 Dec 2016 11:55:30 +0000 Subject: [PATCH 121/410] Added support to LAMMPS script --- README.md | 1 + examples/hello.lmp | 3 +++ lib/grammars.coffee | 5 +++++ package.json | 7 ++++++- 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 examples/hello.lmp diff --git a/README.md b/README.md index 7531c12c..cbd2a132 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ Currently supported grammars are: | Jolie | Yes | | | | Julia | Yes | Yes | | | Kotlin | Yes | Yes | | +| LAMMPS | Yes | | Only available on Linux and macOS. Requires 'lammps' to be in path. | | LaTeX (via latexmk) | Yes | | | | LilyPond | Yes | | | | Lisp (via SBCL) | Yes | Yes | Selection based runs are limited to single line | diff --git a/examples/hello.lmp b/examples/hello.lmp new file mode 100644 index 00000000..8b3525a5 --- /dev/null +++ b/examples/hello.lmp @@ -0,0 +1,3 @@ +variable w string World + +print "Hello $w!" diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 51963b8a..6bdb7f77 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -394,6 +394,11 @@ module.exports = args = ['-c', "kotlinc #{context.filepath} -include-runtime -d /tmp/#{jarName} && java -jar /tmp/#{jarName}"] return args + LAMMPS: + "File Based": + command: "lammps" + args: (context) -> ['-log', 'none', '-in', context.filepath] + LaTeX: "File Based": command: "latexmk" diff --git a/package.json b/package.json index 88abdedc..897476a0 100644 --- a/package.json +++ b/package.json @@ -273,6 +273,10 @@ { "name": "A Manning", "email": "449a6a9b@opayq.com" + }, + { + "name": "Bruno Durán", + "email": "bruno.duran.rey@gmail.com" } ], "repository": "https://github.com/rgbkrk/atom-script", @@ -311,7 +315,8 @@ "Swift", "run", "Applescript", - "code" + "code", + "LAMMPS" ], "license": "Apache-2.0", "engines": { From 72a01ea5a9a72700d9f81ee47356e07987aafa80 Mon Sep 17 00:00:00 2001 From: "bruno@mpbd2" Date: Thu, 1 Dec 2016 16:15:50 +0000 Subject: [PATCH 122/410] Fixed identation, added isDarwin/isLinux checks --- lib/grammars.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 6bdb7f77..2c540128 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -395,7 +395,8 @@ module.exports = return args LAMMPS: - "File Based": + if GrammarUtils.OperatingSystem.isDarwin() || GrammarUtils.OperatingSystem.isLinux() + "File Based": command: "lammps" args: (context) -> ['-log', 'none', '-in', context.filepath] From 5ba9be879ae84e66555649c37a8abc8ae1e0b70f Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Sun, 4 Dec 2016 23:19:23 +0100 Subject: [PATCH 123/410] Spec: Fix path to fixtures --- spec/runner-spec.coffee | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/runner-spec.coffee b/spec/runner-spec.coffee index ad73f07e..14816155 100644 --- a/spec/runner-spec.coffee +++ b/spec/runner-spec.coffee @@ -17,7 +17,7 @@ describe 'Runner', -> @output = null @runner.onDidWriteToStdout (output) => @output = output - @runner.run(@command, ['./outputTest.js'], {}) + @runner.run(@command, ['./spec/fixtures/outputTest.js'], {}) waitsFor => @output != null @@ -31,7 +31,7 @@ describe 'Runner', -> @output = null @runner.onDidWriteToStdout (output) => @output = output - @runner.run(@command, ['./ioTest.js'], {}, 'hello') + @runner.run(@command, ['./spec/fixtures/ioTest.js'], {}, 'hello') waitsFor => @output != null @@ -45,7 +45,7 @@ describe 'Runner', -> @exited = false @runner.onDidExit => @exited = true - @runner.run(@command, ['./outputTest.js'], {}) + @runner.run(@command, ['./spec/fixtures/outputTest.js'], {}) waitsFor => @exited @@ -56,7 +56,7 @@ describe 'Runner', -> @failedEvent = null @runner.onDidWriteToStderr (event) => @failedEvent = event - @runner.run(@command, ['./throw.js'], {}) + @runner.run(@command, ['./spec/fixtures/throw.js'], {}) waitsFor => @failedEvent @@ -70,7 +70,7 @@ describe 'Runner', -> @output = null @runner.onDidWriteToStdout (output) => @output = output - @runner.run(@command, ['./stdinEndTest.js'], {}, 'unused input') + @runner.run(@command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input') waitsFor => @output != null From 02a4bbd3f2a6bb8a9c00a6b466cbf2715a8e9560 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 00:04:39 +0100 Subject: [PATCH 124/410] Rename files to keep git history --- lib/{code-context-builder.coffee => code-context-builder.js} | 0 lib/{code-context.coffee => code-context.js} | 0 lib/{command-context.coffee => command-context.js} | 0 lib/{grammar-utils.coffee => grammar-utils.js} | 0 lib/grammar-utils/{R.coffee => R.js} | 0 .../{coffee-script-compiler.coffee => coffee-script-compiler.js} | 0 lib/grammar-utils/{d.coffee => d.js} | 0 lib/grammar-utils/{java.coffee => java.js} | 0 lib/grammar-utils/{lisp.coffee => lisp.js} | 0 lib/grammar-utils/{matlab.coffee => matlab.js} | 0 lib/grammar-utils/{nim.coffee => nim.js} | 0 .../{operating-system.coffee => operating-system.js} | 0 lib/grammar-utils/{perl.coffee => perl.js} | 0 lib/grammar-utils/{php.coffee => php.js} | 0 lib/{grammars.coffee => grammars.js} | 0 lib/{header-view.coffee => header-view.js} | 0 lib/{link-paths.coffee => link-paths.js} | 0 lib/{runner.coffee => runner.js} | 0 lib/{runtime.coffee => runtime.js} | 0 lib/{script-input-view.coffee => script-input-view.js} | 0 lib/{script-options-view.coffee => script-options-view.js} | 0 lib/{script-options.coffee => script-options.js} | 0 ...{script-profile-run-view.coffee => script-profile-run-view.js} | 0 lib/{script-view.coffee => script-view.js} | 0 lib/{script.coffee => script.js} | 0 lib/{view-runtime-observer.coffee => view-runtime-observer.js} | 0 26 files changed, 0 insertions(+), 0 deletions(-) rename lib/{code-context-builder.coffee => code-context-builder.js} (100%) rename lib/{code-context.coffee => code-context.js} (100%) rename lib/{command-context.coffee => command-context.js} (100%) rename lib/{grammar-utils.coffee => grammar-utils.js} (100%) rename lib/grammar-utils/{R.coffee => R.js} (100%) rename lib/grammar-utils/{coffee-script-compiler.coffee => coffee-script-compiler.js} (100%) rename lib/grammar-utils/{d.coffee => d.js} (100%) rename lib/grammar-utils/{java.coffee => java.js} (100%) rename lib/grammar-utils/{lisp.coffee => lisp.js} (100%) rename lib/grammar-utils/{matlab.coffee => matlab.js} (100%) rename lib/grammar-utils/{nim.coffee => nim.js} (100%) rename lib/grammar-utils/{operating-system.coffee => operating-system.js} (100%) rename lib/grammar-utils/{perl.coffee => perl.js} (100%) rename lib/grammar-utils/{php.coffee => php.js} (100%) rename lib/{grammars.coffee => grammars.js} (100%) rename lib/{header-view.coffee => header-view.js} (100%) rename lib/{link-paths.coffee => link-paths.js} (100%) rename lib/{runner.coffee => runner.js} (100%) rename lib/{runtime.coffee => runtime.js} (100%) rename lib/{script-input-view.coffee => script-input-view.js} (100%) rename lib/{script-options-view.coffee => script-options-view.js} (100%) rename lib/{script-options.coffee => script-options.js} (100%) rename lib/{script-profile-run-view.coffee => script-profile-run-view.js} (100%) rename lib/{script-view.coffee => script-view.js} (100%) rename lib/{script.coffee => script.js} (100%) rename lib/{view-runtime-observer.coffee => view-runtime-observer.js} (100%) diff --git a/lib/code-context-builder.coffee b/lib/code-context-builder.js similarity index 100% rename from lib/code-context-builder.coffee rename to lib/code-context-builder.js diff --git a/lib/code-context.coffee b/lib/code-context.js similarity index 100% rename from lib/code-context.coffee rename to lib/code-context.js diff --git a/lib/command-context.coffee b/lib/command-context.js similarity index 100% rename from lib/command-context.coffee rename to lib/command-context.js diff --git a/lib/grammar-utils.coffee b/lib/grammar-utils.js similarity index 100% rename from lib/grammar-utils.coffee rename to lib/grammar-utils.js diff --git a/lib/grammar-utils/R.coffee b/lib/grammar-utils/R.js similarity index 100% rename from lib/grammar-utils/R.coffee rename to lib/grammar-utils/R.js diff --git a/lib/grammar-utils/coffee-script-compiler.coffee b/lib/grammar-utils/coffee-script-compiler.js similarity index 100% rename from lib/grammar-utils/coffee-script-compiler.coffee rename to lib/grammar-utils/coffee-script-compiler.js diff --git a/lib/grammar-utils/d.coffee b/lib/grammar-utils/d.js similarity index 100% rename from lib/grammar-utils/d.coffee rename to lib/grammar-utils/d.js diff --git a/lib/grammar-utils/java.coffee b/lib/grammar-utils/java.js similarity index 100% rename from lib/grammar-utils/java.coffee rename to lib/grammar-utils/java.js diff --git a/lib/grammar-utils/lisp.coffee b/lib/grammar-utils/lisp.js similarity index 100% rename from lib/grammar-utils/lisp.coffee rename to lib/grammar-utils/lisp.js diff --git a/lib/grammar-utils/matlab.coffee b/lib/grammar-utils/matlab.js similarity index 100% rename from lib/grammar-utils/matlab.coffee rename to lib/grammar-utils/matlab.js diff --git a/lib/grammar-utils/nim.coffee b/lib/grammar-utils/nim.js similarity index 100% rename from lib/grammar-utils/nim.coffee rename to lib/grammar-utils/nim.js diff --git a/lib/grammar-utils/operating-system.coffee b/lib/grammar-utils/operating-system.js similarity index 100% rename from lib/grammar-utils/operating-system.coffee rename to lib/grammar-utils/operating-system.js diff --git a/lib/grammar-utils/perl.coffee b/lib/grammar-utils/perl.js similarity index 100% rename from lib/grammar-utils/perl.coffee rename to lib/grammar-utils/perl.js diff --git a/lib/grammar-utils/php.coffee b/lib/grammar-utils/php.js similarity index 100% rename from lib/grammar-utils/php.coffee rename to lib/grammar-utils/php.js diff --git a/lib/grammars.coffee b/lib/grammars.js similarity index 100% rename from lib/grammars.coffee rename to lib/grammars.js diff --git a/lib/header-view.coffee b/lib/header-view.js similarity index 100% rename from lib/header-view.coffee rename to lib/header-view.js diff --git a/lib/link-paths.coffee b/lib/link-paths.js similarity index 100% rename from lib/link-paths.coffee rename to lib/link-paths.js diff --git a/lib/runner.coffee b/lib/runner.js similarity index 100% rename from lib/runner.coffee rename to lib/runner.js diff --git a/lib/runtime.coffee b/lib/runtime.js similarity index 100% rename from lib/runtime.coffee rename to lib/runtime.js diff --git a/lib/script-input-view.coffee b/lib/script-input-view.js similarity index 100% rename from lib/script-input-view.coffee rename to lib/script-input-view.js diff --git a/lib/script-options-view.coffee b/lib/script-options-view.js similarity index 100% rename from lib/script-options-view.coffee rename to lib/script-options-view.js diff --git a/lib/script-options.coffee b/lib/script-options.js similarity index 100% rename from lib/script-options.coffee rename to lib/script-options.js diff --git a/lib/script-profile-run-view.coffee b/lib/script-profile-run-view.js similarity index 100% rename from lib/script-profile-run-view.coffee rename to lib/script-profile-run-view.js diff --git a/lib/script-view.coffee b/lib/script-view.js similarity index 100% rename from lib/script-view.coffee rename to lib/script-view.js diff --git a/lib/script.coffee b/lib/script.js similarity index 100% rename from lib/script.coffee rename to lib/script.js diff --git a/lib/view-runtime-observer.coffee b/lib/view-runtime-observer.js similarity index 100% rename from lib/view-runtime-observer.coffee rename to lib/view-runtime-observer.js From 9be12a63f82ab82a26959494b300b81a9038ef24 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 00:28:45 +0100 Subject: [PATCH 125/410] Convert to ES6 via decaffinate --- lib/code-context-builder.js | 222 ++++++----- lib/code-context.js | 136 ++++--- lib/command-context.js | 115 +++--- lib/grammar-utils.js | 186 ++++----- lib/grammar-utils/R.js | 21 +- lib/grammar-utils/coffee-script-compiler.js | 21 +- lib/grammar-utils/d.js | 50 +-- lib/grammar-utils/java.js | 81 ++-- lib/grammar-utils/lisp.js | 54 +-- lib/grammar-utils/matlab.js | 50 +-- lib/grammar-utils/nim.js | 125 +++--- lib/grammar-utils/operating-system.js | 35 +- lib/grammar-utils/perl.js | 21 +- lib/grammar-utils/php.js | 23 +- lib/{grammars.js => grammars.coffee} | 0 lib/header-view.js | 34 +- lib/link-paths.js | 40 +- lib/runner.js | 298 +++++++++------ lib/runtime.js | 325 +++++++++------- lib/script-input-view.js | 135 ++++--- lib/script-options-view.js | 374 ++++++++++-------- lib/script-options.js | 133 ++++--- lib/script-profile-run-view.js | 326 +++++++++------- lib/script-view.js | 404 +++++++++++--------- lib/script.js | 398 ++++++++++--------- lib/view-runtime-observer.js | 110 ++++-- 26 files changed, 2108 insertions(+), 1609 deletions(-) rename lib/{grammars.js => grammars.coffee} (100%) diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index 0e5dbfbb..e953a6f7 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -1,101 +1,121 @@ -CodeContext = require './code-context' -grammarMap = require './grammars' - -{Emitter} = require 'atom' - -module.exports = -class CodeContextBuilder - constructor: (@emitter = new Emitter) -> - - destroy: -> - @emitter.dispose() - - # Public: Builds code context for specified argType - # - # editor - Atom's {TextEditor} instance - # argType - {String} with one of the following values: - # - # * "Selection Based" (default) - # * "Line Number Based", - # * "File Based" - # - # returns a {CodeContext} object - buildCodeContext: (editor, argType='Selection Based') -> - return unless editor? - - codeContext = @initCodeContext(editor) - - codeContext.argType = argType - - if argType == 'Line Number Based' - editor.save() - else if codeContext.selection.isEmpty() and codeContext.filepath? - codeContext.argType = 'File Based' - editor.save() if editor?.isModified() - - # Selection and Line Number Based runs both benefit from knowing the current line - # number - unless argType == 'File Based' - cursor = editor.getLastCursor() - codeContext.lineNumber = cursor.getScreenRow() + 1 - - return codeContext - - initCodeContext: (editor) -> - filename = editor.getTitle() - filepath = editor.getPath() - selection = editor.getLastSelection() - ignoreSelection = atom.config.get 'script.ignoreSelection' - - # If the selection was empty or if ignore selection is on, then "select" ALL - # of the text - # This allows us to run on new files - if selection.isEmpty() || ignoreSelection - textSource = editor - else - textSource = selection - - codeContext = new CodeContext(filename, filepath, textSource) - codeContext.selection = selection - codeContext.shebang = @getShebang(editor) - - lang = @getLang(editor) - - if @validateLang lang - codeContext.lang = lang - - return codeContext - - getShebang: (editor) -> - return unless process.platform isnt 'win32' - text = editor.getText() - lines = text.split("\n") - firstLine = lines[0] - return unless firstLine.match(/^#!/) - - firstLine.replace(/^#!\s*/, '') - - getLang: (editor) -> - editor.getGrammar().name - - validateLang: (lang) -> - valid = true - - # Determine if no language is selected. - if lang is 'Null Grammar' or lang is 'Plain Text' - @emitter.emit 'did-not-specify-language' - valid = false - - # Provide them a dialog to submit an issue on GH, prepopulated with their - # language of choice. - else if not (lang of grammarMap) - @emitter.emit 'did-not-support-language', { lang: lang } - valid = false - - return valid - - onDidNotSpecifyLanguage: (callback) -> - @emitter.on 'did-not-specify-language', callback - - onDidNotSupportLanguage: (callback) -> - @emitter.on 'did-not-support-language', callback +'use babel'; +import CodeContext from './code-context'; +import grammarMap from './grammars'; + +import { Emitter } from 'atom'; + +export default class CodeContextBuilder { + constructor(emitter = new Emitter) { + this.emitter = emitter; + } + + destroy() { + return this.emitter.dispose(); + } + + // Public: Builds code context for specified argType + // + // editor - Atom's {TextEditor} instance + // argType - {String} with one of the following values: + // + // * "Selection Based" (default) + // * "Line Number Based", + // * "File Based" + // + // returns a {CodeContext} object + buildCodeContext(editor, argType='Selection Based') { + if (editor == null) { return; } + + let codeContext = this.initCodeContext(editor); + + codeContext.argType = argType; + + if (argType === 'Line Number Based') { + editor.save(); + } else if (codeContext.selection.isEmpty() && (codeContext.filepath != null)) { + codeContext.argType = 'File Based'; + if (__guard__(editor, x => x.isModified())) { editor.save(); } + } + + // Selection and Line Number Based runs both benefit from knowing the current line + // number + if (argType !== 'File Based') { + let cursor = editor.getLastCursor(); + codeContext.lineNumber = cursor.getScreenRow() + 1; + } + + return codeContext; + } + + initCodeContext(editor) { + let filename = editor.getTitle(); + let filepath = editor.getPath(); + let selection = editor.getLastSelection(); + let ignoreSelection = atom.config.get('script.ignoreSelection'); + + // If the selection was empty or if ignore selection is on, then "select" ALL + // of the text + // This allows us to run on new files + if (selection.isEmpty() || ignoreSelection) { + var textSource = editor; + } else { + var textSource = selection; + } + + let codeContext = new CodeContext(filename, filepath, textSource); + codeContext.selection = selection; + codeContext.shebang = this.getShebang(editor); + + let lang = this.getLang(editor); + + if (this.validateLang(lang)) { + codeContext.lang = lang; + } + + return codeContext; + } + + getShebang(editor) { + if (process.platform === 'win32') { return; } + let text = editor.getText(); + let lines = text.split("\n"); + let firstLine = lines[0]; + if (!firstLine.match(/^#!/)) { return; } + + return firstLine.replace(/^#!\s*/, ''); + } + + getLang(editor) { + return editor.getGrammar().name; + } + + validateLang(lang) { + let valid = true; + + // Determine if no language is selected. + if (lang === 'Null Grammar' || lang === 'Plain Text') { + this.emitter.emit('did-not-specify-language'); + valid = false; + + // Provide them a dialog to submit an issue on GH, prepopulated with their + // language of choice. + } else if (!(lang in grammarMap)) { + this.emitter.emit('did-not-support-language', { lang }); + valid = false; + } + + return valid; + } + + onDidNotSpecifyLanguage(callback) { + return this.emitter.on('did-not-specify-language', callback); + } + + onDidNotSupportLanguage(callback) { + return this.emitter.on('did-not-support-language', callback); + } +}; + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} diff --git a/lib/code-context.js b/lib/code-context.js index 69237de1..842a5574 100644 --- a/lib/code-context.js +++ b/lib/code-context.js @@ -1,69 +1,87 @@ -module.exports = -class CodeContext - filename: null - filepath: null - lineNumber: null - shebang: null - textSource: null +'use babel'; +export default class CodeContext { + static initClass() { + this.prototype.filename = null; + this.prototype.filepath = null; + this.prototype.lineNumber = null; + this.prototype.shebang = null; + this.prototype.textSource = null; + } - # Public: Initializes a new {CodeContext} object for the given file/line - # - # @filename - The {String} filename of the file to execute. - # @filepath - The {String} path of the file to execute. - # @textSource - The {String} text to under "Selection Based". (default: null) - # - # Returns a newly created {CodeContext} object. - constructor: (@filename, @filepath, @textSource = null) -> + // Public: Initializes a new {CodeContext} object for the given file/line + // + // @filename - The {String} filename of the file to execute. + // @filepath - The {String} path of the file to execute. + // @textSource - The {String} text to under "Selection Based". (default: null) + // + // Returns a newly created {CodeContext} object. + constructor(filename, filepath, textSource = null) { + this.filename = filename; + this.filepath = filepath; + this.textSource = textSource; + } - # Public: Creates a {String} representation of the file and line number - # - # fullPath - Whether to expand the file path. (default: true) - # - # Returns the "file colon line" {String}. - fileColonLine: (fullPath = true) -> - if fullPath - fileColonLine = @filepath - else - fileColonLine = @filename + // Public: Creates a {String} representation of the file and line number + // + // fullPath - Whether to expand the file path. (default: true) + // + // Returns the "file colon line" {String}. + fileColonLine(fullPath = true) { + if (fullPath) { + var fileColonLine = this.filepath; + } else { + var fileColonLine = this.filename; + } - return fileColonLine unless @lineNumber - "#{fileColonLine}:#{@lineNumber}" + if (!this.lineNumber) { return fileColonLine; } + return `${fileColonLine}:${this.lineNumber}`; + } - # Public: Retrieves the text from whatever source was given on initialization - # - # prependNewlines - Whether to prepend @lineNumber newlines (default: true) - # - # Returns the code selection {String} - getCode: (prependNewlines = true) -> - code = @textSource?.getText() - return code unless prependNewlines and @lineNumber + // Public: Retrieves the text from whatever source was given on initialization + // + // prependNewlines - Whether to prepend @lineNumber newlines (default: true) + // + // Returns the code selection {String} + getCode(prependNewlines = true) { + let code = __guard__(this.textSource, x => x.getText()); + if (!prependNewlines || !this.lineNumber) { return code; } - newlineCount = Number(@lineNumber) - newlines = Array(newlineCount).join("\n") - "#{newlines}#{code}" + let newlineCount = Number(this.lineNumber); + let newlines = Array(newlineCount).join("\n"); + return `${newlines}${code}`; + } - # Public: Retrieves the command name from @shebang - # - # Returns the {String} name of the command or {undefined} if not applicable. - shebangCommand: -> - sections = @shebangSections() - return unless sections + // Public: Retrieves the command name from @shebang + // + // Returns the {String} name of the command or {undefined} if not applicable. + shebangCommand() { + let sections = this.shebangSections(); + if (!sections) { return; } - sections[0] + return sections[0]; + } - # Public: Retrieves the command arguments (such as flags or arguments to - # /usr/bin/env) from @shebang - # - # Returns the {String} name of the command or {undefined} if not applicable. - shebangCommandArgs: -> - sections = @shebangSections() - return [] unless sections + // Public: Retrieves the command arguments (such as flags or arguments to + // /usr/bin/env) from @shebang + // + // Returns the {String} name of the command or {undefined} if not applicable. + shebangCommandArgs() { + let sections = this.shebangSections(); + if (!sections) { return []; } - sections[1..sections.length-1] + return sections.slice(1, sections.length-1 + 1 || undefined); + } - # Public: Splits the shebang string by spaces to extra the command and - # arguments - # - # Returns the {String} name of the command or {undefined} if not applicable. - shebangSections: -> - @shebang?.split(' ') + // Public: Splits the shebang string by spaces to extra the command and + // arguments + // + // Returns the {String} name of the command or {undefined} if not applicable. + shebangSections() { + return __guard__(this.shebang, x => x.split(' ')); + } +}; +CodeContext.initClass(); + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} diff --git a/lib/command-context.js b/lib/command-context.js index f66f1b44..80184ddf 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -1,58 +1,69 @@ -grammarMap = require './grammars' - -module.exports = -class CommandContext - command: null - workingDirectory: null - args: [] - options: {} - - @build: (runtime, runOptions, codeContext) -> - commandContext = new CommandContext - commandContext.options = runOptions - - try - if not runOptions.cmd? or runOptions.cmd is '' - # Precondition: lang? and lang of grammarMap - commandContext.command = codeContext.shebangCommand() or grammarMap[codeContext.lang][codeContext.argType].command - else - commandContext.command = runOptions.cmd - - buildArgsArray = grammarMap[codeContext.lang][codeContext.argType].args - - catch error - runtime.modeNotSupported(codeContext.argType, codeContext.lang) - return false - - try - commandContext.args = buildArgsArray codeContext - catch errorSendByArgs - runtime.didNotBuildArgs errorSendByArgs - return false - - if not runOptions.workingDirectory? or runOptions.workingDirectory is '' - # Precondition: lang? and lang of grammarMap - commandContext.workingDirectory = grammarMap[codeContext.lang][codeContext.argType].workingDirectory or '' - else - commandContext.workingDirectory = runOptions.workingDirectory +'use babel'; +import grammarMap from './grammars'; + +export default class CommandContext { + static initClass() { + this.prototype.command = null; + this.prototype.workingDirectory = null; + this.prototype.args = []; + this.prototype.options = {}; + } + + static build(runtime, runOptions, codeContext) { + let commandContext = new CommandContext; + commandContext.options = runOptions; + + try { + if ((runOptions.cmd == null) || runOptions.cmd === '') { + // Precondition: lang? and lang of grammarMap + commandContext.command = codeContext.shebangCommand() || grammarMap[codeContext.lang][codeContext.argType].command; + } else { + commandContext.command = runOptions.cmd; + } + + var buildArgsArray = grammarMap[codeContext.lang][codeContext.argType].args; + + } catch (error) { + runtime.modeNotSupported(codeContext.argType, codeContext.lang); + return false; + } + + try { + commandContext.args = buildArgsArray(codeContext); + } catch (errorSendByArgs) { + runtime.didNotBuildArgs(errorSendByArgs); + return false; + } + + if ((runOptions.workingDirectory == null) || runOptions.workingDirectory === '') { + // Precondition: lang? and lang of grammarMap + commandContext.workingDirectory = grammarMap[codeContext.lang][codeContext.argType].workingDirectory || ''; + } else { + commandContext.workingDirectory = runOptions.workingDirectory; + } - # Return setup information - commandContext + // Return setup information + return commandContext; + } - quoteArguments: (args) -> - ((if arg.trim().indexOf(' ') == -1 then arg.trim() else "'#{arg}'") for arg in args) + quoteArguments(args) { + return (args.map((arg) => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`))); + } - getRepresentation: -> - return '' if !@command or !@args.length + getRepresentation() { + if (!this.command || !this.args.length) { return ''; } - # command arguments - commandArgs = if @options.cmdArgs? then @quoteArguments(@options.cmdArgs).join ' ' else '' + // command arguments + let commandArgs = (this.options.cmdArgs != null) ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; - # script arguments - args = if @args.length then @quoteArguments(@args).join ' ' else '' - scriptArgs = if @options.scriptArgs? then @quoteArguments(@options.scriptArgs).join ' ' else '' + // script arguments + let args = this.args.length ? this.quoteArguments(this.args).join(' ') : ''; + let scriptArgs = (this.options.scriptArgs != null) ? this.quoteArguments(this.options.scriptArgs).join(' ') : ''; - @command.trim() + - (if commandArgs then ' ' + commandArgs else '') + - (if args then ' ' + args else '') + - (if scriptArgs then ' ' + scriptArgs else '') + return this.command.trim() + + (commandArgs ? ` ${commandArgs}` : '') + + (args ? ` ${args}` : '') + + (scriptArgs ? ` ${scriptArgs}` : ''); + } +}; +CommandContext.initClass(); diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 63ddacda..05716fb2 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -1,89 +1,97 @@ -# Require some libs used for creating temporary files -os = require 'os' -fs = require 'fs' -path = require 'path' -uuid = require 'node-uuid' - -# Public: GrammarUtils - utilities for determining how to run code -module.exports = - tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles') - - # Public: Create a temporary file with the provided code - # - # * `code` A {String} containing some code - # - # Returns the {String} filepath of the new file - createTempFileWithCode: (code, extension = "") -> - try - fs.mkdirSync(@tempFilesDir) unless fs.existsSync(@tempFilesDir) - - tempFilePath = @tempFilesDir + path.sep + uuid.v1() + extension - - file = fs.openSync(tempFilePath, 'w') - fs.writeSync(file, code) - fs.closeSync(file) - - tempFilePath - catch error - throw ("Error while creating temporary file (#{error})") - - # Public: Delete all temporary files and the directory created by {GrammarUtils::createTempFileWithCode} - deleteTempFiles: -> - try - if (fs.existsSync(@tempFilesDir)) - files = fs.readdirSync(@tempFilesDir) - if (files.length) - files.forEach((file, index) => fs.unlinkSync(@tempFilesDir + path.sep + file)) - fs.rmdirSync(@tempFilesDir) - catch error - throw ("Error while deleting temporary files (#{error})") - - # Public: Get the Java helper object - # - # Returns an {Object} which assists in preparing java + javac statements - Java: require './grammar-utils/java' - - # Public: Get the Lisp helper object - # - # Returns an {Object} which assists in splitting Lisp statements. - Lisp: require './grammar-utils/lisp' - - # Public: Get the MATLAB helper object - # - # Returns an {Object} which assists in splitting MATLAB statements. - MATLAB: require './grammar-utils/matlab' - - # Public: Get the OperatingSystem helper object - # - # Returns an {Object} which assists in writing OS dependent code. - OperatingSystem: require './grammar-utils/operating-system' - - # Public: Get the R helper object - # - # Returns an {Object} which assists in creating temp files containing R code - R: require './grammar-utils/R' - - # Public: Get the Perl helper object - # - # Returns an {Object} which assists in creating temp files containing Perl code - Perl: require './grammar-utils/perl' - - # Public: Get the PHP helper object - # - # Returns an {Object} which assists in creating temp files containing PHP code - PHP: require './grammar-utils/php' - - # Public: Get the Nim helper object - # - # Returns an {Object} which assists in selecting the right project file for Nim code - Nim: require './grammar-utils/nim' - - # Public: Predetermine CoffeeScript compiler - # - # Returns an [array] of appropriate command line flags for the active CS compiler. - CScompiler: require './grammar-utils/coffee-script-compiler' - - # Public: Get the D helper object - # - # Returns an {Object} which assists in creating temp files containing D code - D: require './grammar-utils/d' +'use babel'; +// Require some libs used for creating temporary files +import os from 'os'; +import fs from 'fs'; +import path from 'path'; +import uuid from 'node-uuid'; + +// Public: GrammarUtils - utilities for determining how to run code +export default { + tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), + + // Public: Create a temporary file with the provided code + // + // * `code` A {String} containing some code + // + // Returns the {String} filepath of the new file + createTempFileWithCode(code, extension = "") { + try { + if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } + + let tempFilePath = this.tempFilesDir + path.sep + uuid.v1() + extension; + + let file = fs.openSync(tempFilePath, 'w'); + fs.writeSync(file, code); + fs.closeSync(file); + + return tempFilePath; + } catch (error) { + throw (`Error while creating temporary file (${error})`); + } + }, + + // Public: Delete all temporary files and the directory created by {GrammarUtils::createTempFileWithCode} + deleteTempFiles() { + try { + if (fs.existsSync(this.tempFilesDir)) { + let files = fs.readdirSync(this.tempFilesDir); + if (files.length) { + files.forEach((file, index) => fs.unlinkSync(this.tempFilesDir + path.sep + file)); + } + return fs.rmdirSync(this.tempFilesDir); + } + } catch (error) { + throw (`Error while deleting temporary files (${error})`); + } + }, + + // Public: Get the Java helper object + // + // Returns an {Object} which assists in preparing java + javac statements + Java: require('./grammar-utils/java'), + + // Public: Get the Lisp helper object + // + // Returns an {Object} which assists in splitting Lisp statements. + Lisp: require('./grammar-utils/lisp'), + + // Public: Get the MATLAB helper object + // + // Returns an {Object} which assists in splitting MATLAB statements. + MATLAB: require('./grammar-utils/matlab'), + + // Public: Get the OperatingSystem helper object + // + // Returns an {Object} which assists in writing OS dependent code. + OperatingSystem: require('./grammar-utils/operating-system'), + + // Public: Get the R helper object + // + // Returns an {Object} which assists in creating temp files containing R code + R: require('./grammar-utils/R'), + + // Public: Get the Perl helper object + // + // Returns an {Object} which assists in creating temp files containing Perl code + Perl: require('./grammar-utils/perl'), + + // Public: Get the PHP helper object + // + // Returns an {Object} which assists in creating temp files containing PHP code + PHP: require('./grammar-utils/php'), + + // Public: Get the Nim helper object + // + // Returns an {Object} which assists in selecting the right project file for Nim code + Nim: require('./grammar-utils/nim'), + + // Public: Predetermine CoffeeScript compiler + // + // Returns an [array] of appropriate command line flags for the active CS compiler. + CScompiler: require('./grammar-utils/coffee-script-compiler'), + + // Public: Get the D helper object + // + // Returns an {Object} which assists in creating temp files containing D code + D: require('./grammar-utils/d') +}; diff --git a/lib/grammar-utils/R.js b/lib/grammar-utils/R.js index b9a3c1fe..336527ed 100644 --- a/lib/grammar-utils/R.js +++ b/lib/grammar-utils/R.js @@ -1,10 +1,13 @@ +'use babel'; -# Public: GrammarUtils.R - a module which assist the creation of R temporary files -module.exports = - # Public: Create a temporary file with the provided R code - # - # * `code` A {String} containing some R code - # - # Returns the {String} filepath of the new file - createTempFileWithCode: (code) -> - module.parent.exports.createTempFileWithCode(code) +// Public: GrammarUtils.R - a module which assist the creation of R temporary files +export default { + // Public: Create a temporary file with the provided R code + // + // * `code` A {String} containing some R code + // + // Returns the {String} filepath of the new file + createTempFileWithCode(code) { + return module.parent.exports.createTempFileWithCode(code); + } +}; diff --git a/lib/grammar-utils/coffee-script-compiler.js b/lib/grammar-utils/coffee-script-compiler.js index e780025b..83afffa7 100644 --- a/lib/grammar-utils/coffee-script-compiler.js +++ b/lib/grammar-utils/coffee-script-compiler.js @@ -1,11 +1,14 @@ -# Public: GrammarUtils.CScompiler - a module which predetermines the active -# CoffeeScript compiler and sets an [array] of appropriate command line flags -{execSync} = require 'child_process' +'use babel'; +// Public: GrammarUtils.CScompiler - a module which predetermines the active +// CoffeeScript compiler and sets an [array] of appropriate command line flags +import { execSync } from 'child_process'; -args = ['-e'] -try - coffee = execSync 'coffee -h' #which coffee | xargs readlink' - if coffee.toString().match /--cli/ #-redux - args.push '--cli' +let args = ['-e']; +try { + let coffee = execSync('coffee -h'); //which coffee | xargs readlink' + if (coffee.toString().match(/--cli/)) { //-redux + args.push('--cli'); + } +} catch (error) {} -exports.args = args +export { args }; diff --git a/lib/grammar-utils/d.js b/lib/grammar-utils/d.js index 87467a86..77acee70 100644 --- a/lib/grammar-utils/d.js +++ b/lib/grammar-utils/d.js @@ -1,28 +1,32 @@ -# Require some libs used for creating temporary files -os = require 'os' -fs = require 'fs' -path = require 'path' -uuid = require 'node-uuid' +'use babel'; +// Require some libs used for creating temporary files +import os from 'os'; +import fs from 'fs'; +import path from 'path'; +import uuid from 'node-uuid'; -# Public: GrammarUtils.D - a module which assist the creation of D temporary files -module.exports = - tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles') +// Public: GrammarUtils.D - a module which assist the creation of D temporary files +export default { + tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), - # Public: Create a temporary file with the provided D code - # - # * `code` A {String} containing some D code - # - # Returns the {String} filepath of the new file - createTempFileWithCode: (code) -> - try - fs.mkdirSync(@tempFilesDir) unless fs.existsSync(@tempFilesDir) + // Public: Create a temporary file with the provided D code + // + // * `code` A {String} containing some D code + // + // Returns the {String} filepath of the new file + createTempFileWithCode(code) { + try { + if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } - tempFilePath = @tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.d' + let tempFilePath = this.tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.d'; - file = fs.openSync(tempFilePath, 'w') - fs.writeSync(file, code) - fs.closeSync(file) + let file = fs.openSync(tempFilePath, 'w'); + fs.writeSync(file, code); + fs.closeSync(file); - tempFilePath - catch error - throw ("Error while creating temporary file (#{error})") + return tempFilePath; + } catch (error) { + throw (`Error while creating temporary file (${error})`); + } + } +}; diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index 2d1d55e6..9ead9bd7 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -1,38 +1,51 @@ -# Java script preparation functions -os = require 'os' -path = require 'path' +'use babel'; +// Java script preparation functions +import os from 'os'; +import path from 'path'; -module.exports = - # Public: Get atom temp file directory - # - # Returns {String} containing atom temp file directory - tempFilesDir: path.join(os.tmpdir()) +export default { + // Public: Get atom temp file directory + // + // Returns {String} containing atom temp file directory + tempFilesDir: path.join(os.tmpdir()), - # Public: Get class name of file in context - # - # * `filePath` {String} containing file path - # - # Returns {String} containing class name of file - getClassName: (context) -> - context.filename.replace /\.java$/, "" + // Public: Get class name of file in context + // + // * `filePath` {String} containing file path + // + // Returns {String} containing class name of file + getClassName(context) { + return context.filename.replace(/\.java$/, ""); + }, - # Public: Get project path of context - # - # * `context` {Object} containing current context - # - # Returns {String} containing the matching project path - getProjectPath: (context) -> - projectPaths = atom.project.getPaths() - for projectPath in projectPaths - if context.filepath.includes(projectPath) - projectPath + // Public: Get project path of context + // + // * `context` {Object} containing current context + // + // Returns {String} containing the matching project path + getProjectPath(context) { + let projectPaths = atom.project.getPaths(); + return (() => { + let result = []; + for (let projectPath of projectPaths) { + let item; + if (context.filepath.includes(projectPath)) { + item = projectPath; + } + result.push(item); + } + return result; + })(); + }, - # Public: Get package of file in context - # - # * `context` {Object} containing current context - # - # Returns {String} containing class of contextual file - getClassPackage: (context) -> - projectPath = module.exports.getProjectPath context - projectRemoved = (context.filepath.replace projectPath + "/", "") - projectRemoved.replace "/" + context.filename, "" + // Public: Get package of file in context + // + // * `context` {Object} containing current context + // + // Returns {String} containing class of contextual file + getClassPackage(context) { + let projectPath = module.exports.getProjectPath(context); + let projectRemoved = (context.filepath.replace(projectPath + "/", "")); + return projectRemoved.replace(`/${context.filename}`, ""); + } +}; diff --git a/lib/grammar-utils/lisp.js b/lib/grammar-utils/lisp.js index b89c99a9..8b44b48e 100644 --- a/lib/grammar-utils/lisp.js +++ b/lib/grammar-utils/lisp.js @@ -1,30 +1,36 @@ -_ = require 'underscore' +'use babel'; +import _ from 'underscore'; -# Public: GrammarUtils.Lisp - a module which exposes the ability to evaluate -# code -module.exports = - # Public: Split a string of code into an array of executable statements - # - # Returns an {Array} of executable statements. - splitStatements: (code) -> - iterator = (statements, currentCharacter, _memo, _context) -> - @parenDepth ?= 0 - if currentCharacter is '(' - @parenDepth += 1 - @inStatement = true - else if currentCharacter is ')' - @parenDepth -= 1 +// Public: GrammarUtils.Lisp - a module which exposes the ability to evaluate +// code +export default { + // Public: Split a string of code into an array of executable statements + // + // Returns an {Array} of executable statements. + splitStatements(code) { + let iterator = function(statements, currentCharacter, _memo, _context) { + if (this.parenDepth == null) { this.parenDepth = 0; } + if (currentCharacter === '(') { + this.parenDepth += 1; + this.inStatement = true; + } else if (currentCharacter === ')') { + this.parenDepth -= 1; + } - @statement ?= '' - @statement += currentCharacter + if (this.statement == null) { this.statement = ''; } + this.statement += currentCharacter; - if @parenDepth is 0 and @inStatement - @inStatement = false - statements.push @statement.trim() - @statement = '' + if (this.parenDepth === 0 && this.inStatement) { + this.inStatement = false; + statements.push(this.statement.trim()); + this.statement = ''; + } - return statements + return statements; + }; - statements = _.reduce code.trim(), iterator, [], {} + let statements = _.reduce(code.trim(), iterator, [], {}); - return statements + return statements; + } +}; diff --git a/lib/grammar-utils/matlab.js b/lib/grammar-utils/matlab.js index 03537327..60f5abf5 100644 --- a/lib/grammar-utils/matlab.js +++ b/lib/grammar-utils/matlab.js @@ -1,28 +1,32 @@ -# Require some libs used for creating temporary files -os = require 'os' -fs = require 'fs' -path = require 'path' -uuid = require 'node-uuid' +'use babel'; +// Require some libs used for creating temporary files +import os from 'os'; +import fs from 'fs'; +import path from 'path'; +import uuid from 'node-uuid'; -# Public: GrammarUtils.MATLAB - a module which assist the creation of MATLAB temporary files -module.exports = - tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles') +// Public: GrammarUtils.MATLAB - a module which assist the creation of MATLAB temporary files +export default { + tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), - # Public: Create a temporary file with the provided MATLAB code - # - # * `code` A {String} containing some MATLAB code - # - # Returns the {String} filepath of the new file - createTempFileWithCode: (code) -> - try - fs.mkdirSync(@tempFilesDir) unless fs.existsSync(@tempFilesDir) + // Public: Create a temporary file with the provided MATLAB code + // + // * `code` A {String} containing some MATLAB code + // + // Returns the {String} filepath of the new file + createTempFileWithCode(code) { + try { + if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } - tempFilePath = @tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.m' + let tempFilePath = this.tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.m'; - file = fs.openSync(tempFilePath, 'w') - fs.writeSync(file, code) - fs.closeSync(file) + let file = fs.openSync(tempFilePath, 'w'); + fs.writeSync(file, code); + fs.closeSync(file); - tempFilePath - catch error - throw ("Error while creating temporary file (#{error})") + return tempFilePath; + } catch (error) { + throw (`Error while creating temporary file (${error})`); + } + } +}; diff --git a/lib/grammar-utils/nim.js b/lib/grammar-utils/nim.js index 73c15068..16970e56 100644 --- a/lib/grammar-utils/nim.js +++ b/lib/grammar-utils/nim.js @@ -1,64 +1,77 @@ -# Public: GrammarUtils.Nim - a module which selects the right file to run for Nim projects -module.exports = - # Public: Find the right file to run - # - # * `file` A {String} containing the current editor file - # - # Returns the {String} filepath of file to run +'use babel'; +// Public: GrammarUtils.Nim - a module which selects the right file to run for Nim projects +export default { + // Public: Find the right file to run + // + // * `file` A {String} containing the current editor file + // + // Returns the {String} filepath of file to run - projectDir: (editorfile) -> - path = require('path') - return path.dirname(editorfile) + projectDir(editorfile) { + let path = require('path'); + return path.dirname(editorfile); + }, - findNimProjectFile: (editorfile) -> - path = require('path') - fs = require('fs') + findNimProjectFile(editorfile) { + let path = require('path'); + let fs = require('fs'); - if(path.extname(editorfile)=='.nims') - # if we have an .nims file - try - tfile = editorfile.slice(0, -1) - stats = fs.statSync(tfile) - # it has a corresponding .nim file. so thats a config file. - # we run the .nim file instead. - return path.basename(tfile) - catch error - # it has no corresponding .nim file, it is a standalone script - return path.basename(editorfile) + if(path.extname(editorfile)==='.nims') { + // if we have an .nims file + try { + var tfile = editorfile.slice(0, -1); + var stats = fs.statSync(tfile); + // it has a corresponding .nim file. so thats a config file. + // we run the .nim file instead. + return path.basename(tfile); + } catch (error) { + // it has no corresponding .nim file, it is a standalone script + return path.basename(editorfile); + } + } - # check if we are running on a file with config - try - stats = fs.statSync(editorfile + "s") - return path.basename(editorfile) + // check if we are running on a file with config + try { + var stats = fs.statSync(editorfile + "s"); + return path.basename(editorfile); + } catch (error) {} - try - stats = fs.statSync(editorfile + ".cfg") - return path.basename(editorfile) + try { + var stats = fs.statSync(editorfile + ".cfg"); + return path.basename(editorfile); + } catch (error1) {} - try - stats = fs.statSync(editorfile + "cfg") - return path.basename(editorfile) + try { + var stats = fs.statSync(editorfile + "cfg"); + return path.basename(editorfile); + } catch (error2) {} - # assume we want to run a project - # searching for the first file which has - # a config file with the same name and - # run this instead of the one in the editor - # tab - filepath = path.dirname(editorfile) - files = fs.readdirSync(filepath) - files.sort() - for file in files - name = filepath + '/' + file - if (fs.statSync(name).isFile()) - if(path.extname(name)=='.nims' or - path.extname(name)=='.nimcgf' or - path.extname(name)=='.cfg') - try - tfile = name.slice(0, -1) - stats = fs.statSync(tfile) - return path.basename(tfile) - catch error - console.log "File does not exist." + // assume we want to run a project + // searching for the first file which has + // a config file with the same name and + // run this instead of the one in the editor + // tab + let filepath = path.dirname(editorfile); + let files = fs.readdirSync(filepath); + files.sort(); + for (let file of files) { + let name = filepath + '/' + file; + if (fs.statSync(name).isFile()) { + if(path.extname(name)==='.nims' || + path.extname(name)==='.nimcgf' || + path.extname(name)==='.cfg') { + try { + var tfile = name.slice(0, -1); + var stats = fs.statSync(tfile); + return path.basename(tfile); + } catch (error) { + console.log("File does not exist."); + } + } + } + } - # just run what we got - return path.basename(editorfile) + // just run what we got + return path.basename(editorfile); + } +}; diff --git a/lib/grammar-utils/operating-system.js b/lib/grammar-utils/operating-system.js index aa46944a..dfc586eb 100644 --- a/lib/grammar-utils/operating-system.js +++ b/lib/grammar-utils/operating-system.js @@ -1,19 +1,26 @@ -os = require 'os' +'use babel'; +import os from 'os'; -# Public: GrammarUtils.OperatingSystem - a module which exposes different -# platform related helper functions. -module.exports = - isDarwin: -> - @platform() is 'darwin' +// Public: GrammarUtils.OperatingSystem - a module which exposes different +// platform related helper functions. +export default { + isDarwin() { + return this.platform() === 'darwin'; + }, - isWindows: -> - @platform() is 'win32' + isWindows() { + return this.platform() === 'win32'; + }, - isLinux: -> - @platform() is 'linux' + isLinux() { + return this.platform() === 'linux'; + }, - platform: -> - os.platform() + platform() { + return os.platform(); + }, - release: -> - os.release() + release() { + return os.release(); + } +}; diff --git a/lib/grammar-utils/perl.js b/lib/grammar-utils/perl.js index b3b81488..96e87273 100644 --- a/lib/grammar-utils/perl.js +++ b/lib/grammar-utils/perl.js @@ -1,10 +1,13 @@ +'use babel'; -# Public: GrammarUtils.Perl - a module which assist the creation of Perl temporary files -module.exports = - # Public: Create a temporary file with the provided Perl code - # - # * `code` A {String} containing some Perl code - # - # Returns the {String} filepath of the new file - createTempFileWithCode: (code) -> - module.parent.exports.createTempFileWithCode(code) +// Public: GrammarUtils.Perl - a module which assist the creation of Perl temporary files +export default { + // Public: Create a temporary file with the provided Perl code + // + // * `code` A {String} containing some Perl code + // + // Returns the {String} filepath of the new file + createTempFileWithCode(code) { + return module.parent.exports.createTempFileWithCode(code); + } +}; diff --git a/lib/grammar-utils/php.js b/lib/grammar-utils/php.js index fc636d62..6c884271 100644 --- a/lib/grammar-utils/php.js +++ b/lib/grammar-utils/php.js @@ -1,11 +1,14 @@ +'use babel'; -# Public: GrammarUtils.PHP - a module which assist the creation of PHP temporary files -module.exports = - # Public: Create a temporary file with the provided PHP code - # - # * `code` A {String} containing some PHP code without - code = " - @div class: 'header-view', => - @span class: 'heading-title', outlet: 'title' - @span class: 'heading-status', outlet: 'status' + static content() { + return this.div({class: 'header-view'}, () => { + this.span({class: 'heading-title', outlet: 'title'}); + return this.span({class: 'heading-status', outlet: 'status'}); + } + ); + } - setStatus: (status) -> - @status.removeClass 'icon-alert icon-check icon-hourglass icon-stop' - switch status - when 'start' then @status.addClass 'icon-hourglass' - when 'stop' then @status.addClass 'icon-check' - when 'kill' then @status.addClass 'icon-stop' - when 'err' then @status.addClass 'icon-alert' + setStatus(status) { + this.status.removeClass('icon-alert icon-check icon-hourglass icon-stop'); + switch (status) { + case 'start': return this.status.addClass('icon-hourglass'); + case 'stop': return this.status.addClass('icon-check'); + case 'kill': return this.status.addClass('icon-stop'); + case 'err': return this.status.addClass('icon-alert'); + } + } +}; diff --git a/lib/link-paths.js b/lib/link-paths.js index a072b228..b2af65d6 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -1,23 +1,25 @@ -regex = /// - ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) - (?:[-\w.]+/)*[-\w.]+) # The path of the file some/file/path.ext - :(\d+) # Line number prefixed with a colon - (?::(\d+))? # Column number prefixed with a colon (optional) -///g -template = '$&' +'use babel'; +let linkPaths; +let regex = new RegExp(`\ +((?:\\w:)?/?\ +(?:[-\\w.]+/)*[-\\w.]+)\ +:(\\d+)\ +(?::(\\d+))?\ +`, 'g'); +let template = '$&'; -module.exports = linkPaths = (lines) -> - lines.replace regex, template +export default linkPaths = lines => lines.replace(regex, template); -linkPaths.listen = (parentView) -> - parentView.on 'click', '.-linked-path', (event) -> - el = this - {path, line, column} = el.dataset - line = Number(line) - 1 - # column number is optional - column = if column then Number(column) - 1 else 0 +linkPaths.listen = parentView => + parentView.on('click', '.-linked-path', function(event) { + let el = this; + let {path, line, column} = el.dataset; + line = Number(line) - 1; + // column number is optional + column = column ? Number(column) - 1 : 0; - atom.workspace.open path, { - initialLine: line + return atom.workspace.open(path, { + initialLine: line, initialColumn: column - } + });}) +; diff --git a/lib/runner.js b/lib/runner.js index 917e8ce3..43c1203f 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -1,124 +1,182 @@ -{Emitter, BufferedProcess} = require 'atom' -fs = require 'fs' -path = require 'path' - -module.exports = -class Runner - bufferedProcess: null - - # Public: Creates a Runner instance - # - # * `scriptOptions` a {ScriptOptions} object instance - # * `emitter` Atom's {Emitter} instance. You probably don't need to overwrite it - constructor: (@scriptOptions, @emitter = new Emitter) -> - - run: (command, extraArgs, codeContext, inputString = null) -> - @startTime = new Date() - - args = @args(codeContext, extraArgs) - options = @options() - stdout = @stdoutFunc - stderr = @stderrFunc - exit = @onExit - - @bufferedProcess = new BufferedProcess({ +'use babel'; +import { Emitter, BufferedProcess } from 'atom'; +import fs from 'fs'; +import path from 'path'; + +export default class Runner { + static initClass() { + this.prototype.bufferedProcess = null; + } + + // Public: Creates a Runner instance + // + // * `scriptOptions` a {ScriptOptions} object instance + // * `emitter` Atom's {Emitter} instance. You probably don't need to overwrite it + constructor(scriptOptions, emitter = new Emitter) { + this.stdoutFunc = this.stdoutFunc.bind(this); + this.stderrFunc = this.stderrFunc.bind(this); + this.onExit = this.onExit.bind(this); + this.createOnErrorFunc = this.createOnErrorFunc.bind(this); + this.scriptOptions = scriptOptions; + this.emitter = emitter; + } + + run(command, extraArgs, codeContext, inputString = null) { + this.startTime = new Date(); + + let args = this.args(codeContext, extraArgs); + let options = this.options(); + let stdout = this.stdoutFunc; + let stderr = this.stderrFunc; + let exit = this.onExit; + + this.bufferedProcess = new BufferedProcess({ command, args, options, stdout, stderr, exit - }) - - if inputString - @bufferedProcess.process.stdin.write(inputString) - @bufferedProcess.process.stdin.end() - - @bufferedProcess.onWillThrowError(@createOnErrorFunc(command)) - - stdoutFunc: (output) => - @emitter.emit 'did-write-to-stdout', { message: output } - - onDidWriteToStdout: (callback) -> - @emitter.on 'did-write-to-stdout', callback - - stderrFunc: (output) => - @emitter.emit 'did-write-to-stderr', { message: output } - - onDidWriteToStderr: (callback) -> - @emitter.on 'did-write-to-stderr', callback - - destroy: -> - @emitter.dispose() - - getCwd: -> - cwd = @scriptOptions.workingDirectory - - workingDirectoryProvided = cwd? and cwd isnt '' - if not workingDirectoryProvided - switch atom.config.get('script.cwdBehavior') - when 'First project directory' - paths = atom.project.getPaths() - if paths?.length > 0 - try - cwd = if fs.statSync(paths[0]).isDirectory() then paths[0] else path.join(paths[0], '..') - when 'Project directory of the script' - cwd = @getProjectPath() - when 'Directory of the script' - cwd = atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() or '' - cwd - - stop: -> - if @bufferedProcess? - @bufferedProcess.kill() - @bufferedProcess = null - - onExit: (returnCode) => - @bufferedProcess = null - - if (atom.config.get 'script.enableExecTime') is true and @startTime - executionTime = (new Date().getTime() - @startTime.getTime()) / 1000 - - @emitter.emit 'did-exit', { executionTime: executionTime, returnCode: returnCode } - - onDidExit: (callback) -> - @emitter.on 'did-exit', callback - - createOnErrorFunc: (command) => - (nodeError) => - @bufferedProcess = null - @emitter.emit 'did-not-run', { command: command } - nodeError.handle() - - onDidNotRun: (callback) -> - @emitter.on 'did-not-run', callback - - options: -> - cwd: @getCwd() - env: @scriptOptions.mergedEnv(process.env) - - fillVarsInArg: (arg, codeContext, project_path) -> - if codeContext.filepath? - arg = arg.replace(/{FILE_ACTIVE}/g, codeContext.filepath) - arg = arg.replace(/{FILE_ACTIVE_PATH}/g, path.join(codeContext.filepath, '..')) - if codeContext.filename? - arg = arg.replace(/{FILE_ACTIVE_NAME}/g, codeContext.filename) - arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.basename(codeContext.filename, path.extname(codeContext.filename))) - if project_path? - arg = arg.replace(/{PROJECT_PATH}/g, project_path) + }); + + if (inputString) { + this.bufferedProcess.process.stdin.write(inputString); + this.bufferedProcess.process.stdin.end(); + } + + return this.bufferedProcess.onWillThrowError(this.createOnErrorFunc(command)); + } + + stdoutFunc(output) { + return this.emitter.emit('did-write-to-stdout', { message: output }); + } + + onDidWriteToStdout(callback) { + return this.emitter.on('did-write-to-stdout', callback); + } + + stderrFunc(output) { + return this.emitter.emit('did-write-to-stderr', { message: output }); + } + + onDidWriteToStderr(callback) { + return this.emitter.on('did-write-to-stderr', callback); + } + + destroy() { + return this.emitter.dispose(); + } + + getCwd() { + let cwd = this.scriptOptions.workingDirectory; + + let workingDirectoryProvided = (cwd != null) && cwd !== ''; + if (!workingDirectoryProvided) { + switch (atom.config.get('script.cwdBehavior')) { + case 'First project directory': + let paths = atom.project.getPaths(); + if (__guard__(paths, x => x.length) > 0) { + try { + cwd = fs.statSync(paths[0]).isDirectory() ? paths[0] : path.join(paths[0], '..'); + } catch (error) {} + } + break; + case 'Project directory of the script': + cwd = this.getProjectPath(); + break; + case 'Directory of the script': + cwd = __guardMethod__(__guardMethod__(__guard__(__guard__(atom.workspace.getActivePaneItem(), x2 => x2.buffer), x1 => x1.file), 'getParent', o1 => o1.getParent()), 'getPath', o => o.getPath()) || ''; + break; + } + } + return cwd; + } + + stop() { + if (this.bufferedProcess != null) { + this.bufferedProcess.kill(); + return this.bufferedProcess = null; + } + } + + onExit(returnCode) { + this.bufferedProcess = null; + + if ((atom.config.get('script.enableExecTime')) === true && this.startTime) { + var executionTime = (new Date().getTime() - this.startTime.getTime()) / 1000; + } + + return this.emitter.emit('did-exit', { executionTime, returnCode }); + } + + onDidExit(callback) { + return this.emitter.on('did-exit', callback); + } + + createOnErrorFunc(command) { + return nodeError => { + this.bufferedProcess = null; + this.emitter.emit('did-not-run', { command }); + return nodeError.handle(); + }; + } + + onDidNotRun(callback) { + return this.emitter.on('did-not-run', callback); + } + + options() { + return { + cwd: this.getCwd(), + env: this.scriptOptions.mergedEnv(process.env) + }; + } + + fillVarsInArg(arg, codeContext, project_path) { + if (codeContext.filepath != null) { + arg = arg.replace(/{FILE_ACTIVE}/g, codeContext.filepath); + arg = arg.replace(/{FILE_ACTIVE_PATH}/g, path.join(codeContext.filepath, '..')); + } + if (codeContext.filename != null) { + arg = arg.replace(/{FILE_ACTIVE_NAME}/g, codeContext.filename); + arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.basename(codeContext.filename, path.extname(codeContext.filename))); + } + if (project_path != null) { + arg = arg.replace(/{PROJECT_PATH}/g, project_path); + } - arg + return arg; + } - args: (codeContext, extraArgs) -> - args = (@scriptOptions.cmdArgs.concat extraArgs).concat @scriptOptions.scriptArgs - project_path = @getProjectPath or '' - args = (@fillVarsInArg arg, codeContext, project_path for arg in args) + args(codeContext, extraArgs) { + let args = (this.scriptOptions.cmdArgs.concat(extraArgs)).concat(this.scriptOptions.scriptArgs); + let project_path = this.getProjectPath || ''; + args = (args.map((arg) => this.fillVarsInArg(arg, codeContext, project_path))); - if not @scriptOptions.cmd? or @scriptOptions.cmd is '' - args = codeContext.shebangCommandArgs().concat args - args - - getProjectPath: -> - filePath = atom.workspace.getActiveTextEditor().getPath() - projectPaths = atom.project.getPaths() - for projectPath in projectPaths - if filePath.indexOf(projectPath) > -1 - if fs.statSync(projectPath).isDirectory() - return projectPath - else - return path.join(projectPath, '..') + if ((this.scriptOptions.cmd == null) || this.scriptOptions.cmd === '') { + args = codeContext.shebangCommandArgs().concat(args); + } + return args; + } + + getProjectPath() { + let filePath = atom.workspace.getActiveTextEditor().getPath(); + let projectPaths = atom.project.getPaths(); + for (let projectPath of projectPaths) { + if (filePath.indexOf(projectPath) > -1) { + if (fs.statSync(projectPath).isDirectory()) { + return projectPath; + } else { + return path.join(projectPath, '..'); + } + } + } + } +}; +Runner.initClass(); + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} +function __guardMethod__(obj, methodName, transform) { + if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { + return transform(obj, methodName); + } else { + return undefined; + } +} diff --git a/lib/runtime.js b/lib/runtime.js index 62c022be..90647f8a 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -1,146 +1,181 @@ -CommandContext = require './command-context' - -_ = require 'underscore' - -{Emitter} = require 'atom' - -module.exports = -class Runtime - observers: [] - - # Public: Initializes a new {Runtime} instance - # - # This class is responsible for properly configuring {Runner} - constructor: (@runner, @codeContextBuilder, @observers = [], @emitter = new Emitter) -> - @scriptOptions = @runner.scriptOptions - _.each @observers, (observer) => observer.observe(@) - - # Public: Adds a new observer and asks it to listen for {Runner} events - # - # An observer should have two methods: - # * `observe(runtime)` - in which you can subscribe to {Runtime} events - # (see {ViewRuntimeObserver} for what you are expected to handle) - # * `destroy` - where you can do your cleanup - addObserver: (observer) -> - @observers.push(observer) - observer.observe(@) - - # Public: disposes dependencies - # - # This should be called when you no longer need to use this class - destroy: -> - @stop() - @runner.destroy() - _.each @observers, (observer) -> observer.destroy() - @emitter.dispose() - @codeContextBuilder.destroy() - - # Public: Executes code - # - # argType (Optional) - {String} One of the three: - # * "Selection Based" (default) - # * "Line Number Based" - # * "File Based" - # input (Optional) - {String} that'll be provided to the `stdin` of the new process - execute: (argType = "Selection Based", input = null, options = null) -> - @stop() if atom.config.get 'script.stopOnRerun' - @emitter.emit 'start' - - codeContext = @codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), argType) - - # In the future we could handle a runner without the language being part - # of the grammar map, using the options runner - return unless codeContext?.lang? - - executionOptions = if options then options else @scriptOptions - commandContext = CommandContext.build(@, executionOptions, codeContext) - - return unless commandContext - - if commandContext.workingDirectory? - executionOptions.workingDirectory = commandContext.workingDirectory - - @emitter.emit 'did-context-create', - lang: codeContext.lang - filename: codeContext.filename +'use babel'; +import CommandContext from './command-context'; + +import _ from 'underscore'; + +import { Emitter } from 'atom'; + +export default class Runtime { + static initClass() { + this.prototype.observers = []; + } + + // Public: Initializes a new {Runtime} instance + // + // This class is responsible for properly configuring {Runner} + constructor(runner, codeContextBuilder, observers = [], emitter = new Emitter) { + this.runner = runner; + this.codeContextBuilder = codeContextBuilder; + this.observers = observers; + this.emitter = emitter; + this.scriptOptions = this.runner.scriptOptions; + _.each(this.observers, observer => observer.observe(this)); + } + + // Public: Adds a new observer and asks it to listen for {Runner} events + // + // An observer should have two methods: + // * `observe(runtime)` - in which you can subscribe to {Runtime} events + // (see {ViewRuntimeObserver} for what you are expected to handle) + // * `destroy` - where you can do your cleanup + addObserver(observer) { + this.observers.push(observer); + return observer.observe(this); + } + + // Public: disposes dependencies + // + // This should be called when you no longer need to use this class + destroy() { + this.stop(); + this.runner.destroy(); + _.each(this.observers, observer => observer.destroy()); + this.emitter.dispose(); + return this.codeContextBuilder.destroy(); + } + + // Public: Executes code + // + // argType (Optional) - {String} One of the three: + // * "Selection Based" (default) + // * "Line Number Based" + // * "File Based" + // input (Optional) - {String} that'll be provided to the `stdin` of the new process + execute(argType = "Selection Based", input = null, options = null) { + if (atom.config.get('script.stopOnRerun')) { this.stop(); } + this.emitter.emit('start'); + + let codeContext = this.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), argType); + + // In the future we could handle a runner without the language being part + // of the grammar map, using the options runner + if (__guard__(codeContext, x => x.lang) == null) { return; } + + let executionOptions = options ? options : this.scriptOptions; + let commandContext = CommandContext.build(this, executionOptions, codeContext); + + if (!commandContext) { return; } + + if (commandContext.workingDirectory != null) { + executionOptions.workingDirectory = commandContext.workingDirectory; + } + + this.emitter.emit('did-context-create', { + lang: codeContext.lang, + filename: codeContext.filename, lineNumber: codeContext.lineNumber - - @runner.scriptOptions = executionOptions - @runner.run(commandContext.command, commandContext.args, codeContext, input) - @emitter.emit 'started', commandContext - - # Public: stops execution of the current fork - stop: -> - @emitter.emit 'stop' - @runner.stop() - @emitter.emit 'stopped' - - # Public: Dispatched when the execution is starting - onStart: (callback) -> - @emitter.on 'start', callback - - # Public: Dispatched when the execution is started - onStarted: (callback) -> - @emitter.on 'started', callback - - # Public: Dispatched when the execution is stopping - onStop: (callback) -> - @emitter.on 'stop', callback - - # Public: Dispatched when the execution is stopped - onStopped: (callback) -> - @emitter.on 'stopped', callback - - # Public: Dispatched when the language is not specified - onDidNotSpecifyLanguage: (callback) -> - @codeContextBuilder.onDidNotSpecifyLanguage callback - - # Public: Dispatched when the language is not supported - # lang - {String} with the language name - onDidNotSupportLanguage: (callback) -> - @codeContextBuilder.onDidNotSupportLanguage callback - - # Public: Dispatched when the mode is not supported - # lang - {String} with the language name - # argType - {String} with the run mode specified - onDidNotSupportMode: (callback) -> - @emitter.on 'did-not-support-mode', callback - - # Public: Dispatched when building run arguments resulted in an error - # error - {Error} - onDidNotBuildArgs: (callback) -> - @emitter.on 'did-not-build-args', callback - - # Public: Dispatched when the {CodeContext} is successfully created - # lang - {String} with the language name - # filename - {String} with the filename - # lineNumber - {Number} with the line number (may be null) - onDidContextCreate: (callback) -> - @emitter.on 'did-context-create', callback - - # Public: Dispatched when the process you run writes something to stdout - # message - {String} with the output - onDidWriteToStdout: (callback) -> - @runner.onDidWriteToStdout callback - - # Public: Dispatched when the process you run writes something to stderr - # message - {String} with the output - onDidWriteToStderr: (callback) -> - @runner.onDidWriteToStderr callback - - # Public: Dispatched when the process you run exits - # returnCode - {Number} with the process' exit code - # executionTime - {Number} with the process' exit code - onDidExit: (callback) -> - @runner.onDidExit callback - - # Public: Dispatched when the code you run did not manage to run - # command - {String} with the run command - onDidNotRun: (callback) -> - @runner.onDidNotRun callback - - modeNotSupported: (argType, lang) -> - @emitter.emit 'did-not-support-mode', { argType, lang } - - didNotBuildArgs: (error) -> - @emitter.emit 'did-not-build-args', { error: error } + } + ); + + this.runner.scriptOptions = executionOptions; + this.runner.run(commandContext.command, commandContext.args, codeContext, input); + return this.emitter.emit('started', commandContext); + } + + // Public: stops execution of the current fork + stop() { + this.emitter.emit('stop'); + this.runner.stop(); + return this.emitter.emit('stopped'); + } + + // Public: Dispatched when the execution is starting + onStart(callback) { + return this.emitter.on('start', callback); + } + + // Public: Dispatched when the execution is started + onStarted(callback) { + return this.emitter.on('started', callback); + } + + // Public: Dispatched when the execution is stopping + onStop(callback) { + return this.emitter.on('stop', callback); + } + + // Public: Dispatched when the execution is stopped + onStopped(callback) { + return this.emitter.on('stopped', callback); + } + + // Public: Dispatched when the language is not specified + onDidNotSpecifyLanguage(callback) { + return this.codeContextBuilder.onDidNotSpecifyLanguage(callback); + } + + // Public: Dispatched when the language is not supported + // lang - {String} with the language name + onDidNotSupportLanguage(callback) { + return this.codeContextBuilder.onDidNotSupportLanguage(callback); + } + + // Public: Dispatched when the mode is not supported + // lang - {String} with the language name + // argType - {String} with the run mode specified + onDidNotSupportMode(callback) { + return this.emitter.on('did-not-support-mode', callback); + } + + // Public: Dispatched when building run arguments resulted in an error + // error - {Error} + onDidNotBuildArgs(callback) { + return this.emitter.on('did-not-build-args', callback); + } + + // Public: Dispatched when the {CodeContext} is successfully created + // lang - {String} with the language name + // filename - {String} with the filename + // lineNumber - {Number} with the line number (may be null) + onDidContextCreate(callback) { + return this.emitter.on('did-context-create', callback); + } + + // Public: Dispatched when the process you run writes something to stdout + // message - {String} with the output + onDidWriteToStdout(callback) { + return this.runner.onDidWriteToStdout(callback); + } + + // Public: Dispatched when the process you run writes something to stderr + // message - {String} with the output + onDidWriteToStderr(callback) { + return this.runner.onDidWriteToStderr(callback); + } + + // Public: Dispatched when the process you run exits + // returnCode - {Number} with the process' exit code + // executionTime - {Number} with the process' exit code + onDidExit(callback) { + return this.runner.onDidExit(callback); + } + + // Public: Dispatched when the code you run did not manage to run + // command - {String} with the run command + onDidNotRun(callback) { + return this.runner.onDidNotRun(callback); + } + + modeNotSupported(argType, lang) { + return this.emitter.emit('did-not-support-mode', { argType, lang }); + } + + didNotBuildArgs(error) { + return this.emitter.emit('did-not-build-args', { error }); + } +}; +Runtime.initClass(); + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} diff --git a/lib/script-input-view.js b/lib/script-input-view.js index 559185ea..831ec057 100644 --- a/lib/script-input-view.js +++ b/lib/script-input-view.js @@ -1,56 +1,79 @@ -{Emitter, CompositeDisposable} = require 'atom' -{$$, View} = require 'atom-space-pen-views' - -module.exports = -class ScriptInputView extends View - @content: -> - @div class: 'script-input-view', => - @div class: 'caption', '' - @tag 'atom-text-editor', mini: '', class: 'editor mini' - - initialize: (@options) -> - @emitter = new Emitter - - @panel = atom.workspace.addModalPanel item: this - @panel.hide() - - @editor = @find('atom-text-editor').get(0).getModel() - - # set default text - if @options.default - @editor.setText @options.default - @editor.selectAll() - - # caption text - if @options.caption - @find('.caption').text @options.caption - - @find('atom-text-editor').on 'keydown', (e) => - if e.keyCode == 27 - e.stopPropagation() - @emitter.emit 'on-cancel' - @hide() - - @subscriptions = new CompositeDisposable - @subscriptions.add atom.commands.add 'atom-workspace', - 'core:confirm': => - @emitter.emit 'on-confirm', @editor.getText().trim() - @hide() - - onConfirm: (callback) -> @emitter.on 'on-confirm', callback - onCancel: (callback) -> @emitter.on 'on-cancel', callback - - focus: -> - @find('atom-text-editor').focus() - - show: -> - @panel.show() - @focus() - - hide: -> - @panel.hide() - @destroy() - - destroy: -> - @subscriptions?.dispose() - @panel.destroy() +'use babel'; +import { Emitter, CompositeDisposable } from 'atom'; +import { $$, View } from 'atom-space-pen-views'; + +export default class ScriptInputView extends View { + static content() { + return this.div({class: 'script-input-view'}, () => { + this.div({class: 'caption'}, ''); + return this.tag('atom-text-editor', {mini: '', class: 'editor mini'}); + } + ); + } + + initialize(options) { + this.options = options; + this.emitter = new Emitter; + + this.panel = atom.workspace.addModalPanel({item: this}); + this.panel.hide(); + + this.editor = this.find('atom-text-editor').get(0).getModel(); + + // set default text + if (this.options.default) { + this.editor.setText(this.options.default); + this.editor.selectAll(); + } + + // caption text + if (this.options.caption) { + this.find('.caption').text(this.options.caption); + } + + this.find('atom-text-editor').on('keydown', e => { + if (e.keyCode === 27) { + e.stopPropagation(); + this.emitter.emit('on-cancel'); + return this.hide(); + } + } + ); + + this.subscriptions = new CompositeDisposable; + return this.subscriptions.add(atom.commands.add('atom-workspace', { + 'core:confirm': () => { + this.emitter.emit('on-confirm', this.editor.getText().trim()); + return this.hide(); + } + } + ) + ); + } + + onConfirm(callback) { return this.emitter.on('on-confirm', callback); } + onCancel(callback) { return this.emitter.on('on-cancel', callback); } + + focus() { + return this.find('atom-text-editor').focus(); + } + + show() { + this.panel.show(); + return this.focus(); + } + + hide() { + this.panel.hide(); + return this.destroy(); + } + + destroy() { + __guard__(this.subscriptions, x => x.dispose()); + return this.panel.destroy(); + } +}; + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 291140c3..1312cd18 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -1,150 +1,224 @@ -{CompositeDisposable, Emitter} = require 'atom' -{View} = require 'atom-space-pen-views' -ScriptInputView = require './script-input-view' - -module.exports = -class ScriptOptionsView extends View - - @content: -> - @div class: 'options-view', => - @div class: 'panel-heading', 'Configure Run Options' - @table => - @tr => - @td class: 'first', => @label 'Current Working Directory:' - @td class: 'second', => - @tag 'atom-text-editor', mini: '', class: 'editor mini', outlet: 'inputCwd' - @tr => - @td => @label 'Command' - @td => - @tag 'atom-text-editor', mini: '', class: 'editor mini', outlet: 'inputCommand' - @tr => - @td => @label 'Command Arguments:' - @td => - @tag 'atom-text-editor', mini: '', class: 'editor mini', outlet: 'inputCommandArgs' - @tr => - @td => @label 'Program Arguments:' - @td => - @tag 'atom-text-editor', mini: '', class: 'editor mini', outlet: 'inputScriptArgs' - @tr => - @td => @label 'Environment Variables:' - @td => - @tag 'atom-text-editor', mini: '', class: 'editor mini', outlet: 'inputEnv' - @div class: 'block buttons', => - css = 'btn inline-block-tight' - @button class: "btn #{css} cancel", outlet: 'buttonCancel', click: 'close', => - @span class: 'icon icon-x', 'Cancel' - @span class: 'right-buttons', => - @button class: "btn #{css} save-profile", outlet: 'buttonSaveProfile', click: 'saveProfile', => - @span class: 'icon icon-file-text', 'Save as profile' - @button class: "btn #{css} run", outlet: 'buttonRun', click: 'run', => - @span class: 'icon icon-playback-play', 'Run' - - initialize: (@runOptions) -> - @emitter = new Emitter - - @subscriptions = new CompositeDisposable - @subscriptions.add atom.commands.add 'atom-workspace', - 'core:cancel': => @hide() - 'core:close': => @hide() - 'script:close-options': => @hide() - 'script:run-options': => if @panel.isVisible() then @hide() else @show() - 'script:save-options': => @saveOptions() - - # handling focus traversal and run on enter - @find('atom-text-editor').on 'keydown', (e) => - return true unless e.keyCode == 9 or e.keyCode == 13 - - switch e.keyCode - when 9 - e.preventDefault() - e.stopPropagation() - row = @find(e.target).parents('tr:first').nextAll('tr:first') - if row.length then row.find('atom-text-editor').focus() else @buttonCancel.focus() - - when 13 then @run() - - @panel = atom.workspace.addModalPanel item: this - @panel.hide() - - splitArgs: (element) -> - args = element.get(0).getModel().getText().trim() - - if args.indexOf('"') == -1 and args.indexOf("'") == -1 - # no escaping, just split - return (item for item in args.split ' ' when item isnt '') - - replaces = {} - - regexps = [/"[^"]*"/ig, /'[^']*'/ig] - - # find strings in arguments - matches = (if matches? then matches else []).concat((args.match regex) or []) for regex in regexps - - # format replacement as bash comment to avoid replacing valid input - (replaces['`#match' + (Object.keys(replaces).length + 1) + '`'] = match) for match in matches - - # replace strings - (args = args.replace(new RegExp(part, 'g'), match)) for match, part of replaces - split = (item for item in args.split ' ' when item isnt '') - - replacer = (argument) -> - (argument = argument.replace(match, replacement)) for match, replacement of replaces - argument - - # restore strings, strip quotes - (replacer(argument).replace(/"|'/g, '') for argument in split) - - getOptions: -> - workingDirectory: @inputCwd.get(0).getModel().getText() - cmd: @inputCommand.get(0).getModel().getText() - cmdArgs: @splitArgs @inputCommandArgs - env: @inputEnv.get(0).getModel().getText() - scriptArgs: @splitArgs @inputScriptArgs - - saveOptions: -> - @runOptions[key] = value for key, value of @getOptions() - - onProfileSave: (callback) -> @emitter.on 'on-profile-save', callback - - # Saves specified options as new profile - saveProfile: -> - @hide() - - options = @getOptions() - - inputView = new ScriptInputView caption: 'Enter profile name:' - inputView.onCancel => - @show() - inputView.onConfirm (profileName) => - return unless profileName - editor.getModel().setText('') for editor in @find('atom-text-editor') - - # clean up the options - @saveOptions() - - # add to global profiles list - @emitter.emit 'on-profile-save', name: profileName, options: options - - inputView.show() - - close: -> - @hide() - - destroy: -> - @subscriptions?.dispose() - - show: -> - @panel.show() - @inputCwd.focus() - - hide: -> - @panel.hide() - atom.workspace.getActivePane().activate() - - run: -> - @saveOptions() - @hide() - atom.commands.dispatch @workspaceView(), 'script:run' - - workspaceView: -> - atom.views.getView(atom.workspace) +'use babel'; +import { CompositeDisposable, Emitter } from 'atom'; +import { View } from 'atom-space-pen-views'; +import ScriptInputView from './script-input-view'; + +export default class ScriptOptionsView extends View { + + static content() { + return this.div({class: 'options-view'}, () => { + this.div({class: 'panel-heading'}, 'Configure Run Options'); + this.table(() => { + this.tr(() => { + this.td({class: 'first'}, () => this.label('Current Working Directory:')); + return this.td({class: 'second'}, () => { + return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputCwd'}); + } + ); + } + ); + this.tr(() => { + this.td(() => this.label('Command')); + return this.td(() => { + return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputCommand'}); + } + ); + } + ); + this.tr(() => { + this.td(() => this.label('Command Arguments:')); + return this.td(() => { + return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputCommandArgs'}); + } + ); + } + ); + this.tr(() => { + this.td(() => this.label('Program Arguments:')); + return this.td(() => { + return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputScriptArgs'}); + } + ); + } + ); + return this.tr(() => { + this.td(() => this.label('Environment Variables:')); + return this.td(() => { + return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputEnv'}); + } + ); + } + ); + } + ); + return this.div({class: 'block buttons'}, () => { + let css = 'btn inline-block-tight'; + this.button({class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close'}, () => { + return this.span({class: 'icon icon-x'}, 'Cancel'); + } + ); + return this.span({class: 'right-buttons'}, () => { + this.button({class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile'}, () => { + return this.span({class: 'icon icon-file-text'}, 'Save as profile'); + } + ); + return this.button({class: `btn ${css} run`, outlet: 'buttonRun', click: 'run'}, () => { + return this.span({class: 'icon icon-playback-play'}, 'Run'); + } + ); + } + ); + } + ); + } + ); + } + + initialize(runOptions) { + this.runOptions = runOptions; + this.emitter = new Emitter; + + this.subscriptions = new CompositeDisposable; + this.subscriptions.add(atom.commands.add('atom-workspace', { + 'core:cancel': () => this.hide(), + 'core:close': () => this.hide(), + 'script:close-options': () => this.hide(), + 'script:run-options': () => this.panel.isVisible() ? this.hide() : this.show(), + 'script:save-options': () => this.saveOptions() + } + ) + ); + + // handling focus traversal and run on enter + this.find('atom-text-editor').on('keydown', e => { + if (e.keyCode !== 9 && e.keyCode !== 13) { return true; } + + switch (e.keyCode) { + case 9: + e.preventDefault(); + e.stopPropagation(); + let row = this.find(e.target).parents('tr:first').nextAll('tr:first'); + if (row.length) { return row.find('atom-text-editor').focus(); } else { return this.buttonCancel.focus(); } + + case 13: return this.run(); + } + } + ); + + this.panel = atom.workspace.addModalPanel({item: this}); + return this.panel.hide(); + } + + splitArgs(element) { + let args = element.get(0).getModel().getText().trim(); + + if (args.indexOf('"') === -1 && args.indexOf("'") === -1) { + // no escaping, just split + return (args.split(' ').filter((item) => item !== '').map((item) => item)); + } + + let replaces = {}; + + let regexps = [/"[^"]*"/ig, /'[^']*'/ig]; + + // find strings in arguments + for (let regex of regexps) { var matches = ((matches != null) ? matches : []).concat((args.match(regex)) || []); } + + // format replacement as bash comment to avoid replacing valid input + for (var match of matches) { (replaces[`\`#match${Object.keys(replaces).length + 1}\``] = match); } + + // replace strings + for (match in replaces) { let part = replaces[match]; (args = args.replace(new RegExp(part, 'g'), match)); } + let split = (args.split(' ').filter((item) => item !== '').map((item) => item)); + + let replacer = function(argument) { + for (match in replaces) { let replacement = replaces[match]; (argument = argument.replace(match, replacement)); } + return argument; + }; + + // restore strings, strip quotes + return (split.map((argument) => replacer(argument).replace(/"|'/g, ''))); + } + + getOptions() { + return { + workingDirectory: this.inputCwd.get(0).getModel().getText(), + cmd: this.inputCommand.get(0).getModel().getText(), + cmdArgs: this.splitArgs(this.inputCommandArgs), + env: this.inputEnv.get(0).getModel().getText(), + scriptArgs: this.splitArgs(this.inputScriptArgs) + }; + } + + saveOptions() { + return (() => { + let result = []; + let object = this.getOptions(); + for (let key in object) { + let value = object[key]; + result.push(this.runOptions[key] = value); + } + return result; + })(); + } + + onProfileSave(callback) { return this.emitter.on('on-profile-save', callback); } + + // Saves specified options as new profile + saveProfile() { + this.hide(); + + let options = this.getOptions(); + + let inputView = new ScriptInputView({caption: 'Enter profile name:'}); + inputView.onCancel(() => { + return this.show(); + } + ); + inputView.onConfirm(profileName => { + if (!profileName) { return; } + for (let editor of this.find('atom-text-editor')) { editor.getModel().setText(''); } + + // clean up the options + this.saveOptions(); + + // add to global profiles list + return this.emitter.emit('on-profile-save', {name: profileName, options}); + } + ); + + return inputView.show(); + } + + close() { + return this.hide(); + } + + destroy() { + return __guard__(this.subscriptions, x => x.dispose()); + } + + show() { + this.panel.show(); + return this.inputCwd.focus(); + } + + hide() { + this.panel.hide(); + return atom.workspace.getActivePane().activate(); + } + + run() { + this.saveOptions(); + this.hide(); + return atom.commands.dispatch(this.workspaceView(), 'script:run'); + } + + workspaceView() { + return atom.views.getView(atom.workspace); + } +}; + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} diff --git a/lib/script-options.js b/lib/script-options.js index bf5859c2..f91a95af 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -1,60 +1,73 @@ -_ = require 'underscore' - -module.exports = -class ScriptOptions - name: '' - description: '' - lang: '' - workingDirectory: null - cmd: null - cmdArgs: [] - env: null - scriptArgs: [] - - @createFromOptions: (name, options) -> - so = new ScriptOptions - so.name = name - so[key] = value for key, value of options - so - - toObject: -> - name: @name - description: @description - lang: @lang - workingDirectory: @workingDirectory - cmd: @cmd - cmdArgs: @cmdArgs - env: @env - scriptArgs: @scriptArgs - - # Public: Serializes the user specified environment vars as an {object} - # TODO: Support shells that allow a number as the first character in a variable? - # - # Returns an {Object} representation of the user specified environment. - getEnv: -> - return {} if not @env? or @env is '' - - mapping = {} - - for pair in @env.trim().split(';') - [key, value] = pair.split('=', 2) - mapping[key] = "#{value}".replace /"((?:[^"\\]|\\"|\\[^"])+)"/, '$1' - mapping[key] = mapping[key].replace /'((?:[^'\\]|\\'|\\[^'])+)'/, '$1' - - - mapping - - # Public: Merges two environment objects - # - # otherEnv - The {Object} to extend the parsed environment by - # - # Returns the merged environment {Object}. - mergedEnv: (otherEnv) -> - otherCopy = _.extend {}, otherEnv - mergedEnv = _.extend otherCopy, @getEnv() - - for key,value of mergedEnv - mergedEnv[key] = "#{value}".replace /"((?:[^"\\]|\\"|\\[^"])+)"/, '$1' - mergedEnv[key] = mergedEnv[key].replace /'((?:[^'\\]|\\'|\\[^'])+)'/, '$1' - - mergedEnv +'use babel'; +import _ from 'underscore'; + +export default class ScriptOptions { + static initClass() { + this.prototype.name = ''; + this.prototype.description = ''; + this.prototype.lang = ''; + this.prototype.workingDirectory = null; + this.prototype.cmd = null; + this.prototype.cmdArgs = []; + this.prototype.env = null; + this.prototype.scriptArgs = []; + } + + static createFromOptions(name, options) { + let so = new ScriptOptions; + so.name = name; + for (let key in options) { let value = options[key]; so[key] = value; } + return so; + } + + toObject() { + return { + name: this.name, + description: this.description, + lang: this.lang, + workingDirectory: this.workingDirectory, + cmd: this.cmd, + cmdArgs: this.cmdArgs, + env: this.env, + scriptArgs: this.scriptArgs + }; + } + + // Public: Serializes the user specified environment vars as an {object} + // TODO: Support shells that allow a number as the first character in a variable? + // + // Returns an {Object} representation of the user specified environment. + getEnv() { + if ((this.env == null) || this.env === '') { return {}; } + + let mapping = {}; + + for (let pair of this.env.trim().split(';')) { + let [key, value] = pair.split('=', 2); + mapping[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, '$1'); + mapping[key] = mapping[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); + } + + + return mapping; + } + + // Public: Merges two environment objects + // + // otherEnv - The {Object} to extend the parsed environment by + // + // Returns the merged environment {Object}. + mergedEnv(otherEnv) { + let otherCopy = _.extend({}, otherEnv); + let mergedEnv = _.extend(otherCopy, this.getEnv()); + + for (let key in mergedEnv) { + let value = mergedEnv[key]; + mergedEnv[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, '$1'); + mergedEnv[key] = mergedEnv[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); + } + + return mergedEnv; + } +}; +ScriptOptions.initClass(); diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 83dc2db2..354d6d57 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -1,139 +1,187 @@ -{CompositeDisposable, Emitter} = require 'atom' -{$$, View, SelectListView} = require 'atom-space-pen-views' -ScriptInputView = require './script-input-view' - -module.exports = -class ScriptProfileRunView extends SelectListView - initialize: (@profiles) -> - super - - @emitter = new Emitter - - @subscriptions = new CompositeDisposable - @subscriptions.add atom.commands.add 'atom-workspace', - 'core:cancel': => @hide() - 'core:close': => @hide() - 'script:run-with-profile': => if @panel.isVisible() then @hide() else @show() - - @setItems @profiles - @initializeView() - - initializeView: -> - @addClass 'overlay from-top script-profile-run-view' - # @panel.hide() - - @buttons = $$ -> - @div class: 'block buttons', => - css = 'btn inline-block-tight' - @button class: "btn cancel", => - @span class: 'icon icon-x', 'Cancel' - @button class: "btn rename", => - @span class: 'icon icon-pencil', 'Rename' - @button class: "btn delete", => - @span class: 'icon icon-trashcan', 'Delete' - @button class: "btn run", => - @span class: 'icon icon-playback-play', 'Run' - - # event handlers - @buttons.find('.btn.cancel').on 'click', => @hide() - @buttons.find('.btn.rename').on 'click', => @rename() - @buttons.find('.btn.delete').on 'click', => @delete() - @buttons.find('.btn.run').on 'click', => @run() - - # fix focus traversal (from run button to filter editor) - @buttons.find('.btn.run').on 'keydown', (e) => - if e.keyCode == 9 - e.stopPropagation() - e.preventDefault() - @focusFilterEditor() - - # hide panel on ecsape - @.on 'keydown', (e) => - @hide() if e.keyCode == 27 - @run() if e.keyCode == 13 - - # append buttons container - @append @buttons - - selector = '.rename, .delete, .run' - if @profiles.length then @buttons.find(selector).show() else @buttons.find(selector).hide() - - @panel = atom.workspace.addModalPanel item: this - @panel.hide() - - onProfileDelete: (callback) -> @emitter.on 'on-profile-delete', callback - onProfileChange: (callback) -> @emitter.on 'on-profile-change', callback - onProfileRun: (callback) -> @emitter.on 'on-profile-run', callback - - rename: -> - profile = @getSelectedItem() - return unless profile - - inputView = new ScriptInputView caption: 'Enter new profile name:', default: profile.name - inputView.onCancel => @show() - inputView.onConfirm (newProfileName) => - return unless newProfileName - @emitter.emit 'on-profile-change', profile: profile, key: 'name', value: newProfileName - - inputView.show() - - delete: -> - profile = @getSelectedItem() - return unless profile - - atom.confirm - message: 'Delete profile' - detailedMessage: "Are you sure you want to delete \"#{profile.name}\" profile?" - buttons: - No: => @focusFilterEditor() - Yes: => @emitter.emit 'on-profile-delete', profile - - getFilterKey: -> - 'name' - - getEmptyMessage: -> - 'No profiles found' - - viewForItem: (item) -> - $$ -> @li class: 'two-lines profile', => - @div class: 'primary-line name', => - @text item.name - @div class: 'secondary-line description', => - @text item.description - - cancel: -> - confirmed: (item) -> - - show: -> - @panel.show() - @focusFilterEditor() - - hide: -> - @panel.hide() - atom.workspace.getActivePane().activate() - - # Updates profiles - setProfiles: (profiles) -> - @profiles = profiles - @setItems @profiles - - # toggle profile controls - selector = '.rename, .delete, .run' - if @profiles.length then @buttons.find(selector).show() else @buttons.find(selector).hide() - - @populateList() - @focusFilterEditor() - - close: -> - - destroy: -> - @subscriptions?.dispose() - - run: -> - profile = @getSelectedItem() - return unless profile - - @emitter.emit 'on-profile-run', profile - @hide() - - +'use babel'; +import { CompositeDisposable, Emitter } from 'atom'; +import { $$, View, SelectListView } from 'atom-space-pen-views'; +import ScriptInputView from './script-input-view'; + +export default class ScriptProfileRunView extends SelectListView { + initialize(profiles) { + this.profiles = profiles; + super.initialize(...arguments); + + this.emitter = new Emitter; + + this.subscriptions = new CompositeDisposable; + this.subscriptions.add(atom.commands.add('atom-workspace', { + 'core:cancel': () => this.hide(), + 'core:close': () => this.hide(), + 'script:run-with-profile': () => this.panel.isVisible() ? this.hide() : this.show() + } + ) + ); + + this.setItems(this.profiles); + return this.initializeView(); + } + + initializeView() { + this.addClass('overlay from-top script-profile-run-view'); + // @panel.hide() + + this.buttons = $$(function() { + return this.div({class: 'block buttons'}, () => { + let css = 'btn inline-block-tight'; + this.button({class: "btn cancel"}, () => { + return this.span({class: 'icon icon-x'}, 'Cancel'); + } + ); + this.button({class: "btn rename"}, () => { + return this.span({class: 'icon icon-pencil'}, 'Rename'); + } + ); + this.button({class: "btn delete"}, () => { + return this.span({class: 'icon icon-trashcan'}, 'Delete'); + } + ); + return this.button({class: "btn run"}, () => { + return this.span({class: 'icon icon-playback-play'}, 'Run'); + } + ); + } + ); + }); + + // event handlers + this.buttons.find('.btn.cancel').on('click', () => this.hide()); + this.buttons.find('.btn.rename').on('click', () => this.rename()); + this.buttons.find('.btn.delete').on('click', () => this.delete()); + this.buttons.find('.btn.run').on('click', () => this.run()); + + // fix focus traversal (from run button to filter editor) + this.buttons.find('.btn.run').on('keydown', e => { + if (e.keyCode === 9) { + e.stopPropagation(); + e.preventDefault(); + return this.focusFilterEditor(); + } + } + ); + + // hide panel on ecsape + this.on('keydown', e => { + if (e.keyCode === 27) { this.hide(); } + if (e.keyCode === 13) { return this.run(); } + } + ); + + // append buttons container + this.append(this.buttons); + + let selector = '.rename, .delete, .run'; + if (this.profiles.length) { this.buttons.find(selector).show(); } else { this.buttons.find(selector).hide(); } + + this.panel = atom.workspace.addModalPanel({item: this}); + return this.panel.hide(); + } + + onProfileDelete(callback) { return this.emitter.on('on-profile-delete', callback); } + onProfileChange(callback) { return this.emitter.on('on-profile-change', callback); } + onProfileRun(callback) { return this.emitter.on('on-profile-run', callback); } + + rename() { + let profile = this.getSelectedItem(); + if (!profile) { return; } + + let inputView = new ScriptInputView({caption: 'Enter new profile name:', default: profile.name}); + inputView.onCancel(() => this.show()); + inputView.onConfirm(newProfileName => { + if (!newProfileName) { return; } + return this.emitter.emit('on-profile-change', {profile, key: 'name', value: newProfileName}); + } + ); + + return inputView.show(); + } + + delete() { + let profile = this.getSelectedItem(); + if (!profile) { return; } + + return atom.confirm({ + message: 'Delete profile', + detailedMessage: `Are you sure you want to delete \"${profile.name}\" profile?`, + buttons: { + No: () => this.focusFilterEditor(), + Yes: () => this.emitter.emit('on-profile-delete', profile) + } + }); + } + + getFilterKey() { + return 'name'; + } + + getEmptyMessage() { + return 'No profiles found'; + } + + viewForItem(item) { + return $$(function() { return this.li({class: 'two-lines profile'}, () => { + this.div({class: 'primary-line name'}, () => { + return this.text(item.name); + } + ); + return this.div({class: 'secondary-line description'}, () => { + return this.text(item.description); + } + ); + } + ); + }); + } + + cancel() {} + confirmed(item) {} + + show() { + this.panel.show(); + return this.focusFilterEditor(); + } + + hide() { + this.panel.hide(); + return atom.workspace.getActivePane().activate(); + } + + // Updates profiles + setProfiles(profiles) { + this.profiles = profiles; + this.setItems(this.profiles); + + // toggle profile controls + let selector = '.rename, .delete, .run'; + if (this.profiles.length) { this.buttons.find(selector).show(); } else { this.buttons.find(selector).hide(); } + + this.populateList(); + return this.focusFilterEditor(); + } + + close() {} + + destroy() { + return __guard__(this.subscriptions, x => x.dispose()); + } + + run() { + let profile = this.getSelectedItem(); + if (!profile) { return; } + + this.emitter.emit('on-profile-run', profile); + return this.hide(); + } +}; + + + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} diff --git a/lib/script-view.js b/lib/script-view.js index 78fbbda1..e51f650b 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -1,179 +1,227 @@ -{View, $$} = require 'atom-space-pen-views' - -HeaderView = require './header-view' -{MessagePanelView} = require 'atom-message-panel' -AnsiFilter = require 'ansi-to-html' -stripAnsi = require 'strip-ansi' -linkPaths = require './link-paths' -_ = require 'underscore' - -# Runs a portion of a script through an interpreter and displays it line by line -module.exports = -class ScriptView extends MessagePanelView - constructor: -> - @ansiFilter = new AnsiFilter - - @headerView = new HeaderView - - super(title: @headerView, rawTitle: true, closeMethod: 'destroy') - - @addClass('script-view') - @addShowInTabIcon() - - linkPaths.listen @body - - addShowInTabIcon: -> - icon = $$ -> - @div - class: 'heading-show-in-tab inline-block icon-file-text' - style: 'cursor: pointer;' - outlet: 'btnShowInTab' +'use babel'; +import { View, $$ } from 'atom-space-pen-views'; + +import HeaderView from './header-view'; +import { MessagePanelView } from 'atom-message-panel'; +import AnsiFilter from 'ansi-to-html'; +import stripAnsi from 'strip-ansi'; +import linkPaths from './link-paths'; +import _ from 'underscore'; + +// Runs a portion of a script through an interpreter and displays it line by line +export default class ScriptView extends MessagePanelView { + static initClass() { + + this.prototype.scrollTimeout = null; + } + constructor() { + this.ansiFilter = new AnsiFilter; + + this.headerView = new HeaderView; + + super({title: this.headerView, rawTitle: true, closeMethod: 'destroy'}); + + this.showInTab = this.showInTab.bind(this); + this.setHeaderAndShowExecutionTime = this.setHeaderAndShowExecutionTime.bind(this); + this.addClass('script-view'); + this.addShowInTabIcon(); + + linkPaths.listen(this.body); + } + + addShowInTabIcon() { + let icon = $$(function() { + return this.div({ + class: 'heading-show-in-tab inline-block icon-file-text', + style: 'cursor: pointer;', + outlet: 'btnShowInTab', title: 'Show output in new tab' - - icon.click @showInTab - icon.insertBefore @btnAutoScroll - - showInTab: => - # concat output - output = '' - output += message.text() for message in @messages - - # represent command context - context = '' - if @commandContext - context = "[Command: #{@commandContext.getRepresentation()}]\n" - - # open new tab and set content to output - atom.workspace.open().then (editor) -> - editor.setText stripAnsi(context + output) - - setHeaderAndShowExecutionTime: (returnCode, executionTime) => - if (executionTime?) - @display 'stdout', '[Finished in '+executionTime.toString()+'s]' - else - @display 'stdout' - - if returnCode is 0 - @setHeaderStatus 'stop' - else - @setHeaderStatus 'err' - - resetView: (title = 'Loading...') -> - # Display window and load message - - # First run, create view - @attach() unless @hasParent() - - @setHeaderTitle title - @setHeaderStatus 'start' - - # Get script view ready - @clear() - - removePanel: -> - @stop() - @detach() - # the 'close' method from MessagePanelView actually destroys the panel - ScriptView.__super__.close.apply(this) - - # This is triggered when hitting the 'close' button on the panel - # We are not actually closing the panel here since we want to trigger - # 'script:close-view' which will eventually remove the panel via 'removePanel' - close: -> - workspaceView = atom.views.getView(atom.workspace) - atom.commands.dispatch workspaceView, 'script:close-view' - - stop: -> - @display 'stdout', '^C' - @setHeaderStatus 'kill' - - createGitHubIssueLink: (argType, lang) -> - title = "Add #{argType} support for #{lang}" - body = """ - ##### Platform: `#{process.platform}` - --- - """ - encodedURI = encodeURI("https://github.com/rgbkrk/atom-script/issues/new?title=#{title}&body=#{body}") - # NOTE: Replace "#" after regular encoding so we don't double escape it. - encodedURI = encodedURI.replace(/#/g, '%23') - - err = $$ -> - @p class: 'block', "#{argType} runner not available for #{lang}." - @p class: 'block', => - @text 'If it should exist, add an ' - @a href: encodedURI, 'issue on GitHub' - @text ', or send your own pull request.' - @handleError(err) - - showUnableToRunError: (command) -> - @add $$ -> - @h1 'Unable to run' - @pre _.escape command - @h2 'Did you start Atom from the command line?' - @pre ' atom .' - @h2 'Is it in your PATH?' - @pre "PATH: #{_.escape process.env.PATH}" - - showNoLanguageSpecified: -> - err = $$ -> - @p 'You must select a language in the lower right, or save the file - with an appropriate extension.' - @handleError(err) - - showLanguageNotSupported: (lang) -> - err = $$ -> - @p class: 'block', "Command not configured for #{lang}!" - @p class: 'block', => - @text 'Add an ' - @a href: "https://github.com/rgbkrk/atom-script/issues/\ - new?title=Add%20support%20for%20#{lang}", 'issue on GitHub' - @text ' or send your own Pull Request.' - @handleError(err) - - handleError: (err) -> - # Display error and kill process - @setHeaderTitle 'Error' - @setHeaderStatus 'err' - @add(err) - @stop() - - setHeaderStatus: (status) -> - @headerView.setStatus status - - setHeaderTitle: (title) -> - @headerView.title.text title - - display: (css, line) -> - if atom.config.get('script.escapeConsoleOutput') - line = _.escape(line) - - line = @ansiFilter.toHtml(line) - line = linkPaths(line) - - {clientHeight, scrollTop, scrollHeight} = @body[0] - # indicates that the panel is scrolled to the bottom, thus we know that - # we are not interfering with the user's manual scrolling - atEnd = scrollTop >= (scrollHeight - clientHeight) - - @add $$ -> - @pre class: "line #{css}", => - @raw line - - if atom.config.get('script.scrollWithOutput') and atEnd - # Scroll down in a polling loop 'cause - # we don't know when the reflow will finish. - # See: http://stackoverflow.com/q/5017923/407845 - do @checkScrollAgain 5 - - scrollTimeout: null - checkScrollAgain: (times) -> - => - @body.scrollToBottom() - - clearTimeout @scrollTimeout - if times > 1 - @scrollTimeout = setTimeout @checkScrollAgain(times - 1), 50 - - copyResults: -> - if @results - atom.clipboard.write stripAnsi(@results) + }); + }); + + icon.click(this.showInTab); + return icon.insertBefore(this.btnAutoScroll); + } + + showInTab() { + // concat output + let output = ''; + for (let message of this.messages) { output += message.text(); } + + // represent command context + let context = ''; + if (this.commandContext) { + context = `[Command: ${this.commandContext.getRepresentation()}]\n`; + } + + // open new tab and set content to output + return atom.workspace.open().then(editor => editor.setText(stripAnsi(context + output))); + } + + setHeaderAndShowExecutionTime(returnCode, executionTime) { + if (executionTime != null) { + this.display('stdout', `[Finished in ${executionTime.toString()}s]`); + } else { + this.display('stdout'); + } + + if (returnCode === 0) { + return this.setHeaderStatus('stop'); + } else { + return this.setHeaderStatus('err'); + } + } + + resetView(title = 'Loading...') { + // Display window and load message + + // First run, create view + if (!this.hasParent()) { this.attach(); } + + this.setHeaderTitle(title); + this.setHeaderStatus('start'); + + // Get script view ready + return this.clear(); + } + + removePanel() { + this.stop(); + this.detach(); + // the 'close' method from MessagePanelView actually destroys the panel + return ScriptView.__super__.close.apply(this); + } + + // This is triggered when hitting the 'close' button on the panel + // We are not actually closing the panel here since we want to trigger + // 'script:close-view' which will eventually remove the panel via 'removePanel' + close() { + let workspaceView = atom.views.getView(atom.workspace); + return atom.commands.dispatch(workspaceView, 'script:close-view'); + } + + stop() { + this.display('stdout', '^C'); + return this.setHeaderStatus('kill'); + } + + createGitHubIssueLink(argType, lang) { + let title = `Add ${argType} support for ${lang}`; + let body = `\ +##### Platform: \`${process.platform}\` +---\ +`; + let encodedURI = encodeURI(`https://github.com/rgbkrk/atom-script/issues/new?title=${title}&body=${body}`); + // NOTE: Replace "#" after regular encoding so we don't double escape it. + encodedURI = encodedURI.replace(/#/g, '%23'); + + let err = $$(function() { + this.p({class: 'block'}, `${argType} runner not available for ${lang}.`); + return this.p({class: 'block'}, () => { + this.text('If it should exist, add an '); + this.a({href: encodedURI}, 'issue on GitHub'); + return this.text(', or send your own pull request.'); + } + ); + }); + return this.handleError(err); + } + + showUnableToRunError(command) { + return this.add($$(function() { + this.h1('Unable to run'); + this.pre(_.escape(command)); + this.h2('Did you start Atom from the command line?'); + this.pre(' atom .'); + this.h2('Is it in your PATH?'); + return this.pre(`PATH: ${_.escape(process.env.PATH)}`); + }) + ); + } + + showNoLanguageSpecified() { + let err = $$(function() { + return this.p(`You must select a language in the lower right, or save the file \ +with an appropriate extension.` + ); + }); + return this.handleError(err); + } + + showLanguageNotSupported(lang) { + let err = $$(function() { + this.p({class: 'block'}, `Command not configured for ${lang}!`); + return this.p({class: 'block'}, () => { + this.text('Add an '); + this.a({href: `https://github.com/rgbkrk/atom-script/issues/\ +new?title=Add%20support%20for%20${lang}` + }, 'issue on GitHub'); + return this.text(' or send your own Pull Request.'); + } + ); + }); + return this.handleError(err); + } + + handleError(err) { + // Display error and kill process + this.setHeaderTitle('Error'); + this.setHeaderStatus('err'); + this.add(err); + return this.stop(); + } + + setHeaderStatus(status) { + return this.headerView.setStatus(status); + } + + setHeaderTitle(title) { + return this.headerView.title.text(title); + } + + display(css, line) { + if (atom.config.get('script.escapeConsoleOutput')) { + line = _.escape(line); + } + + line = this.ansiFilter.toHtml(line); + line = linkPaths(line); + + let {clientHeight, scrollTop, scrollHeight} = this.body[0]; + // indicates that the panel is scrolled to the bottom, thus we know that + // we are not interfering with the user's manual scrolling + let atEnd = scrollTop >= (scrollHeight - clientHeight); + + this.add($$(function() { + return this.pre({class: `line ${css}`}, () => { + return this.raw(line); + } + ); + }) + ); + + if (atom.config.get('script.scrollWithOutput') && atEnd) { + // Scroll down in a polling loop 'cause + // we don't know when the reflow will finish. + // See: http://stackoverflow.com/q/5017923/407845 + return this.checkScrollAgain(5)(); + } + } + checkScrollAgain(times) { + return () => { + this.body.scrollToBottom(); + + clearTimeout(this.scrollTimeout); + if (times > 1) { + return this.scrollTimeout = setTimeout(this.checkScrollAgain(times - 1), 50); + } + }; + } + + copyResults() { + if (this.results) { + return atom.clipboard.write(stripAnsi(this.results)); + } + } +}; +ScriptView.initClass(); diff --git a/lib/script.js b/lib/script.js index b44f8ad0..3f3b02c8 100644 --- a/lib/script.js +++ b/lib/script.js @@ -1,192 +1,222 @@ -CodeContextBuilder = require './code-context-builder' -GrammarUtils = require './grammar-utils' -Runner = require './runner' -Runtime = require './runtime' -ScriptOptions = require './script-options' -ScriptOptionsView = require './script-options-view' -ScriptProfileRunView = require './script-profile-run-view' -ScriptView = require './script-view' -ViewRuntimeObserver = require './view-runtime-observer' - -{CompositeDisposable} = require 'atom' - -module.exports = - config: - enableExecTime: - title: 'Output the time it took to execute the script' - type: 'boolean' +'use babel'; +import CodeContextBuilder from './code-context-builder'; +import GrammarUtils from './grammar-utils'; +import Runner from './runner'; +import Runtime from './runtime'; +import ScriptOptions from './script-options'; +import ScriptOptionsView from './script-options-view'; +import ScriptProfileRunView from './script-profile-run-view'; +import ScriptView from './script-view'; +import ViewRuntimeObserver from './view-runtime-observer'; + +import { CompositeDisposable } from 'atom'; + +export default { + config: { + enableExecTime: { + title: 'Output the time it took to execute the script', + type: 'boolean', default: true - escapeConsoleOutput: - title: 'HTML escape console output' - type: 'boolean' + }, + escapeConsoleOutput: { + title: 'HTML escape console output', + type: 'boolean', default: true - ignoreSelection: - title: 'Ignore selection (file-based runs only)' - type: 'boolean' + }, + ignoreSelection: { + title: 'Ignore selection (file-based runs only)', + type: 'boolean', default: false - scrollWithOutput: - title: 'Scroll with output' - type: 'boolean' + }, + scrollWithOutput: { + title: 'Scroll with output', + type: 'boolean', default: true - stopOnRerun: - title: 'Stop running process on rerun' - type: 'boolean' + }, + stopOnRerun: { + title: 'Stop running process on rerun', + type: 'boolean', default: false - cwdBehavior: - title: 'Default CWD Behavior' - description: 'If no Run Options are set, this setting decides how to determine the CWD' - type: 'string' - default: 'First project directory' + }, + cwdBehavior: { + title: 'Default CWD Behavior', + description: 'If no Run Options are set, this setting decides how to determine the CWD', + type: 'string', + default: 'First project directory', enum: [ - 'First project directory' - 'Project directory of the script' + 'First project directory', + 'Project directory of the script', 'Directory of the script' ] - # For some reason, the text of these options does not show in package settings view - # default: 'firstProj' - # enum: [ - # {value: 'firstProj', description: 'First project directory (if there is one)'} - # {value: 'scriptProj', description: 'Project directory of the script (if there is one)'} - # {value: 'scriptDir', description: 'Directory of the script'} - # ] - scriptView: null - scriptOptionsView: null - scriptProfileRunView: null - scriptOptions: null - scriptProfiles: [] - - activate: (state) -> - @scriptView = new ScriptView state.scriptViewState - @scriptOptions = new ScriptOptions() - @scriptOptionsView = new ScriptOptionsView @scriptOptions - - # profiles loading - @scriptProfiles = [] - if state.profiles - for profile in state.profiles - so = ScriptOptions.createFromOptions profile.name, profile - @scriptProfiles.push so - - @scriptProfileRunView = new ScriptProfileRunView @scriptProfiles - - codeContextBuilder = new CodeContextBuilder - runner = new Runner(@scriptOptions) - - observer = new ViewRuntimeObserver(@scriptView) - - @runtime = new Runtime(runner, codeContextBuilder, [observer]) - - @subscriptions = new CompositeDisposable - @subscriptions.add atom.commands.add 'atom-workspace', - 'core:cancel': => @closeScriptViewAndStopRunner() - 'core:close': => @closeScriptViewAndStopRunner() - 'script:close-view': => @closeScriptViewAndStopRunner() - 'script:copy-run-results': => @scriptView.copyResults() - 'script:kill-process': => @runtime.stop() - 'script:run-by-line-number': => @runtime.execute('Line Number Based') - 'script:run': => @runtime.execute('Selection Based') - - # profile created - @scriptOptionsView.onProfileSave (profileData) => - # create and fill out profile - profile = ScriptOptions.createFromOptions profileData.name, profileData.options - - codeContext = @runtime.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), - "Selection Based") - profile.lang = codeContext.lang - - # formatting description - opts = profile.toObject() - desc = "Language: #{codeContext.lang}" - desc += ", Command: #{opts.cmd}" if opts.cmd - desc += " #{opts.cmdArgs.join ' '}" if opts.cmdArgs and opts.cmd - - profile.description = desc - @scriptProfiles.push profile - - @scriptOptionsView.hide() - @scriptProfileRunView.show() - @scriptProfileRunView.setProfiles @scriptProfiles - - # profile deleted - @scriptProfileRunView.onProfileDelete (profile) => - index = @scriptProfiles.indexOf profile - return unless index != -1 - - @scriptProfiles.splice index, 1 if index != -1 - @scriptProfileRunView.setProfiles @scriptProfiles - - # profile renamed - @scriptProfileRunView.onProfileChange (data) => - index = @scriptProfiles.indexOf data.profile - return unless index != -1 and @scriptProfiles[index][data.key]? - - @scriptProfiles[index][data.key] = data.value - @scriptProfileRunView.show() - @scriptProfileRunView.setProfiles @scriptProfiles - - # profile renamed - @scriptProfileRunView.onProfileRun (profile) => - return unless profile - @runtime.execute 'Selection Based', null, profile - - deactivate: -> - @runtime.destroy() - @scriptView.removePanel() - @scriptOptionsView.close() - @scriptProfileRunView.close() - @subscriptions.dispose() - GrammarUtils.deleteTempFiles() - - closeScriptViewAndStopRunner: -> - @runtime.stop() - @scriptView.removePanel() - - # Public - # - # Service method that provides the default runtime that's configurable through Atom editor - # Use this service if you want to directly show the script's output in the Atom editor - # - # **Do not destroy this {Runtime} instance!** By doing so you'll break this plugin! - # - # Also note that the Script package isn't activated until you actually try to use it. - # That's why this service won't be automatically consumed. To be sure you consume it - # you may need to manually activate the package: - # - # atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! - # - # see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example - provideDefaultRuntime: -> - @runtime - - # Public - # - # Service method that provides a blank runtime. You are free to configure any aspect of it: - # * Add observer (`runtime.addObserver(observer)`) - see {ViewRuntimeObserver} for an example - # * configure script options (`runtime.scriptOptions`) - # - # In contrast to `provideDefaultRuntime` you should dispose this {Runtime} when - # you no longer need it. - # - # Also note that the Script package isn't activated until you actually try to use it. - # That's why this service won't be automatically consumed. To be sure you consume it - # you may need to manually activate the package: - # - # atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! - # - # see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example - provideBlankRuntime: -> - runner = new Runner(new ScriptOptions) - codeContextBuilder = new CodeContextBuilder - - new Runtime(runner, codeContextBuilder, []) - - serialize: -> - # TODO: True serialization needs to take the options view into account - # and handle deserialization - serializedProfiles = [] - serializedProfiles.push profile.toObject() for profile in @scriptProfiles - - scriptViewState: @scriptView.serialize() - scriptOptionsViewState: @scriptOptionsView.serialize() - profiles: serializedProfiles + } + }, + // For some reason, the text of these options does not show in package settings view + // default: 'firstProj' + // enum: [ + // {value: 'firstProj', description: 'First project directory (if there is one)'} + // {value: 'scriptProj', description: 'Project directory of the script (if there is one)'} + // {value: 'scriptDir', description: 'Directory of the script'} + // ] + scriptView: null, + scriptOptionsView: null, + scriptProfileRunView: null, + scriptOptions: null, + scriptProfiles: [], + + activate(state) { + this.scriptView = new ScriptView(state.scriptViewState); + this.scriptOptions = new ScriptOptions(); + this.scriptOptionsView = new ScriptOptionsView(this.scriptOptions); + + // profiles loading + this.scriptProfiles = []; + if (state.profiles) { + for (let profile of state.profiles) { + let so = ScriptOptions.createFromOptions(profile.name, profile); + this.scriptProfiles.push(so); + } + } + + this.scriptProfileRunView = new ScriptProfileRunView(this.scriptProfiles); + + let codeContextBuilder = new CodeContextBuilder; + let runner = new Runner(this.scriptOptions); + + let observer = new ViewRuntimeObserver(this.scriptView); + + this.runtime = new Runtime(runner, codeContextBuilder, [observer]); + + this.subscriptions = new CompositeDisposable; + this.subscriptions.add(atom.commands.add('atom-workspace', { + 'core:cancel': () => this.closeScriptViewAndStopRunner(), + 'core:close': () => this.closeScriptViewAndStopRunner(), + 'script:close-view': () => this.closeScriptViewAndStopRunner(), + 'script:copy-run-results': () => this.scriptView.copyResults(), + 'script:kill-process': () => this.runtime.stop(), + 'script:run-by-line-number': () => this.runtime.execute('Line Number Based'), + 'script:run': () => this.runtime.execute('Selection Based') + } + ) + ); + + // profile created + this.scriptOptionsView.onProfileSave(profileData => { + // create and fill out profile + let profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); + + let codeContext = this.runtime.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), + "Selection Based"); + profile.lang = codeContext.lang; + + // formatting description + let opts = profile.toObject(); + let desc = `Language: ${codeContext.lang}`; + if (opts.cmd) { desc += `, Command: ${opts.cmd}`; } + if (opts.cmdArgs && opts.cmd) { desc += ` ${opts.cmdArgs.join(' ')}`; } + + profile.description = desc; + this.scriptProfiles.push(profile); + + this.scriptOptionsView.hide(); + this.scriptProfileRunView.show(); + return this.scriptProfileRunView.setProfiles(this.scriptProfiles); + } + ); + + // profile deleted + this.scriptProfileRunView.onProfileDelete(profile => { + let index = this.scriptProfiles.indexOf(profile); + if (index === -1) { return; } + + if (index !== -1) { this.scriptProfiles.splice(index, 1); } + return this.scriptProfileRunView.setProfiles(this.scriptProfiles); + } + ); + + // profile renamed + this.scriptProfileRunView.onProfileChange(data => { + let index = this.scriptProfiles.indexOf(data.profile); + if (index === -1 || (this.scriptProfiles[index][data.key] == null)) { return; } + + this.scriptProfiles[index][data.key] = data.value; + this.scriptProfileRunView.show(); + return this.scriptProfileRunView.setProfiles(this.scriptProfiles); + } + ); + + // profile renamed + return this.scriptProfileRunView.onProfileRun(profile => { + if (!profile) { return; } + return this.runtime.execute('Selection Based', null, profile); + } + ); + }, + + deactivate() { + this.runtime.destroy(); + this.scriptView.removePanel(); + this.scriptOptionsView.close(); + this.scriptProfileRunView.close(); + this.subscriptions.dispose(); + return GrammarUtils.deleteTempFiles(); + }, + + closeScriptViewAndStopRunner() { + this.runtime.stop(); + return this.scriptView.removePanel(); + }, + + // Public + // + // Service method that provides the default runtime that's configurable through Atom editor + // Use this service if you want to directly show the script's output in the Atom editor + // + // **Do not destroy this {Runtime} instance!** By doing so you'll break this plugin! + // + // Also note that the Script package isn't activated until you actually try to use it. + // That's why this service won't be automatically consumed. To be sure you consume it + // you may need to manually activate the package: + // + // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! + // + // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example + provideDefaultRuntime() { + return this.runtime; + }, + + // Public + // + // Service method that provides a blank runtime. You are free to configure any aspect of it: + // * Add observer (`runtime.addObserver(observer)`) - see {ViewRuntimeObserver} for an example + // * configure script options (`runtime.scriptOptions`) + // + // In contrast to `provideDefaultRuntime` you should dispose this {Runtime} when + // you no longer need it. + // + // Also note that the Script package isn't activated until you actually try to use it. + // That's why this service won't be automatically consumed. To be sure you consume it + // you may need to manually activate the package: + // + // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! + // + // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example + provideBlankRuntime() { + let runner = new Runner(new ScriptOptions); + let codeContextBuilder = new CodeContextBuilder; + + return new Runtime(runner, codeContextBuilder, []); + }, + + serialize() { + // TODO: True serialization needs to take the options view into account + // and handle deserialization + let serializedProfiles = []; + for (let profile of this.scriptProfiles) { serializedProfiles.push(profile.toObject()); } + + return { + scriptViewState: this.scriptView.serialize(), + scriptOptionsViewState: this.scriptOptionsView.serialize(), + profiles: serializedProfiles + }; + } +}; diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index de58bd1d..51ee2d9e 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -1,35 +1,81 @@ -{CompositeDisposable} = require 'atom' +'use babel'; +import { CompositeDisposable } from 'atom'; -module.exports = -class ViewRuntimeObserver - constructor: (@view, @subscriptions = new CompositeDisposable) -> +export default class ViewRuntimeObserver { + constructor(view, subscriptions = new CompositeDisposable) { + this.view = view; + this.subscriptions = subscriptions; + } - observe: (runtime) -> - @subscriptions.add runtime.onStart => - @view.resetView() - @subscriptions.add runtime.onStarted (ev) => - @view.commandContext = ev - @subscriptions.add runtime.onStopped => - @view.stop() - @subscriptions.add runtime.onDidWriteToStderr (ev) => - @view.display 'stderr', ev.message - @subscriptions.add runtime.onDidWriteToStdout (ev) => - @view.display 'stdout', ev.message - @subscriptions.add runtime.onDidExit (ev) => - @view.setHeaderAndShowExecutionTime ev.returnCode, ev.executionTime - @subscriptions.add runtime.onDidNotRun (ev) => - @view.showUnableToRunError ev.command - @subscriptions.add runtime.onDidContextCreate (ev) => - title = "#{ev.lang} - " + ev.filename + (if ev.lineNumber? then ":#{ev.lineNumber}" else '') - @view.setHeaderTitle title - @subscriptions.add runtime.onDidNotSpecifyLanguage => - @view.showNoLanguageSpecified() - @subscriptions.add runtime.onDidNotSupportLanguage (ev) => - @view.showLanguageNotSupported ev.lang - @subscriptions.add runtime.onDidNotSupportMode (ev) => - @view.createGitHubIssueLink ev.argType, ev.lang - @subscriptions.add runtime.onDidNotBuildArgs (ev) => - @view.handleError ev.error + observe(runtime) { + this.subscriptions.add(runtime.onStart(() => { + return this.view.resetView(); + } + ) + ); + this.subscriptions.add(runtime.onStarted(ev => { + return this.view.commandContext = ev; + } + ) + ); + this.subscriptions.add(runtime.onStopped(() => { + return this.view.stop(); + } + ) + ); + this.subscriptions.add(runtime.onDidWriteToStderr(ev => { + return this.view.display('stderr', ev.message); + } + ) + ); + this.subscriptions.add(runtime.onDidWriteToStdout(ev => { + return this.view.display('stdout', ev.message); + } + ) + ); + this.subscriptions.add(runtime.onDidExit(ev => { + return this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime); + } + ) + ); + this.subscriptions.add(runtime.onDidNotRun(ev => { + return this.view.showUnableToRunError(ev.command); + } + ) + ); + this.subscriptions.add(runtime.onDidContextCreate(ev => { + let title = `${ev.lang} - ` + ev.filename + ((ev.lineNumber != null) ? `:${ev.lineNumber}` : ''); + return this.view.setHeaderTitle(title); + } + ) + ); + this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => { + return this.view.showNoLanguageSpecified(); + } + ) + ); + this.subscriptions.add(runtime.onDidNotSupportLanguage(ev => { + return this.view.showLanguageNotSupported(ev.lang); + } + ) + ); + this.subscriptions.add(runtime.onDidNotSupportMode(ev => { + return this.view.createGitHubIssueLink(ev.argType, ev.lang); + } + ) + ); + return this.subscriptions.add(runtime.onDidNotBuildArgs(ev => { + return this.view.handleError(ev.error); + } + ) + ); + } - destroy: -> - @subscriptions?.dispose() + destroy() { + return __guard__(this.subscriptions, x => x.dispose()); + } +}; + +function __guard__(value, transform) { + return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; +} From d347d846dc9c7317b4fa9b2d09684c278be4023a Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 00:34:23 +0100 Subject: [PATCH 126/410] Tests pass -> Prepare for converting --- ...e-context-builder-spec.coffee => code-context-builder-spec.js} | 0 spec/{code-context-spec.coffee => code-context-spec.js} | 0 spec/grammar-utils/{lisp-spec.coffee => lisp-spec.js} | 0 spec/{grammars-spec.coffee => grammars-spec.js} | 0 spec/{link-paths-spec.coffee => link-paths-spec.js} | 0 spec/{runner-spec.coffee => runner-spec.js} | 0 spec/{script-options-spec.coffee => script-options-spec.js} | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename spec/{code-context-builder-spec.coffee => code-context-builder-spec.js} (100%) rename spec/{code-context-spec.coffee => code-context-spec.js} (100%) rename spec/grammar-utils/{lisp-spec.coffee => lisp-spec.js} (100%) rename spec/{grammars-spec.coffee => grammars-spec.js} (100%) rename spec/{link-paths-spec.coffee => link-paths-spec.js} (100%) rename spec/{runner-spec.coffee => runner-spec.js} (100%) rename spec/{script-options-spec.coffee => script-options-spec.js} (100%) diff --git a/spec/code-context-builder-spec.coffee b/spec/code-context-builder-spec.js similarity index 100% rename from spec/code-context-builder-spec.coffee rename to spec/code-context-builder-spec.js diff --git a/spec/code-context-spec.coffee b/spec/code-context-spec.js similarity index 100% rename from spec/code-context-spec.coffee rename to spec/code-context-spec.js diff --git a/spec/grammar-utils/lisp-spec.coffee b/spec/grammar-utils/lisp-spec.js similarity index 100% rename from spec/grammar-utils/lisp-spec.coffee rename to spec/grammar-utils/lisp-spec.js diff --git a/spec/grammars-spec.coffee b/spec/grammars-spec.js similarity index 100% rename from spec/grammars-spec.coffee rename to spec/grammars-spec.js diff --git a/spec/link-paths-spec.coffee b/spec/link-paths-spec.js similarity index 100% rename from spec/link-paths-spec.coffee rename to spec/link-paths-spec.js diff --git a/spec/runner-spec.coffee b/spec/runner-spec.js similarity index 100% rename from spec/runner-spec.coffee rename to spec/runner-spec.js diff --git a/spec/script-options-spec.coffee b/spec/script-options-spec.js similarity index 100% rename from spec/script-options-spec.coffee rename to spec/script-options-spec.js From c6993e0ccbada82ed0a65d73a679b17c35058598 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 00:49:44 +0100 Subject: [PATCH 127/410] Convert tests to ES6 --- spec/code-context-builder-spec.js | 107 ++++++++------ spec/code-context-spec.js | 232 ++++++++++++++++-------------- spec/grammar-utils/lisp-spec.js | 85 ++++++----- spec/grammars-spec.js | 231 ++++++++++++++++------------- spec/link-paths-spec.js | 55 +++---- spec/runner-spec.js | 203 +++++++++++++++----------- spec/script-options-spec.js | 83 ++++++----- 7 files changed, 569 insertions(+), 427 deletions(-) diff --git a/spec/code-context-builder-spec.js b/spec/code-context-builder-spec.js index 3bf5981a..0db0a2a3 100644 --- a/spec/code-context-builder-spec.js +++ b/spec/code-context-builder-spec.js @@ -1,52 +1,67 @@ -CodeContextBuilder = require '../lib/code-context-builder' +'use babel'; +import CodeContextBuilder from '../lib/code-context-builder'; -describe 'CodeContextBuilder', -> - beforeEach -> - @editorMock = - getTitle: -> - getPath: -> - getText: -> - getLastSelection: -> - isEmpty: -> - false - getGrammar: -> - name: 'JavaScript' - getLastCursor: -> - save: -> +describe('CodeContextBuilder', function() { + beforeEach(function() { + this.editorMock = { + getTitle() {}, + getPath() {}, + getText() {}, + getLastSelection() { + return { + isEmpty() { + return false; + } + }; + }, + getGrammar() { + return {name: 'JavaScript'}; + }, + getLastCursor() {}, + save() {} + }; - spyOn(@editorMock, 'getTitle').andReturn('file.js') - spyOn(@editorMock, 'getPath').andReturn('path/to/file.js') - spyOn(@editorMock, 'getText').andReturn('console.log("hello")\n') - @codeContextBuilder = new CodeContextBuilder + spyOn(this.editorMock, 'getTitle').andReturn('file.js'); + spyOn(this.editorMock, 'getPath').andReturn('path/to/file.js'); + spyOn(this.editorMock, 'getText').andReturn('console.log("hello")\n'); + return this.codeContextBuilder = new CodeContextBuilder; + }); - describe 'initCodeContext', -> - it 'sets correct text source for empty selection', -> - selection = - isEmpty: -> true - spyOn(@editorMock, 'getLastSelection').andReturn(selection) - codeContext = @codeContextBuilder.initCodeContext(@editorMock) - expect(codeContext.textSource).toEqual(@editorMock) - expect(codeContext.filename).toEqual('file.js') - expect(codeContext.filepath).toEqual('path/to/file.js') + describe('initCodeContext', function() { + it('sets correct text source for empty selection', function() { + let selection = + {isEmpty() { return true; }}; + spyOn(this.editorMock, 'getLastSelection').andReturn(selection); + let codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); + expect(codeContext.textSource).toEqual(this.editorMock); + expect(codeContext.filename).toEqual('file.js'); + return expect(codeContext.filepath).toEqual('path/to/file.js'); + }); - it 'sets correct text source for non-empty selection', -> - selection = - isEmpty: -> false - spyOn(@editorMock, 'getLastSelection').andReturn(selection) - codeContext = @codeContextBuilder.initCodeContext(@editorMock) - expect(codeContext.textSource).toEqual(selection) - expect(codeContext.selection).toEqual(selection) + it('sets correct text source for non-empty selection', function() { + let selection = + {isEmpty() { return false; }}; + spyOn(this.editorMock, 'getLastSelection').andReturn(selection); + let codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); + expect(codeContext.textSource).toEqual(selection); + return expect(codeContext.selection).toEqual(selection); + }); - it 'sets correct lang', -> - codeContext = @codeContextBuilder.initCodeContext(@editorMock) - expect(codeContext.lang).toEqual('JavaScript') + return it('sets correct lang', function() { + let codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); + return expect(codeContext.lang).toEqual('JavaScript'); + }); + }); - describe 'buildCodeContext', -> - for argType in ['Selection Based', 'Line Number Based'] - it "sets lineNumber with screenRow + 1 when #{argType}", -> - cursor = - getScreenRow: -> 1 - spyOn(@editorMock, 'getLastCursor').andReturn(cursor) - codeContext = @codeContextBuilder.buildCodeContext(@editorMock, argType) - expect(codeContext.argType).toEqual(argType) - expect(codeContext.lineNumber).toEqual(2) + return describe('buildCodeContext', () => + ['Selection Based', 'Line Number Based'].map((argType) => + it(`sets lineNumber with screenRow + 1 when ${argType}`, function() { + let cursor = + {getScreenRow() { return 1; }}; + spyOn(this.editorMock, 'getLastCursor').andReturn(cursor); + let codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); + expect(codeContext.argType).toEqual(argType); + return expect(codeContext.lineNumber).toEqual(2); + })) + ); +}); diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index 3f44175e..a51adcdd 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -1,104 +1,128 @@ -CodeContext = require '../lib/code-context' - -describe 'CodeContext', -> - beforeEach -> - @codeContext = new CodeContext('test.txt', '/tmp/test.txt', null) - # TODO: Test using an actual editor or a selection? - @dummyTextSource = {} - @dummyTextSource.getText = -> - "print 'hello world!'" - - describe 'fileColonLine when lineNumber is not set', -> - it 'returns the full filepath when fullPath is truthy', -> - expect(@codeContext.fileColonLine()).toMatch("/tmp/test.txt") - expect(@codeContext.fileColonLine(true)).toMatch("/tmp/test.txt") - - it 'returns only the filename and line number when fullPath is falsy', -> - expect(@codeContext.fileColonLine(false)).toMatch("test.txt") - - describe 'fileColonLine when lineNumber is set', -> - it 'returns the full filepath when fullPath is truthy', -> - @codeContext.lineNumber = 42 - expect(@codeContext.fileColonLine()).toMatch("/tmp/test.txt") - expect(@codeContext.fileColonLine(true)).toMatch("/tmp/test.txt") - - it 'returns only the filename and line number when fullPath is falsy', -> - @codeContext.lineNumber = 42 - expect(@codeContext.fileColonLine(false)).toMatch("test.txt") - - describe 'getCode', -> - it 'returns undefined if no textSource is available', -> - expect(@codeContext.getCode()).toBe(undefined) - - it 'returns a string prepended with newlines when prependNewlines is truthy', -> - @codeContext.textSource = @dummyTextSource - @codeContext.lineNumber = 3 - - code = @codeContext.getCode(true) - expect(typeof code).toEqual('string') - # Since Array#join will create newlines for one less than the the number - # of elements line number 3 means there should be two newlines - expect(code).toMatch("\n\nprint 'hello world!'") - - it 'returns the text from the textSource when available', -> - @codeContext.textSource = @dummyTextSource - - code = @codeContext.getCode() - expect(typeof code).toEqual('string') - expect(code).toMatch("print 'hello world!'") - - describe 'shebangCommand when no shebang was found', -> - it 'returns undefined when no shebang is found', -> - lines = @dummyTextSource.getText() - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - expect(@codeContext.shebangCommand()).toBe(undefined) - - describe 'shebangCommand when a shebang was found', -> - it 'returns the command from the shebang', -> - lines = "#!/bin/bash\necho 'hello from bash!'" - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - expect(@codeContext.shebangCommand()).toMatch('bash') - - it 'returns /usr/bin/env as the command if applicable', -> - lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'" - firstLine = lines.split("\n")[0] - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - expect(@codeContext.shebangCommand()).toMatch('env') - - it 'returns a command with non-alphabet characters', -> - lines = "#!/usr/bin/python2.7\nprint 'hello from python!'" - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - expect(@codeContext.shebangCommand()).toMatch('python2.7') - - describe 'shebangCommandArgs when no shebang was found', -> - it 'returns [] when no shebang is found', -> - lines = @dummyTextSource.getText() - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - expect(@codeContext.shebangCommandArgs()).toMatch([]) - - describe 'shebangCommandArgs when a shebang was found', -> - it 'returns the command from the shebang', -> - lines = "#!/bin/bash\necho 'hello from bash!'" - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - expect(@codeContext.shebangCommandArgs()).toMatch([]) - - it 'returns the true command as the first argument when /usr/bin/env is used', -> - lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'" - firstLine = lines.split("\n")[0] - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - args = @codeContext.shebangCommandArgs() - expect(args[0]).toMatch('ruby') - expect(args).toMatch(['ruby', '-w']) - - it 'returns the command args when the command had non-alphabet characters', -> - lines = "#!/usr/bin/python2.7\nprint 'hello from python!'" - firstLine = lines.split("\n")[0] - @codeContext.shebang = firstLine if firstLine.match(/^#!/) - expect(@codeContext.shebangCommandArgs()).toMatch([]) +'use babel'; +import CodeContext from '../lib/code-context'; + +describe('CodeContext', function() { + beforeEach(function() { + this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); + // TODO: Test using an actual editor or a selection? + this.dummyTextSource = {}; + return this.dummyTextSource.getText = () => "print 'hello world!'"; + }); + + describe('fileColonLine when lineNumber is not set', function() { + it('returns the full filepath when fullPath is truthy', function() { + expect(this.codeContext.fileColonLine()).toMatch("/tmp/test.txt"); + return expect(this.codeContext.fileColonLine(true)).toMatch("/tmp/test.txt"); + }); + + return it('returns only the filename and line number when fullPath is falsy', function() { + return expect(this.codeContext.fileColonLine(false)).toMatch("test.txt"); + }); + }); + + describe('fileColonLine when lineNumber is set', function() { + it('returns the full filepath when fullPath is truthy', function() { + this.codeContext.lineNumber = 42; + expect(this.codeContext.fileColonLine()).toMatch("/tmp/test.txt"); + return expect(this.codeContext.fileColonLine(true)).toMatch("/tmp/test.txt"); + }); + + return it('returns only the filename and line number when fullPath is falsy', function() { + this.codeContext.lineNumber = 42; + return expect(this.codeContext.fileColonLine(false)).toMatch("test.txt"); + }); + }); + + describe('getCode', function() { + it('returns undefined if no textSource is available', function() { + return expect(this.codeContext.getCode()).toBe(undefined); + }); + + it('returns a string prepended with newlines when prependNewlines is truthy', function() { + this.codeContext.textSource = this.dummyTextSource; + this.codeContext.lineNumber = 3; + + let code = this.codeContext.getCode(true); + expect(typeof code).toEqual('string'); + // Since Array#join will create newlines for one less than the the number + // of elements line number 3 means there should be two newlines + return expect(code).toMatch("\n\nprint 'hello world!'"); + }); + + return it('returns the text from the textSource when available', function() { + this.codeContext.textSource = this.dummyTextSource; + + let code = this.codeContext.getCode(); + expect(typeof code).toEqual('string'); + return expect(code).toMatch("print 'hello world!'"); + }); + }); + + describe('shebangCommand when no shebang was found', () => + it('returns undefined when no shebang is found', function() { + let lines = this.dummyTextSource.getText(); + let firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + return expect(this.codeContext.shebangCommand()).toBe(undefined); + }) + ); + + describe('shebangCommand when a shebang was found', function() { + it('returns the command from the shebang', function() { + let lines = "#!/bin/bash\necho 'hello from bash!'"; + let firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + return expect(this.codeContext.shebangCommand()).toMatch('bash'); + }); + + it('returns /usr/bin/env as the command if applicable', function() { + let lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; + let firstLine = lines.split("\n")[0]; + firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + return expect(this.codeContext.shebangCommand()).toMatch('env'); + }); + + return it('returns a command with non-alphabet characters', function() { + let lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; + let firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + return expect(this.codeContext.shebangCommand()).toMatch('python2.7'); + }); + }); + + describe('shebangCommandArgs when no shebang was found', () => + it('returns [] when no shebang is found', function() { + let lines = this.dummyTextSource.getText(); + let firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + return expect(this.codeContext.shebangCommandArgs()).toMatch([]); + }) + ); + + return describe('shebangCommandArgs when a shebang was found', function() { + it('returns the command from the shebang', function() { + let lines = "#!/bin/bash\necho 'hello from bash!'"; + let firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + return expect(this.codeContext.shebangCommandArgs()).toMatch([]); + }); + + it('returns the true command as the first argument when /usr/bin/env is used', function() { + let lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; + let firstLine = lines.split("\n")[0]; + firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + let args = this.codeContext.shebangCommandArgs(); + expect(args[0]).toMatch('ruby'); + return expect(args).toMatch(['ruby', '-w']); + }); + + return it('returns the command args when the command had non-alphabet characters', function() { + let lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; + let firstLine = lines.split("\n")[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + return expect(this.codeContext.shebangCommandArgs()).toMatch([]); + }); + }); +}); diff --git a/spec/grammar-utils/lisp-spec.js b/spec/grammar-utils/lisp-spec.js index 4e5e0dc7..5233e8da 100644 --- a/spec/grammar-utils/lisp-spec.js +++ b/spec/grammar-utils/lisp-spec.js @@ -1,37 +1,48 @@ -GrammarUtils = require '../../lib/grammar-utils' - -describe 'GrammarUtils', -> - describe 'Lisp', -> - toStatements = GrammarUtils.Lisp.splitStatements - - it 'returns empty array for empty code', -> - code = '' - expect(toStatements(code)).toEqual([]) - - it 'does not split single statement', -> - code = '(print "dummy")' - expect(toStatements(code)).toEqual([code]) - - it 'splits two simple statements', -> - code = '(print "dummy")(print "statement")' - expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']) - - it 'splits two simple statements in many lines', -> - code = '(print "dummy") \n\n (print "statement")' - expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']) - - it 'does not split single line complex statement', -> - code = '(when t(setq a 2)(+ i 1))' - expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']) - - it 'does not split multi line complex statement', -> - code = '(when t(setq a 2) \n \t (+ i 1))' - expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']) - - it 'splits single line complex statements', -> - code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))' - expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']) - - it 'splits multi line complex statements', -> - code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))' - expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']) +'use babel'; +import GrammarUtils from '../../lib/grammar-utils'; + +describe('GrammarUtils', () => + describe('Lisp', function() { + let toStatements = GrammarUtils.Lisp.splitStatements; + + it('returns empty array for empty code', function() { + let code = ''; + return expect(toStatements(code)).toEqual([]); + }); + + it('does not split single statement', function() { + let code = '(print "dummy")'; + return expect(toStatements(code)).toEqual([code]); + }); + + it('splits two simple statements', function() { + let code = '(print "dummy")(print "statement")'; + return expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); + }); + + it('splits two simple statements in many lines', function() { + let code = '(print "dummy") \n\n (print "statement")'; + return expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); + }); + + it('does not split single line complex statement', function() { + let code = '(when t(setq a 2)(+ i 1))'; + return expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']); + }); + + it('does not split multi line complex statement', function() { + let code = '(when t(setq a 2) \n \t (+ i 1))'; + return expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']); + }); + + it('splits single line complex statements', function() { + let code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))'; + return expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']); + }); + + return it('splits multi line complex statements', function() { + let code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))'; + return expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']); + }); + }) +); diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 5455d806..cd50f085 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -1,100 +1,131 @@ -CodeContext = require '../lib/code-context' -OperatingSystem = require '../lib/grammar-utils/operating-system' -grammarMap = require '../lib/grammars' - -describe 'grammarMap', -> - beforeEach -> - @codeContext = new CodeContext('test.txt', '/tmp/test.txt', null) - # TODO: Test using an actual editor or a selection? - @dummyTextSource = {} - @dummyTextSource.getText = -> "" - - it "has a command and an args function set for each grammar's mode", -> - @codeContext.textSource = @dummyTextSource - for lang,modes of grammarMap - for mode,commandContext of modes - expect(commandContext.command).toBeDefined() - argList = commandContext.args(@codeContext) - expect(argList).toBeDefined() - - describe 'Operating system specific runners', -> - beforeEach -> - @_originalPlatform = OperatingSystem.platform - @reloadGrammar = -> - delete require.cache[require.resolve('../lib/grammars.coffee')] - grammarMap = require '../lib/grammars.coffee' - - afterEach -> - OperatingSystem.platform = @_originalPlatform - @reloadGrammar() - - describe 'C', -> - it 'returns the appropriate File Based runner on Mac OS X', -> - OperatingSystem.platform = -> 'darwin' - @reloadGrammar() - - grammar = grammarMap['C'] - fileBasedRunner = grammar['File Based'] - args = fileBasedRunner.args(@codeContext) - expect(fileBasedRunner.command).toEqual('bash') - expect(args[0]).toEqual('-c') - expect(args[1]).toMatch(/^xcrun clang/) - - describe 'C++', -> - it 'returns the appropriate File Based runner on Mac OS X', -> - OperatingSystem.platform = -> 'darwin' - @reloadGrammar() - - grammar = grammarMap['C++'] - fileBasedRunner = grammar['File Based'] - args = fileBasedRunner.args(@codeContext) - expect(fileBasedRunner.command).toEqual('bash') - expect(args[0]).toEqual('-c') - expect(args[1]).toMatch(/^xcrun clang\+\+/) - - describe 'F#', -> - it 'returns "fsi" as command for File Based runner on Windows', -> - OperatingSystem.platform = -> 'win32' - @reloadGrammar() - - grammar = grammarMap['F#'] - fileBasedRunner = grammar['File Based'] - args = fileBasedRunner.args(@codeContext) - expect(fileBasedRunner.command).toEqual('fsi') - expect(args[0]).toEqual('--exec') - expect(args[1]).toEqual(@codeContext.filepath) - - it 'returns "fsharpi" as command for File Based runner when platform is not Windows', -> - OperatingSystem.platform = -> 'darwin' - @reloadGrammar() - - grammar = grammarMap['F#'] - fileBasedRunner = grammar['File Based'] - args = fileBasedRunner.args(@codeContext) - expect(fileBasedRunner.command).toEqual('fsharpi') - expect(args[0]).toEqual('--exec') - expect(args[1]).toEqual(@codeContext.filepath) - - describe 'Objective-C', -> - it 'returns the appropriate File Based runner on Mac OS X', -> - OperatingSystem.platform = -> 'darwin' - @reloadGrammar() - - grammar = grammarMap['Objective-C'] - fileBasedRunner = grammar['File Based'] - args = fileBasedRunner.args(@codeContext) - expect(fileBasedRunner.command).toEqual('bash') - expect(args[0]).toEqual('-c') - expect(args[1]).toMatch(/^xcrun clang/) - - describe 'Objective-C++', -> - it 'returns the appropriate File Based runner on Mac OS X', -> - OperatingSystem.platform = -> 'darwin' - @reloadGrammar() - - grammar = grammarMap['Objective-C++'] - fileBasedRunner = grammar['File Based'] - args = fileBasedRunner.args(@codeContext) - expect(fileBasedRunner.command).toEqual('bash') - expect(args[0]).toEqual('-c') - expect(args[1]).toMatch(/^xcrun clang\+\+/) +'use babel'; +import CodeContext from '../lib/code-context'; +import OperatingSystem from '../lib/grammar-utils/operating-system'; +import grammarMap from '../lib/grammars'; + +describe('grammarMap', function() { + beforeEach(function() { + this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); + // TODO: Test using an actual editor or a selection? + this.dummyTextSource = {}; + return this.dummyTextSource.getText = () => ""; + }); + + it("has a command and an args function set for each grammar's mode", function() { + this.codeContext.textSource = this.dummyTextSource; + return (() => { + let result = []; + for (let lang in grammarMap) { + let modes = grammarMap[lang]; + result.push((() => { + let result1 = []; + for (let mode in modes) { + let commandContext = modes[mode]; + expect(commandContext.command).toBeDefined(); + let argList = commandContext.args(this.codeContext); + result1.push(expect(argList).toBeDefined()); + } + return result1; + })()); + } + return result; + })(); + }); + + return describe('Operating system specific runners', function() { + beforeEach(function() { + this._originalPlatform = OperatingSystem.platform; + return this.reloadGrammar = function() { + delete require.cache[require.resolve('../lib/grammars.coffee')]; + return grammarMap = require('../lib/grammars.coffee'); + }; + }); + + afterEach(function() { + OperatingSystem.platform = this._originalPlatform; + return this.reloadGrammar(); + }); + + describe('C', () => + it('returns the appropriate File Based runner on Mac OS X', function() { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); + + let grammar = grammarMap['C']; + let fileBasedRunner = grammar['File Based']; + let args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + return expect(args[1]).toMatch(/^xcrun clang/); + }) + ); + + describe('C++', () => + it('returns the appropriate File Based runner on Mac OS X', function() { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); + + let grammar = grammarMap['C++']; + let fileBasedRunner = grammar['File Based']; + let args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + return expect(args[1]).toMatch(/^xcrun clang\+\+/); + }) + ); + + describe('F#', function() { + it('returns "fsi" as command for File Based runner on Windows', function() { + OperatingSystem.platform = () => 'win32'; + this.reloadGrammar(); + + let grammar = grammarMap['F#']; + let fileBasedRunner = grammar['File Based']; + let args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('fsi'); + expect(args[0]).toEqual('--exec'); + return expect(args[1]).toEqual(this.codeContext.filepath); + }); + + return it('returns "fsharpi" as command for File Based runner when platform is not Windows', function() { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); + + let grammar = grammarMap['F#']; + let fileBasedRunner = grammar['File Based']; + let args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('fsharpi'); + expect(args[0]).toEqual('--exec'); + return expect(args[1]).toEqual(this.codeContext.filepath); + }); + }); + + describe('Objective-C', () => + it('returns the appropriate File Based runner on Mac OS X', function() { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); + + let grammar = grammarMap['Objective-C']; + let fileBasedRunner = grammar['File Based']; + let args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + return expect(args[1]).toMatch(/^xcrun clang/); + }) + ); + + return describe('Objective-C++', () => + it('returns the appropriate File Based runner on Mac OS X', function() { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); + + let grammar = grammarMap['Objective-C++']; + let fileBasedRunner = grammar['File Based']; + let args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + return expect(args[1]).toMatch(/^xcrun clang\+\+/); + }) + ); + }); +}); diff --git a/spec/link-paths-spec.js b/spec/link-paths-spec.js index a5b23bd5..34e48174 100644 --- a/spec/link-paths-spec.js +++ b/spec/link-paths-spec.js @@ -1,28 +1,35 @@ -linkPaths = require '../lib/link-paths' +'use babel'; +import linkPaths from '../lib/link-paths'; -describe 'linkPaths', -> - it 'detects file paths with line numbers', -> - result = linkPaths 'foo() b/c.js:44:55' - expect(result).toContain 'foo() - result = linkPaths 'foo() C:/b/c.js:44:55' - expect(result).toContain 'data-path="C:/b/c.js"' + it('detects file paths with Windows style drive prefix', function() { + let result = linkPaths('foo() C:/b/c.js:44:55'); + return expect(result).toContain('data-path="C:/b/c.js"'); + }); - it 'allow ommitting the column number', -> - result = linkPaths 'foo() b/c.js:44' - expect(result).toContain 'data-line="44"' - expect(result).toContain 'data-column=""' + it('allow ommitting the column number', function() { + let result = linkPaths('foo() b/c.js:44'); + expect(result).toContain('data-line="44"'); + return expect(result).toContain('data-column=""'); + }); - it 'links multiple paths', -> - multilineResult = linkPaths """ - foo() b/c.js:44:55 - bar() b/c.js:45:56 - """ - expect(multilineResult).toContain 'foo() - beforeEach -> - @command = 'node' - @runOptions = new ScriptOptions - @runOptions.cmd = @command - @runner = new Runner(@runOptions) - - afterEach -> - @runner.destroy() - - describe 'run', -> - it 'with no input', -> - runs => - @output = null - @runner.onDidWriteToStdout (output) => - @output = output - @runner.run(@command, ['./spec/fixtures/outputTest.js'], {}) - - waitsFor => - @output != null - , "File should execute", 500 - - runs => - expect(@output).toEqual({ message: 'hello\n' }) - - it 'with an input string', -> - runs => - @output = null - @runner.onDidWriteToStdout (output) => - @output = output - @runner.run(@command, ['./spec/fixtures/ioTest.js'], {}, 'hello') - - waitsFor => - @output != null - , "File should execute", 500 - - runs => - expect(@output).toEqual({ message: 'TEST: hello\n' }) - - it 'exits', -> - runs => - @exited = false - @runner.onDidExit => - @exited = true - @runner.run(@command, ['./spec/fixtures/outputTest.js'], {}) - - waitsFor => - @exited - , "Should receive exit callback", 500 - - it 'notifies about writing to stderr', -> - runs => - @failedEvent = null - @runner.onDidWriteToStderr (event) => - @failedEvent = event - @runner.run(@command, ['./spec/fixtures/throw.js'], {}) - - waitsFor => - @failedEvent - , "Should receive failure callback", 500 - - runs => - expect(@failedEvent.message).toMatch(/kaboom/) - - it 'terminates stdin', -> - runs => - @output = null - @runner.onDidWriteToStdout (output) => - @output = output - @runner.run(@command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input') - - waitsFor => - @output != null - , "File should execute", 500 - - runs => - expect(@output).toEqual({ message: 'stdin terminated\n' }) +'use babel'; +import Runner from '../lib/runner'; +import ScriptOptions from '../lib/script-options'; + +describe('Runner', function() { + beforeEach(function() { + this.command = 'node'; + this.runOptions = new ScriptOptions; + this.runOptions.cmd = this.command; + return this.runner = new Runner(this.runOptions); + }); + + afterEach(function() { + return this.runner.destroy(); + }); + + return describe('run', function() { + it('with no input', function() { + runs(() => { + this.output = null; + this.runner.onDidWriteToStdout(output => { + return this.output = output; + } + ); + return this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); + } + ); + + waitsFor(() => { + return this.output !== null; + } + , "File should execute", 500); + + return runs(() => { + return expect(this.output).toEqual({ message: 'hello\n' }); + } + ); + }); + + it('with an input string', function() { + runs(() => { + this.output = null; + this.runner.onDidWriteToStdout(output => { + return this.output = output; + } + ); + return this.runner.run(this.command, ['./spec/fixtures/ioTest.js'], {}, 'hello'); + } + ); + + waitsFor(() => { + return this.output !== null; + } + , "File should execute", 500); + + return runs(() => { + return expect(this.output).toEqual({ message: 'TEST: hello\n' }); + } + ); + }); + + it('exits', function() { + runs(() => { + this.exited = false; + this.runner.onDidExit(() => { + return this.exited = true; + } + ); + return this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); + } + ); + + return waitsFor(() => { + return this.exited; + } + , "Should receive exit callback", 500); + }); + + it('notifies about writing to stderr', function() { + runs(() => { + this.failedEvent = null; + this.runner.onDidWriteToStderr(event => { + return this.failedEvent = event; + } + ); + return this.runner.run(this.command, ['./spec/fixtures/throw.js'], {}); + } + ); + + waitsFor(() => { + return this.failedEvent; + } + , "Should receive failure callback", 500); + + return runs(() => { + return expect(this.failedEvent.message).toMatch(/kaboom/); + } + ); + }); + + return it('terminates stdin', function() { + runs(() => { + this.output = null; + this.runner.onDidWriteToStdout(output => { + return this.output = output; + } + ); + return this.runner.run(this.command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input'); + } + ); + + waitsFor(() => { + return this.output !== null; + } + , "File should execute", 500); + + return runs(() => { + return expect(this.output).toEqual({ message: 'stdin terminated\n' }); + } + ); + }); + }); +}); diff --git a/spec/script-options-spec.js b/spec/script-options-spec.js index 8715549e..0f23eaac 100644 --- a/spec/script-options-spec.js +++ b/spec/script-options-spec.js @@ -1,43 +1,54 @@ -ScriptOptions = require '../lib/script-options' +'use babel'; +import ScriptOptions from '../lib/script-options'; -describe 'ScriptOptions', -> - beforeEach -> - @scriptOptions = new ScriptOptions() - @dummyEnv = - SCRIPT_CI: 'true' - SCRIPT_ENV: 'test' +describe('ScriptOptions', function() { + beforeEach(function() { + this.scriptOptions = new ScriptOptions(); + this.dummyEnv = { + SCRIPT_CI: 'true', + SCRIPT_ENV: 'test', _NUMBERS: '123' - @dummyEnvString = "SCRIPT_CI=true;SCRIPT_ENV='test';_NUMBERS=\"123\"" + }; + return this.dummyEnvString = "SCRIPT_CI=true;SCRIPT_ENV='test';_NUMBERS=\"123\""; + }); - describe 'getEnv', -> - it 'should default to an empty env object', -> - env = @scriptOptions.getEnv() - expect(env).toEqual({}) + describe('getEnv', function() { + it('should default to an empty env object', function() { + let env = this.scriptOptions.getEnv(); + return expect(env).toEqual({}); + }); - it 'should parse a custom user environment', -> - @scriptOptions.env = @dummyEnvString - env = @scriptOptions.getEnv() - expect(env).toEqual + return it('should parse a custom user environment', function() { + this.scriptOptions.env = this.dummyEnvString; + let env = this.scriptOptions.getEnv(); + return expect(env).toEqual; + }); + }); - describe 'mergedEnv', -> - it 'should default to the orignal env object', -> - mergedEnv = @scriptOptions.mergedEnv(@dummyEnv) - expect(mergedEnv).toEqual(@dummyEnv) + return describe('mergedEnv', function() { + it('should default to the orignal env object', function() { + let mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); + return expect(mergedEnv).toEqual(this.dummyEnv); + }); - it 'should retain the original environment', -> - @scriptOptions.env = "TEST_VAR_1=one;TEST_VAR_2=\"two\";TEST_VAR_3='three'" - mergedEnv = @scriptOptions.mergedEnv(@dummyEnv) - expect(mergedEnv.SCRIPT_CI).toEqual('true') - expect(mergedEnv.SCRIPT_ENV).toEqual('test') - expect(mergedEnv._NUMBERS).toEqual('123') - expect(mergedEnv.TEST_VAR_1).toEqual('one') - expect(mergedEnv.TEST_VAR_2).toEqual('two') - expect(mergedEnv.TEST_VAR_3).toEqual('three') + it('should retain the original environment', function() { + this.scriptOptions.env = "TEST_VAR_1=one;TEST_VAR_2=\"two\";TEST_VAR_3='three'"; + let mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); + expect(mergedEnv.SCRIPT_CI).toEqual('true'); + expect(mergedEnv.SCRIPT_ENV).toEqual('test'); + expect(mergedEnv._NUMBERS).toEqual('123'); + expect(mergedEnv.TEST_VAR_1).toEqual('one'); + expect(mergedEnv.TEST_VAR_2).toEqual('two'); + return expect(mergedEnv.TEST_VAR_3).toEqual('three'); + }); - it 'should support special character values', -> - @scriptOptions.env = "TEST_VAR_1=o-n-e;TEST_VAR_2=\"nested\\\"doublequotes\\\"\";TEST_VAR_3='nested\\\'singlequotes\\\'';TEST_VAR_4='s p a c e s'" - mergedEnv = @scriptOptions.mergedEnv(@dummyEnv) - expect(mergedEnv.TEST_VAR_1).toEqual('o-n-e') - expect(mergedEnv.TEST_VAR_2).toEqual("nested\\\"doublequotes\\\"") - expect(mergedEnv.TEST_VAR_3).toEqual("nested\\\'singlequotes\\\'") - expect(mergedEnv.TEST_VAR_4).toEqual('s p a c e s') + return it('should support special character values', function() { + this.scriptOptions.env = "TEST_VAR_1=o-n-e;TEST_VAR_2=\"nested\\\"doublequotes\\\"\";TEST_VAR_3='nested\\\'singlequotes\\\'';TEST_VAR_4='s p a c e s'"; + let mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); + expect(mergedEnv.TEST_VAR_1).toEqual('o-n-e'); + expect(mergedEnv.TEST_VAR_2).toEqual("nested\\\"doublequotes\\\""); + expect(mergedEnv.TEST_VAR_3).toEqual("nested\\\'singlequotes\\\'"); + return expect(mergedEnv.TEST_VAR_4).toEqual('s p a c e s'); + }); + }); +}); From cad08e3d13a502f5560567688782b375f1571867 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 00:52:39 +0100 Subject: [PATCH 128/410] Fix name collision in grammars spec --- spec/grammars-spec.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index cd50f085..386f661a 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -37,7 +37,7 @@ describe('grammarMap', function() { this._originalPlatform = OperatingSystem.platform; return this.reloadGrammar = function() { delete require.cache[require.resolve('../lib/grammars.coffee')]; - return grammarMap = require('../lib/grammars.coffee'); + return newGrammarMap = require('../lib/grammars.coffee'); }; }); @@ -51,7 +51,7 @@ describe('grammarMap', function() { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = grammarMap['C']; + let grammar = newGrammarMap['C']; let fileBasedRunner = grammar['File Based']; let args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); @@ -65,7 +65,7 @@ describe('grammarMap', function() { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = grammarMap['C++']; + let grammar = newGrammarMap['C++']; let fileBasedRunner = grammar['File Based']; let args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); @@ -79,7 +79,7 @@ describe('grammarMap', function() { OperatingSystem.platform = () => 'win32'; this.reloadGrammar(); - let grammar = grammarMap['F#']; + let grammar = newGrammarMap['F#']; let fileBasedRunner = grammar['File Based']; let args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('fsi'); @@ -91,7 +91,7 @@ describe('grammarMap', function() { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = grammarMap['F#']; + let grammar = newGrammarMap['F#']; let fileBasedRunner = grammar['File Based']; let args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('fsharpi'); @@ -105,7 +105,7 @@ describe('grammarMap', function() { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = grammarMap['Objective-C']; + let grammar = newGrammarMap['Objective-C']; let fileBasedRunner = grammar['File Based']; let args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); @@ -119,7 +119,7 @@ describe('grammarMap', function() { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = grammarMap['Objective-C++']; + let grammar = newGrammarMap['Objective-C++']; let fileBasedRunner = grammar['File Based']; let args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); From 83c06cb8d896d2bdbfb71b48dba0fe28a7ae274c Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 01:00:08 +0100 Subject: [PATCH 129/410] Add ESLINT --- .eslintrc.yml | 12 ++++++++++++ package.json | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 .eslintrc.yml diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 00000000..c8b82876 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,12 @@ +extends: airbnb-base +parser: babel-eslint +env: + browser: true + node: true + jasmine: true + +globals: + atom: true + +settings: + import/core-modules: [ atom ] diff --git a/package.json b/package.json index 897476a0..1cf44d68 100644 --- a/package.json +++ b/package.json @@ -339,8 +339,12 @@ "atom-message-panel": "1.2.4" }, "devDependencies": { + "babel-eslint": "^7.1.1", "coffee-script": "^1.11.1", "coffeelint": "^1.14.2", + "eslint": "^3.11.1", + "eslint-config-airbnb-base": "^10.0.1", + "eslint-plugin-import": "^2.2.0", "grunt": "~0.4.5" }, "providedServices": { @@ -357,5 +361,8 @@ } } }, - "scripts": {} + "scripts": { + "lint": "eslint .", + "lint:fix": "eslint . --fix" + } } From bd85bb09e0a233036873d0ababbeb8d9a0a0e7a2 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 01:01:46 +0100 Subject: [PATCH 130/410] Run eslint . --fix --- examples/jxa.js | 6 +- examples/longrun.js | 6 +- lib/code-context-builder.js | 29 ++--- lib/code-context.js | 15 +-- lib/command-context.js | 16 +-- lib/grammar-utils.js | 11 +- lib/grammar-utils/R.js | 2 +- lib/grammar-utils/coffee-script-compiler.js | 7 +- lib/grammar-utils/d.js | 7 +- lib/grammar-utils/java.js | 17 +-- lib/grammar-utils/lisp.js | 7 +- lib/grammar-utils/matlab.js | 7 +- lib/grammar-utils/nim.js | 45 +++---- lib/grammar-utils/operating-system.js | 3 +- lib/grammar-utils/perl.js | 2 +- lib/grammar-utils/php.js | 2 +- lib/header-view.js | 11 +- lib/link-paths.js | 18 +-- lib/runner.js | 39 +++--- lib/runtime.js | 17 +-- lib/script-input-view.js | 27 +++-- lib/script-options-view.js | 127 +++++++++----------- lib/script-options.js | 21 ++-- lib/script-profile-run-view.js | 85 ++++++------- lib/script-view.js | 68 +++++------ lib/script.js | 75 ++++++------ lib/view-runtime-observer.js | 79 +++++------- spec/code-context-builder-spec.js | 47 ++++---- spec/code-context-spec.js | 103 ++++++++-------- spec/fixtures/ioTest.js | 10 +- spec/fixtures/stdinEndTest.js | 4 +- spec/grammar-utils/lisp-spec.js | 39 +++--- spec/grammars-spec.js | 89 +++++++------- spec/link-paths-spec.js | 21 ++-- spec/runner-spec.js | 97 ++++++--------- spec/script-options-spec.js | 33 ++--- 36 files changed, 569 insertions(+), 623 deletions(-) diff --git a/examples/jxa.js b/examples/jxa.js index 41232cdc..020d9608 100755 --- a/examples/jxa.js +++ b/examples/jxa.js @@ -1,7 +1,7 @@ #!/usr/bin/env osascript -l JavaScript -test = Application.currentApplication() +test = Application.currentApplication(); -test.includeStandardAdditions = true +test.includeStandardAdditions = true; -test.displayDialog("Hello world") +test.displayDialog('Hello world'); diff --git a/examples/longrun.js b/examples/longrun.js index 161b56d7..608362d7 100644 --- a/examples/longrun.js +++ b/examples/longrun.js @@ -1,6 +1,6 @@ -var i = 1; -var run = setInterval(function() { - console.log("line " + i); +let i = 1; +const run = setInterval(() => { + console.log(`line ${i}`); i++; if (i == 20) { stop(); diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index e953a6f7..228d2f23 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -1,11 +1,12 @@ 'use babel'; + import CodeContext from './code-context'; import grammarMap from './grammars'; import { Emitter } from 'atom'; export default class CodeContextBuilder { - constructor(emitter = new Emitter) { + constructor(emitter = new Emitter()) { this.emitter = emitter; } @@ -23,10 +24,10 @@ export default class CodeContextBuilder { // * "File Based" // // returns a {CodeContext} object - buildCodeContext(editor, argType='Selection Based') { + buildCodeContext(editor, argType = 'Selection Based') { if (editor == null) { return; } - let codeContext = this.initCodeContext(editor); + const codeContext = this.initCodeContext(editor); codeContext.argType = argType; @@ -40,7 +41,7 @@ export default class CodeContextBuilder { // Selection and Line Number Based runs both benefit from knowing the current line // number if (argType !== 'File Based') { - let cursor = editor.getLastCursor(); + const cursor = editor.getLastCursor(); codeContext.lineNumber = cursor.getScreenRow() + 1; } @@ -48,10 +49,10 @@ export default class CodeContextBuilder { } initCodeContext(editor) { - let filename = editor.getTitle(); - let filepath = editor.getPath(); - let selection = editor.getLastSelection(); - let ignoreSelection = atom.config.get('script.ignoreSelection'); + const filename = editor.getTitle(); + const filepath = editor.getPath(); + const selection = editor.getLastSelection(); + const ignoreSelection = atom.config.get('script.ignoreSelection'); // If the selection was empty or if ignore selection is on, then "select" ALL // of the text @@ -62,11 +63,11 @@ export default class CodeContextBuilder { var textSource = selection; } - let codeContext = new CodeContext(filename, filepath, textSource); + const codeContext = new CodeContext(filename, filepath, textSource); codeContext.selection = selection; codeContext.shebang = this.getShebang(editor); - let lang = this.getLang(editor); + const lang = this.getLang(editor); if (this.validateLang(lang)) { codeContext.lang = lang; @@ -77,9 +78,9 @@ export default class CodeContextBuilder { getShebang(editor) { if (process.platform === 'win32') { return; } - let text = editor.getText(); - let lines = text.split("\n"); - let firstLine = lines[0]; + const text = editor.getText(); + const lines = text.split('\n'); + const firstLine = lines[0]; if (!firstLine.match(/^#!/)) { return; } return firstLine.replace(/^#!\s*/, ''); @@ -114,7 +115,7 @@ export default class CodeContextBuilder { onDidNotSupportLanguage(callback) { return this.emitter.on('did-not-support-language', callback); } -}; +} function __guard__(value, transform) { return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; diff --git a/lib/code-context.js b/lib/code-context.js index 842a5574..f8698896 100644 --- a/lib/code-context.js +++ b/lib/code-context.js @@ -1,4 +1,5 @@ 'use babel'; + export default class CodeContext { static initClass() { this.prototype.filename = null; @@ -43,11 +44,11 @@ export default class CodeContext { // // Returns the code selection {String} getCode(prependNewlines = true) { - let code = __guard__(this.textSource, x => x.getText()); + const code = __guard__(this.textSource, x => x.getText()); if (!prependNewlines || !this.lineNumber) { return code; } - let newlineCount = Number(this.lineNumber); - let newlines = Array(newlineCount).join("\n"); + const newlineCount = Number(this.lineNumber); + const newlines = Array(newlineCount).join('\n'); return `${newlines}${code}`; } @@ -55,7 +56,7 @@ export default class CodeContext { // // Returns the {String} name of the command or {undefined} if not applicable. shebangCommand() { - let sections = this.shebangSections(); + const sections = this.shebangSections(); if (!sections) { return; } return sections[0]; @@ -66,10 +67,10 @@ export default class CodeContext { // // Returns the {String} name of the command or {undefined} if not applicable. shebangCommandArgs() { - let sections = this.shebangSections(); + const sections = this.shebangSections(); if (!sections) { return []; } - return sections.slice(1, sections.length-1 + 1 || undefined); + return sections.slice(1, sections.length - 1 + 1 || undefined); } // Public: Splits the shebang string by spaces to extra the command and @@ -79,7 +80,7 @@ export default class CodeContext { shebangSections() { return __guard__(this.shebang, x => x.split(' ')); } -}; +} CodeContext.initClass(); function __guard__(value, transform) { diff --git a/lib/command-context.js b/lib/command-context.js index 80184ddf..1cd9e769 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -1,4 +1,5 @@ 'use babel'; + import grammarMap from './grammars'; export default class CommandContext { @@ -10,7 +11,7 @@ export default class CommandContext { } static build(runtime, runOptions, codeContext) { - let commandContext = new CommandContext; + const commandContext = new CommandContext(); commandContext.options = runOptions; try { @@ -22,7 +23,6 @@ export default class CommandContext { } var buildArgsArray = grammarMap[codeContext.lang][codeContext.argType].args; - } catch (error) { runtime.modeNotSupported(codeContext.argType, codeContext.lang); return false; @@ -41,29 +41,29 @@ export default class CommandContext { } else { commandContext.workingDirectory = runOptions.workingDirectory; } - + // Return setup information return commandContext; } quoteArguments(args) { - return (args.map((arg) => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`))); + return (args.map(arg => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`))); } getRepresentation() { if (!this.command || !this.args.length) { return ''; } // command arguments - let commandArgs = (this.options.cmdArgs != null) ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; + const commandArgs = (this.options.cmdArgs != null) ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; // script arguments - let args = this.args.length ? this.quoteArguments(this.args).join(' ') : ''; - let scriptArgs = (this.options.scriptArgs != null) ? this.quoteArguments(this.options.scriptArgs).join(' ') : ''; + const args = this.args.length ? this.quoteArguments(this.args).join(' ') : ''; + const scriptArgs = (this.options.scriptArgs != null) ? this.quoteArguments(this.options.scriptArgs).join(' ') : ''; return this.command.trim() + (commandArgs ? ` ${commandArgs}` : '') + (args ? ` ${args}` : '') + (scriptArgs ? ` ${scriptArgs}` : ''); } -}; +} CommandContext.initClass(); diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 05716fb2..daa0bb52 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -1,4 +1,5 @@ 'use babel'; + // Require some libs used for creating temporary files import os from 'os'; import fs from 'fs'; @@ -14,13 +15,13 @@ export default { // * `code` A {String} containing some code // // Returns the {String} filepath of the new file - createTempFileWithCode(code, extension = "") { + createTempFileWithCode(code, extension = '') { try { if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } - let tempFilePath = this.tempFilesDir + path.sep + uuid.v1() + extension; + const tempFilePath = this.tempFilesDir + path.sep + uuid.v1() + extension; - let file = fs.openSync(tempFilePath, 'w'); + const file = fs.openSync(tempFilePath, 'w'); fs.writeSync(file, code); fs.closeSync(file); @@ -34,7 +35,7 @@ export default { deleteTempFiles() { try { if (fs.existsSync(this.tempFilesDir)) { - let files = fs.readdirSync(this.tempFilesDir); + const files = fs.readdirSync(this.tempFilesDir); if (files.length) { files.forEach((file, index) => fs.unlinkSync(this.tempFilesDir + path.sep + file)); } @@ -93,5 +94,5 @@ export default { // Public: Get the D helper object // // Returns an {Object} which assists in creating temp files containing D code - D: require('./grammar-utils/d') + D: require('./grammar-utils/d'), }; diff --git a/lib/grammar-utils/R.js b/lib/grammar-utils/R.js index 336527ed..f7491ca0 100644 --- a/lib/grammar-utils/R.js +++ b/lib/grammar-utils/R.js @@ -9,5 +9,5 @@ export default { // Returns the {String} filepath of the new file createTempFileWithCode(code) { return module.parent.exports.createTempFileWithCode(code); - } + }, }; diff --git a/lib/grammar-utils/coffee-script-compiler.js b/lib/grammar-utils/coffee-script-compiler.js index 83afffa7..efae7b42 100644 --- a/lib/grammar-utils/coffee-script-compiler.js +++ b/lib/grammar-utils/coffee-script-compiler.js @@ -1,12 +1,13 @@ 'use babel'; + // Public: GrammarUtils.CScompiler - a module which predetermines the active // CoffeeScript compiler and sets an [array] of appropriate command line flags import { execSync } from 'child_process'; -let args = ['-e']; +const args = ['-e']; try { - let coffee = execSync('coffee -h'); //which coffee | xargs readlink' - if (coffee.toString().match(/--cli/)) { //-redux + const coffee = execSync('coffee -h'); // which coffee | xargs readlink' + if (coffee.toString().match(/--cli/)) { // -redux args.push('--cli'); } } catch (error) {} diff --git a/lib/grammar-utils/d.js b/lib/grammar-utils/d.js index 77acee70..c96c3022 100644 --- a/lib/grammar-utils/d.js +++ b/lib/grammar-utils/d.js @@ -1,4 +1,5 @@ 'use babel'; + // Require some libs used for creating temporary files import os from 'os'; import fs from 'fs'; @@ -18,9 +19,9 @@ export default { try { if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } - let tempFilePath = this.tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.d'; + const tempFilePath = `${this.tempFilesDir + path.sep}m${uuid.v1().split('-').join('_')}.d`; - let file = fs.openSync(tempFilePath, 'w'); + const file = fs.openSync(tempFilePath, 'w'); fs.writeSync(file, code); fs.closeSync(file); @@ -28,5 +29,5 @@ export default { } catch (error) { throw (`Error while creating temporary file (${error})`); } - } + }, }; diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index 9ead9bd7..f81da6b8 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -1,4 +1,5 @@ 'use babel'; + // Java script preparation functions import os from 'os'; import path from 'path'; @@ -15,7 +16,7 @@ export default { // // Returns {String} containing class name of file getClassName(context) { - return context.filename.replace(/\.java$/, ""); + return context.filename.replace(/\.java$/, ''); }, // Public: Get project path of context @@ -24,10 +25,10 @@ export default { // // Returns {String} containing the matching project path getProjectPath(context) { - let projectPaths = atom.project.getPaths(); + const projectPaths = atom.project.getPaths(); return (() => { - let result = []; - for (let projectPath of projectPaths) { + const result = []; + for (const projectPath of projectPaths) { let item; if (context.filepath.includes(projectPath)) { item = projectPath; @@ -44,8 +45,8 @@ export default { // // Returns {String} containing class of contextual file getClassPackage(context) { - let projectPath = module.exports.getProjectPath(context); - let projectRemoved = (context.filepath.replace(projectPath + "/", "")); - return projectRemoved.replace(`/${context.filename}`, ""); - } + const projectPath = module.exports.getProjectPath(context); + const projectRemoved = (context.filepath.replace(`${projectPath}/`, '')); + return projectRemoved.replace(`/${context.filename}`, ''); + }, }; diff --git a/lib/grammar-utils/lisp.js b/lib/grammar-utils/lisp.js index 8b44b48e..3f8c0a76 100644 --- a/lib/grammar-utils/lisp.js +++ b/lib/grammar-utils/lisp.js @@ -1,4 +1,5 @@ 'use babel'; + import _ from 'underscore'; // Public: GrammarUtils.Lisp - a module which exposes the ability to evaluate @@ -8,7 +9,7 @@ export default { // // Returns an {Array} of executable statements. splitStatements(code) { - let iterator = function(statements, currentCharacter, _memo, _context) { + const iterator = function (statements, currentCharacter, _memo, _context) { if (this.parenDepth == null) { this.parenDepth = 0; } if (currentCharacter === '(') { this.parenDepth += 1; @@ -29,8 +30,8 @@ export default { return statements; }; - let statements = _.reduce(code.trim(), iterator, [], {}); + const statements = _.reduce(code.trim(), iterator, [], {}); return statements; - } + }, }; diff --git a/lib/grammar-utils/matlab.js b/lib/grammar-utils/matlab.js index 60f5abf5..90e0588e 100644 --- a/lib/grammar-utils/matlab.js +++ b/lib/grammar-utils/matlab.js @@ -1,4 +1,5 @@ 'use babel'; + // Require some libs used for creating temporary files import os from 'os'; import fs from 'fs'; @@ -18,9 +19,9 @@ export default { try { if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } - let tempFilePath = this.tempFilesDir + path.sep + 'm' + uuid.v1().split('-').join('_') + '.m'; + const tempFilePath = `${this.tempFilesDir + path.sep}m${uuid.v1().split('-').join('_')}.m`; - let file = fs.openSync(tempFilePath, 'w'); + const file = fs.openSync(tempFilePath, 'w'); fs.writeSync(file, code); fs.closeSync(file); @@ -28,5 +29,5 @@ export default { } catch (error) { throw (`Error while creating temporary file (${error})`); } - } + }, }; diff --git a/lib/grammar-utils/nim.js b/lib/grammar-utils/nim.js index 16970e56..17e39778 100644 --- a/lib/grammar-utils/nim.js +++ b/lib/grammar-utils/nim.js @@ -1,4 +1,5 @@ 'use babel'; + // Public: GrammarUtils.Nim - a module which selects the right file to run for Nim projects export default { // Public: Find the right file to run @@ -8,15 +9,15 @@ export default { // Returns the {String} filepath of file to run projectDir(editorfile) { - let path = require('path'); + const path = require('path'); return path.dirname(editorfile); }, findNimProjectFile(editorfile) { - let path = require('path'); - let fs = require('fs'); + const path = require('path'); + const fs = require('fs'); - if(path.extname(editorfile)==='.nims') { + if (path.extname(editorfile) === '.nims') { // if we have an .nims file try { var tfile = editorfile.slice(0, -1); @@ -32,17 +33,17 @@ export default { // check if we are running on a file with config try { - var stats = fs.statSync(editorfile + "s"); + var stats = fs.statSync(`${editorfile}s`); return path.basename(editorfile); } catch (error) {} try { - var stats = fs.statSync(editorfile + ".cfg"); + var stats = fs.statSync(`${editorfile}.cfg`); return path.basename(editorfile); } catch (error1) {} try { - var stats = fs.statSync(editorfile + "cfg"); + var stats = fs.statSync(`${editorfile}cfg`); return path.basename(editorfile); } catch (error2) {} @@ -51,27 +52,27 @@ export default { // a config file with the same name and // run this instead of the one in the editor // tab - let filepath = path.dirname(editorfile); - let files = fs.readdirSync(filepath); + const filepath = path.dirname(editorfile); + const files = fs.readdirSync(filepath); files.sort(); - for (let file of files) { - let name = filepath + '/' + file; + for (const file of files) { + const name = `${filepath}/${file}`; if (fs.statSync(name).isFile()) { - if(path.extname(name)==='.nims' || - path.extname(name)==='.nimcgf' || - path.extname(name)==='.cfg') { - try { - var tfile = name.slice(0, -1); - var stats = fs.statSync(tfile); - return path.basename(tfile); - } catch (error) { - console.log("File does not exist."); - } + if (path.extname(name) === '.nims' || + path.extname(name) === '.nimcgf' || + path.extname(name) === '.cfg') { + try { + var tfile = name.slice(0, -1); + var stats = fs.statSync(tfile); + return path.basename(tfile); + } catch (error) { + console.log('File does not exist.'); } + } } } // just run what we got return path.basename(editorfile); - } + }, }; diff --git a/lib/grammar-utils/operating-system.js b/lib/grammar-utils/operating-system.js index dfc586eb..31d82c8b 100644 --- a/lib/grammar-utils/operating-system.js +++ b/lib/grammar-utils/operating-system.js @@ -1,4 +1,5 @@ 'use babel'; + import os from 'os'; // Public: GrammarUtils.OperatingSystem - a module which exposes different @@ -22,5 +23,5 @@ export default { release() { return os.release(); - } + }, }; diff --git a/lib/grammar-utils/perl.js b/lib/grammar-utils/perl.js index 96e87273..dc9bca5b 100644 --- a/lib/grammar-utils/perl.js +++ b/lib/grammar-utils/perl.js @@ -9,5 +9,5 @@ export default { // Returns the {String} filepath of the new file createTempFileWithCode(code) { return module.parent.exports.createTempFileWithCode(code); - } + }, }; diff --git a/lib/grammar-utils/php.js b/lib/grammar-utils/php.js index 6c884271..7fdd54a2 100644 --- a/lib/grammar-utils/php.js +++ b/lib/grammar-utils/php.js @@ -10,5 +10,5 @@ export default { createTempFileWithCode(code) { if (!/^[\s]*<\?php/.test(code)) { code = ` { - this.span({class: 'heading-title', outlet: 'title'}); - return this.span({class: 'heading-status', outlet: 'status'}); - } + return this.div({ class: 'header-view' }, () => { + this.span({ class: 'heading-title', outlet: 'title' }); + return this.span({ class: 'heading-status', outlet: 'status' }); + }, ); } @@ -20,4 +21,4 @@ export default class HeaderView extends View { case 'err': return this.status.addClass('icon-alert'); } } -}; +} diff --git a/lib/link-paths.js b/lib/link-paths.js index b2af65d6..b18d41f2 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -1,25 +1,27 @@ 'use babel'; + let linkPaths; -let regex = new RegExp(`\ +const regex = new RegExp('\ ((?:\\w:)?/?\ (?:[-\\w.]+/)*[-\\w.]+)\ :(\\d+)\ (?::(\\d+))?\ -`, 'g'); -let template = '$&'; +', 'g'); +const template = '$&'; export default linkPaths = lines => lines.replace(regex, template); linkPaths.listen = parentView => - parentView.on('click', '.-linked-path', function(event) { - let el = this; - let {path, line, column} = el.dataset; + parentView.on('click', '.-linked-path', function (event) { + const el = this; + let { path, line, column } = el.dataset; line = Number(line) - 1; // column number is optional column = column ? Number(column) - 1 : 0; return atom.workspace.open(path, { initialLine: line, - initialColumn: column - });}) + initialColumn: column, + }); + }) ; diff --git a/lib/runner.js b/lib/runner.js index 43c1203f..a7005a3b 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -1,4 +1,5 @@ 'use babel'; + import { Emitter, BufferedProcess } from 'atom'; import fs from 'fs'; import path from 'path'; @@ -12,7 +13,7 @@ export default class Runner { // // * `scriptOptions` a {ScriptOptions} object instance // * `emitter` Atom's {Emitter} instance. You probably don't need to overwrite it - constructor(scriptOptions, emitter = new Emitter) { + constructor(scriptOptions, emitter = new Emitter()) { this.stdoutFunc = this.stdoutFunc.bind(this); this.stderrFunc = this.stderrFunc.bind(this); this.onExit = this.onExit.bind(this); @@ -24,14 +25,14 @@ export default class Runner { run(command, extraArgs, codeContext, inputString = null) { this.startTime = new Date(); - let args = this.args(codeContext, extraArgs); - let options = this.options(); - let stdout = this.stdoutFunc; - let stderr = this.stderrFunc; - let exit = this.onExit; + const args = this.args(codeContext, extraArgs); + const options = this.options(); + const stdout = this.stdoutFunc; + const stderr = this.stderrFunc; + const exit = this.onExit; this.bufferedProcess = new BufferedProcess({ - command, args, options, stdout, stderr, exit + command, args, options, stdout, stderr, exit, }); if (inputString) { @@ -65,11 +66,11 @@ export default class Runner { getCwd() { let cwd = this.scriptOptions.workingDirectory; - let workingDirectoryProvided = (cwd != null) && cwd !== ''; + const workingDirectoryProvided = (cwd != null) && cwd !== ''; if (!workingDirectoryProvided) { switch (atom.config.get('script.cwdBehavior')) { case 'First project directory': - let paths = atom.project.getPaths(); + const paths = atom.project.getPaths(); if (__guard__(paths, x => x.length) > 0) { try { cwd = fs.statSync(paths[0]).isDirectory() ? paths[0] : path.join(paths[0], '..'); @@ -109,7 +110,7 @@ export default class Runner { } createOnErrorFunc(command) { - return nodeError => { + return (nodeError) => { this.bufferedProcess = null; this.emitter.emit('did-not-run', { command }); return nodeError.handle(); @@ -123,7 +124,7 @@ export default class Runner { options() { return { cwd: this.getCwd(), - env: this.scriptOptions.mergedEnv(process.env) + env: this.scriptOptions.mergedEnv(process.env), }; } @@ -139,15 +140,15 @@ export default class Runner { if (project_path != null) { arg = arg.replace(/{PROJECT_PATH}/g, project_path); } - + return arg; } args(codeContext, extraArgs) { let args = (this.scriptOptions.cmdArgs.concat(extraArgs)).concat(this.scriptOptions.scriptArgs); - let project_path = this.getProjectPath || ''; - args = (args.map((arg) => this.fillVarsInArg(arg, codeContext, project_path))); - + const project_path = this.getProjectPath || ''; + args = (args.map(arg => this.fillVarsInArg(arg, codeContext, project_path))); + if ((this.scriptOptions.cmd == null) || this.scriptOptions.cmd === '') { args = codeContext.shebangCommandArgs().concat(args); } @@ -155,9 +156,9 @@ export default class Runner { } getProjectPath() { - let filePath = atom.workspace.getActiveTextEditor().getPath(); - let projectPaths = atom.project.getPaths(); - for (let projectPath of projectPaths) { + const filePath = atom.workspace.getActiveTextEditor().getPath(); + const projectPaths = atom.project.getPaths(); + for (const projectPath of projectPaths) { if (filePath.indexOf(projectPath) > -1) { if (fs.statSync(projectPath).isDirectory()) { return projectPath; @@ -167,7 +168,7 @@ export default class Runner { } } } -}; +} Runner.initClass(); function __guard__(value, transform) { diff --git a/lib/runtime.js b/lib/runtime.js index 90647f8a..d2062389 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -1,4 +1,5 @@ 'use babel'; + import CommandContext from './command-context'; import _ from 'underscore'; @@ -13,7 +14,7 @@ export default class Runtime { // Public: Initializes a new {Runtime} instance // // This class is responsible for properly configuring {Runner} - constructor(runner, codeContextBuilder, observers = [], emitter = new Emitter) { + constructor(runner, codeContextBuilder, observers = [], emitter = new Emitter()) { this.runner = runner; this.codeContextBuilder = codeContextBuilder; this.observers = observers; @@ -51,18 +52,18 @@ export default class Runtime { // * "Line Number Based" // * "File Based" // input (Optional) - {String} that'll be provided to the `stdin` of the new process - execute(argType = "Selection Based", input = null, options = null) { + execute(argType = 'Selection Based', input = null, options = null) { if (atom.config.get('script.stopOnRerun')) { this.stop(); } this.emitter.emit('start'); - let codeContext = this.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), argType); + const codeContext = this.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), argType); // In the future we could handle a runner without the language being part // of the grammar map, using the options runner if (__guard__(codeContext, x => x.lang) == null) { return; } - let executionOptions = options ? options : this.scriptOptions; - let commandContext = CommandContext.build(this, executionOptions, codeContext); + const executionOptions = options ? options : this.scriptOptions; + const commandContext = CommandContext.build(this, executionOptions, codeContext); if (!commandContext) { return; } @@ -73,8 +74,8 @@ export default class Runtime { this.emitter.emit('did-context-create', { lang: codeContext.lang, filename: codeContext.filename, - lineNumber: codeContext.lineNumber - } + lineNumber: codeContext.lineNumber, + }, ); this.runner.scriptOptions = executionOptions; @@ -173,7 +174,7 @@ export default class Runtime { didNotBuildArgs(error) { return this.emitter.emit('did-not-build-args', { error }); } -}; +} Runtime.initClass(); function __guard__(value, transform) { diff --git a/lib/script-input-view.js b/lib/script-input-view.js index 831ec057..6c084bbf 100644 --- a/lib/script-input-view.js +++ b/lib/script-input-view.js @@ -1,21 +1,22 @@ 'use babel'; + import { Emitter, CompositeDisposable } from 'atom'; import { $$, View } from 'atom-space-pen-views'; export default class ScriptInputView extends View { static content() { - return this.div({class: 'script-input-view'}, () => { - this.div({class: 'caption'}, ''); - return this.tag('atom-text-editor', {mini: '', class: 'editor mini'}); - } + return this.div({ class: 'script-input-view' }, () => { + this.div({ class: 'caption' }, ''); + return this.tag('atom-text-editor', { mini: '', class: 'editor mini' }); + }, ); } initialize(options) { this.options = options; - this.emitter = new Emitter; + this.emitter = new Emitter(); - this.panel = atom.workspace.addModalPanel({item: this}); + this.panel = atom.workspace.addModalPanel({ item: this }); this.panel.hide(); this.editor = this.find('atom-text-editor').get(0).getModel(); @@ -31,23 +32,23 @@ export default class ScriptInputView extends View { this.find('.caption').text(this.options.caption); } - this.find('atom-text-editor').on('keydown', e => { + this.find('atom-text-editor').on('keydown', (e) => { if (e.keyCode === 27) { e.stopPropagation(); this.emitter.emit('on-cancel'); return this.hide(); } - } + }, ); - this.subscriptions = new CompositeDisposable; + this.subscriptions = new CompositeDisposable(); return this.subscriptions.add(atom.commands.add('atom-workspace', { 'core:confirm': () => { this.emitter.emit('on-confirm', this.editor.getText().trim()); return this.hide(); - } - } - ) + }, + }, + ), ); } @@ -72,7 +73,7 @@ export default class ScriptInputView extends View { __guard__(this.subscriptions, x => x.dispose()); return this.panel.destroy(); } -}; +} function __guard__(value, transform) { return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 1312cd18..b56016f2 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -1,4 +1,5 @@ 'use babel'; + import { CompositeDisposable, Emitter } from 'atom'; import { View } from 'atom-space-pen-views'; import ScriptInputView from './script-input-view'; @@ -6,106 +7,90 @@ import ScriptInputView from './script-input-view'; export default class ScriptOptionsView extends View { static content() { - return this.div({class: 'options-view'}, () => { - this.div({class: 'panel-heading'}, 'Configure Run Options'); + return this.div({ class: 'options-view' }, () => { + this.div({ class: 'panel-heading' }, 'Configure Run Options'); this.table(() => { this.tr(() => { - this.td({class: 'first'}, () => this.label('Current Working Directory:')); - return this.td({class: 'second'}, () => { - return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputCwd'}); - } + this.td({ class: 'first' }, () => this.label('Current Working Directory:')); + return this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' }), ); - } + }, ); this.tr(() => { this.td(() => this.label('Command')); - return this.td(() => { - return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputCommand'}); - } + return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' }), ); - } + }, ); this.tr(() => { this.td(() => this.label('Command Arguments:')); - return this.td(() => { - return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputCommandArgs'}); - } + return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' }), ); - } + }, ); this.tr(() => { this.td(() => this.label('Program Arguments:')); - return this.td(() => { - return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputScriptArgs'}); - } + return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' }), ); - } + }, ); return this.tr(() => { this.td(() => this.label('Environment Variables:')); - return this.td(() => { - return this.tag('atom-text-editor', {mini: '', class: 'editor mini', outlet: 'inputEnv'}); - } + return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' }), ); - } + }, ); - } + }, ); - return this.div({class: 'block buttons'}, () => { - let css = 'btn inline-block-tight'; - this.button({class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close'}, () => { - return this.span({class: 'icon icon-x'}, 'Cancel'); - } + return this.div({ class: 'block buttons' }, () => { + const css = 'btn inline-block-tight'; + this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => this.span({ class: 'icon icon-x' }, 'Cancel'), ); - return this.span({class: 'right-buttons'}, () => { - this.button({class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile'}, () => { - return this.span({class: 'icon icon-file-text'}, 'Save as profile'); - } + return this.span({ class: 'right-buttons' }, () => { + this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => this.span({ class: 'icon icon-file-text' }, 'Save as profile'), ); - return this.button({class: `btn ${css} run`, outlet: 'buttonRun', click: 'run'}, () => { - return this.span({class: 'icon icon-playback-play'}, 'Run'); - } + return this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), ); - } + }, ); - } + }, ); - } + }, ); } initialize(runOptions) { this.runOptions = runOptions; - this.emitter = new Emitter; + this.emitter = new Emitter(); - this.subscriptions = new CompositeDisposable; + this.subscriptions = new CompositeDisposable(); this.subscriptions.add(atom.commands.add('atom-workspace', { 'core:cancel': () => this.hide(), 'core:close': () => this.hide(), 'script:close-options': () => this.hide(), 'script:run-options': () => this.panel.isVisible() ? this.hide() : this.show(), - 'script:save-options': () => this.saveOptions() - } - ) + 'script:save-options': () => this.saveOptions(), + }, + ), ); // handling focus traversal and run on enter - this.find('atom-text-editor').on('keydown', e => { + this.find('atom-text-editor').on('keydown', (e) => { if (e.keyCode !== 9 && e.keyCode !== 13) { return true; } switch (e.keyCode) { case 9: e.preventDefault(); e.stopPropagation(); - let row = this.find(e.target).parents('tr:first').nextAll('tr:first'); + const row = this.find(e.target).parents('tr:first').nextAll('tr:first'); if (row.length) { return row.find('atom-text-editor').focus(); } else { return this.buttonCancel.focus(); } case 13: return this.run(); } - } + }, ); - this.panel = atom.workspace.addModalPanel({item: this}); + this.panel = atom.workspace.addModalPanel({ item: this }); return this.panel.hide(); } @@ -114,30 +99,30 @@ export default class ScriptOptionsView extends View { if (args.indexOf('"') === -1 && args.indexOf("'") === -1) { // no escaping, just split - return (args.split(' ').filter((item) => item !== '').map((item) => item)); + return (args.split(' ').filter(item => item !== '').map(item => item)); } - let replaces = {}; + const replaces = {}; - let regexps = [/"[^"]*"/ig, /'[^']*'/ig]; + const regexps = [/"[^"]*"/ig, /'[^']*'/ig]; // find strings in arguments - for (let regex of regexps) { var matches = ((matches != null) ? matches : []).concat((args.match(regex)) || []); } + for (const regex of regexps) { var matches = ((matches != null) ? matches : []).concat((args.match(regex)) || []); } // format replacement as bash comment to avoid replacing valid input for (var match of matches) { (replaces[`\`#match${Object.keys(replaces).length + 1}\``] = match); } // replace strings - for (match in replaces) { let part = replaces[match]; (args = args.replace(new RegExp(part, 'g'), match)); } - let split = (args.split(' ').filter((item) => item !== '').map((item) => item)); + for (match in replaces) { const part = replaces[match]; (args = args.replace(new RegExp(part, 'g'), match)); } + const split = (args.split(' ').filter(item => item !== '').map(item => item)); - let replacer = function(argument) { - for (match in replaces) { let replacement = replaces[match]; (argument = argument.replace(match, replacement)); } + const replacer = function (argument) { + for (match in replaces) { const replacement = replaces[match]; (argument = argument.replace(match, replacement)); } return argument; }; // restore strings, strip quotes - return (split.map((argument) => replacer(argument).replace(/"|'/g, ''))); + return (split.map(argument => replacer(argument).replace(/"|'/g, ''))); } getOptions() { @@ -146,16 +131,16 @@ export default class ScriptOptionsView extends View { cmd: this.inputCommand.get(0).getModel().getText(), cmdArgs: this.splitArgs(this.inputCommandArgs), env: this.inputEnv.get(0).getModel().getText(), - scriptArgs: this.splitArgs(this.inputScriptArgs) + scriptArgs: this.splitArgs(this.inputScriptArgs), }; } saveOptions() { return (() => { - let result = []; - let object = this.getOptions(); - for (let key in object) { - let value = object[key]; + const result = []; + const object = this.getOptions(); + for (const key in object) { + const value = object[key]; result.push(this.runOptions[key] = value); } return result; @@ -168,23 +153,21 @@ export default class ScriptOptionsView extends View { saveProfile() { this.hide(); - let options = this.getOptions(); + const options = this.getOptions(); - let inputView = new ScriptInputView({caption: 'Enter profile name:'}); - inputView.onCancel(() => { - return this.show(); - } + const inputView = new ScriptInputView({ caption: 'Enter profile name:' }); + inputView.onCancel(() => this.show(), ); - inputView.onConfirm(profileName => { + inputView.onConfirm((profileName) => { if (!profileName) { return; } - for (let editor of this.find('atom-text-editor')) { editor.getModel().setText(''); } + for (const editor of this.find('atom-text-editor')) { editor.getModel().setText(''); } // clean up the options this.saveOptions(); // add to global profiles list - return this.emitter.emit('on-profile-save', {name: profileName, options}); - } + return this.emitter.emit('on-profile-save', { name: profileName, options }); + }, ); return inputView.show(); @@ -217,7 +200,7 @@ export default class ScriptOptionsView extends View { workspaceView() { return atom.views.getView(atom.workspace); } -}; +} function __guard__(value, transform) { return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; diff --git a/lib/script-options.js b/lib/script-options.js index f91a95af..9460665c 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -1,4 +1,5 @@ 'use babel'; + import _ from 'underscore'; export default class ScriptOptions { @@ -14,9 +15,9 @@ export default class ScriptOptions { } static createFromOptions(name, options) { - let so = new ScriptOptions; + const so = new ScriptOptions(); so.name = name; - for (let key in options) { let value = options[key]; so[key] = value; } + for (const key in options) { const value = options[key]; so[key] = value; } return so; } @@ -29,7 +30,7 @@ export default class ScriptOptions { cmd: this.cmd, cmdArgs: this.cmdArgs, env: this.env, - scriptArgs: this.scriptArgs + scriptArgs: this.scriptArgs, }; } @@ -40,9 +41,9 @@ export default class ScriptOptions { getEnv() { if ((this.env == null) || this.env === '') { return {}; } - let mapping = {}; + const mapping = {}; - for (let pair of this.env.trim().split(';')) { + for (const pair of this.env.trim().split(';')) { let [key, value] = pair.split('=', 2); mapping[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, '$1'); mapping[key] = mapping[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); @@ -58,16 +59,16 @@ export default class ScriptOptions { // // Returns the merged environment {Object}. mergedEnv(otherEnv) { - let otherCopy = _.extend({}, otherEnv); - let mergedEnv = _.extend(otherCopy, this.getEnv()); + const otherCopy = _.extend({}, otherEnv); + const mergedEnv = _.extend(otherCopy, this.getEnv()); - for (let key in mergedEnv) { - let value = mergedEnv[key]; + for (const key in mergedEnv) { + const value = mergedEnv[key]; mergedEnv[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, '$1'); mergedEnv[key] = mergedEnv[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); } return mergedEnv; } -}; +} ScriptOptions.initClass(); diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 354d6d57..c17f6ee3 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -1,4 +1,5 @@ 'use babel'; + import { CompositeDisposable, Emitter } from 'atom'; import { $$, View, SelectListView } from 'atom-space-pen-views'; import ScriptInputView from './script-input-view'; @@ -8,15 +9,15 @@ export default class ScriptProfileRunView extends SelectListView { this.profiles = profiles; super.initialize(...arguments); - this.emitter = new Emitter; + this.emitter = new Emitter(); - this.subscriptions = new CompositeDisposable; + this.subscriptions = new CompositeDisposable(); this.subscriptions.add(atom.commands.add('atom-workspace', { 'core:cancel': () => this.hide(), 'core:close': () => this.hide(), - 'script:run-with-profile': () => this.panel.isVisible() ? this.hide() : this.show() - } - ) + 'script:run-with-profile': () => this.panel.isVisible() ? this.hide() : this.show(), + }, + ), ); this.setItems(this.profiles); @@ -27,26 +28,18 @@ export default class ScriptProfileRunView extends SelectListView { this.addClass('overlay from-top script-profile-run-view'); // @panel.hide() - this.buttons = $$(function() { - return this.div({class: 'block buttons'}, () => { - let css = 'btn inline-block-tight'; - this.button({class: "btn cancel"}, () => { - return this.span({class: 'icon icon-x'}, 'Cancel'); - } + this.buttons = $$(function () { + return this.div({ class: 'block buttons' }, () => { + const css = 'btn inline-block-tight'; + this.button({ class: 'btn cancel' }, () => this.span({ class: 'icon icon-x' }, 'Cancel'), ); - this.button({class: "btn rename"}, () => { - return this.span({class: 'icon icon-pencil'}, 'Rename'); - } + this.button({ class: 'btn rename' }, () => this.span({ class: 'icon icon-pencil' }, 'Rename'), ); - this.button({class: "btn delete"}, () => { - return this.span({class: 'icon icon-trashcan'}, 'Delete'); - } + this.button({ class: 'btn delete' }, () => this.span({ class: 'icon icon-trashcan' }, 'Delete'), ); - return this.button({class: "btn run"}, () => { - return this.span({class: 'icon icon-playback-play'}, 'Run'); - } + return this.button({ class: 'btn run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), ); - } + }, ); }); @@ -57,29 +50,29 @@ export default class ScriptProfileRunView extends SelectListView { this.buttons.find('.btn.run').on('click', () => this.run()); // fix focus traversal (from run button to filter editor) - this.buttons.find('.btn.run').on('keydown', e => { + this.buttons.find('.btn.run').on('keydown', (e) => { if (e.keyCode === 9) { e.stopPropagation(); e.preventDefault(); return this.focusFilterEditor(); } - } + }, ); // hide panel on ecsape - this.on('keydown', e => { + this.on('keydown', (e) => { if (e.keyCode === 27) { this.hide(); } if (e.keyCode === 13) { return this.run(); } - } + }, ); // append buttons container this.append(this.buttons); - let selector = '.rename, .delete, .run'; + const selector = '.rename, .delete, .run'; if (this.profiles.length) { this.buttons.find(selector).show(); } else { this.buttons.find(selector).hide(); } - this.panel = atom.workspace.addModalPanel({item: this}); + this.panel = atom.workspace.addModalPanel({ item: this }); return this.panel.hide(); } @@ -88,22 +81,22 @@ export default class ScriptProfileRunView extends SelectListView { onProfileRun(callback) { return this.emitter.on('on-profile-run', callback); } rename() { - let profile = this.getSelectedItem(); + const profile = this.getSelectedItem(); if (!profile) { return; } - let inputView = new ScriptInputView({caption: 'Enter new profile name:', default: profile.name}); + const inputView = new ScriptInputView({ caption: 'Enter new profile name:', default: profile.name }); inputView.onCancel(() => this.show()); - inputView.onConfirm(newProfileName => { + inputView.onConfirm((newProfileName) => { if (!newProfileName) { return; } - return this.emitter.emit('on-profile-change', {profile, key: 'name', value: newProfileName}); - } + return this.emitter.emit('on-profile-change', { profile, key: 'name', value: newProfileName }); + }, ); return inputView.show(); } delete() { - let profile = this.getSelectedItem(); + const profile = this.getSelectedItem(); if (!profile) { return; } return atom.confirm({ @@ -111,8 +104,8 @@ export default class ScriptProfileRunView extends SelectListView { detailedMessage: `Are you sure you want to delete \"${profile.name}\" profile?`, buttons: { No: () => this.focusFilterEditor(), - Yes: () => this.emitter.emit('on-profile-delete', profile) - } + Yes: () => this.emitter.emit('on-profile-delete', profile), + }, }); } @@ -125,18 +118,15 @@ export default class ScriptProfileRunView extends SelectListView { } viewForItem(item) { - return $$(function() { return this.li({class: 'two-lines profile'}, () => { - this.div({class: 'primary-line name'}, () => { - return this.text(item.name); - } + return $$(function () { + return this.li({ class: 'two-lines profile' }, () => { + this.div({ class: 'primary-line name' }, () => this.text(item.name), ); - return this.div({class: 'secondary-line description'}, () => { - return this.text(item.description); - } + return this.div({ class: 'secondary-line description' }, () => this.text(item.description), ); - } + }, ); - }); + }); } cancel() {} @@ -158,7 +148,7 @@ export default class ScriptProfileRunView extends SelectListView { this.setItems(this.profiles); // toggle profile controls - let selector = '.rename, .delete, .run'; + const selector = '.rename, .delete, .run'; if (this.profiles.length) { this.buttons.find(selector).show(); } else { this.buttons.find(selector).hide(); } this.populateList(); @@ -172,14 +162,13 @@ export default class ScriptProfileRunView extends SelectListView { } run() { - let profile = this.getSelectedItem(); + const profile = this.getSelectedItem(); if (!profile) { return; } this.emitter.emit('on-profile-run', profile); return this.hide(); } -}; - +} function __guard__(value, transform) { diff --git a/lib/script-view.js b/lib/script-view.js index e51f650b..28c9a97d 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -1,4 +1,5 @@ 'use babel'; + import { View, $$ } from 'atom-space-pen-views'; import HeaderView from './header-view'; @@ -11,15 +12,14 @@ import _ from 'underscore'; // Runs a portion of a script through an interpreter and displays it line by line export default class ScriptView extends MessagePanelView { static initClass() { - this.prototype.scrollTimeout = null; } constructor() { - this.ansiFilter = new AnsiFilter; + this.ansiFilter = new AnsiFilter(); - this.headerView = new HeaderView; + this.headerView = new HeaderView(); - super({title: this.headerView, rawTitle: true, closeMethod: 'destroy'}); + super({ title: this.headerView, rawTitle: true, closeMethod: 'destroy' }); this.showInTab = this.showInTab.bind(this); this.setHeaderAndShowExecutionTime = this.setHeaderAndShowExecutionTime.bind(this); @@ -30,12 +30,12 @@ export default class ScriptView extends MessagePanelView { } addShowInTabIcon() { - let icon = $$(function() { + const icon = $$(function () { return this.div({ class: 'heading-show-in-tab inline-block icon-file-text', style: 'cursor: pointer;', outlet: 'btnShowInTab', - title: 'Show output in new tab' + title: 'Show output in new tab', }); }); @@ -46,7 +46,7 @@ export default class ScriptView extends MessagePanelView { showInTab() { // concat output let output = ''; - for (let message of this.messages) { output += message.text(); } + for (const message of this.messages) { output += message.text(); } // represent command context let context = ''; @@ -96,7 +96,7 @@ export default class ScriptView extends MessagePanelView { // We are not actually closing the panel here since we want to trigger // 'script:close-view' which will eventually remove the panel via 'removePanel' close() { - let workspaceView = atom.views.getView(atom.workspace); + const workspaceView = atom.views.getView(atom.workspace); return atom.commands.dispatch(workspaceView, 'script:close-view'); } @@ -106,8 +106,8 @@ export default class ScriptView extends MessagePanelView { } createGitHubIssueLink(argType, lang) { - let title = `Add ${argType} support for ${lang}`; - let body = `\ + const title = `Add ${argType} support for ${lang}`; + const body = `\ ##### Platform: \`${process.platform}\` ---\ `; @@ -115,49 +115,49 @@ export default class ScriptView extends MessagePanelView { // NOTE: Replace "#" after regular encoding so we don't double escape it. encodedURI = encodedURI.replace(/#/g, '%23'); - let err = $$(function() { - this.p({class: 'block'}, `${argType} runner not available for ${lang}.`); - return this.p({class: 'block'}, () => { + const err = $$(function () { + this.p({ class: 'block' }, `${argType} runner not available for ${lang}.`); + return this.p({ class: 'block' }, () => { this.text('If it should exist, add an '); - this.a({href: encodedURI}, 'issue on GitHub'); + this.a({ href: encodedURI }, 'issue on GitHub'); return this.text(', or send your own pull request.'); - } + }, ); }); return this.handleError(err); } showUnableToRunError(command) { - return this.add($$(function() { + return this.add($$(function () { this.h1('Unable to run'); this.pre(_.escape(command)); this.h2('Did you start Atom from the command line?'); this.pre(' atom .'); this.h2('Is it in your PATH?'); return this.pre(`PATH: ${_.escape(process.env.PATH)}`); - }) + }), ); } showNoLanguageSpecified() { - let err = $$(function() { - return this.p(`You must select a language in the lower right, or save the file \ -with an appropriate extension.` + const err = $$(function () { + return this.p('You must select a language in the lower right, or save the file \ +with an appropriate extension.', ); }); return this.handleError(err); } showLanguageNotSupported(lang) { - let err = $$(function() { - this.p({class: 'block'}, `Command not configured for ${lang}!`); - return this.p({class: 'block'}, () => { + const err = $$(function () { + this.p({ class: 'block' }, `Command not configured for ${lang}!`); + return this.p({ class: 'block' }, () => { this.text('Add an '); - this.a({href: `https://github.com/rgbkrk/atom-script/issues/\ -new?title=Add%20support%20for%20${lang}` - }, 'issue on GitHub'); + this.a({ href: `https://github.com/rgbkrk/atom-script/issues/\ +new?title=Add%20support%20for%20${lang}`, + }, 'issue on GitHub'); return this.text(' or send your own Pull Request.'); - } + }, ); }); return this.handleError(err); @@ -187,17 +187,15 @@ new?title=Add%20support%20for%20${lang}` line = this.ansiFilter.toHtml(line); line = linkPaths(line); - let {clientHeight, scrollTop, scrollHeight} = this.body[0]; + let { clientHeight, scrollTop, scrollHeight } = this.body[0]; // indicates that the panel is scrolled to the bottom, thus we know that // we are not interfering with the user's manual scrolling - let atEnd = scrollTop >= (scrollHeight - clientHeight); + const atEnd = scrollTop >= (scrollHeight - clientHeight); - this.add($$(function() { - return this.pre({class: `line ${css}`}, () => { - return this.raw(line); - } + this.add($$(function () { + return this.pre({ class: `line ${css}` }, () => this.raw(line), ); - }) + }), ); if (atom.config.get('script.scrollWithOutput') && atEnd) { @@ -223,5 +221,5 @@ new?title=Add%20support%20for%20${lang}` return atom.clipboard.write(stripAnsi(this.results)); } } -}; +} ScriptView.initClass(); diff --git a/lib/script.js b/lib/script.js index 3f3b02c8..5cabea42 100644 --- a/lib/script.js +++ b/lib/script.js @@ -1,4 +1,5 @@ 'use babel'; + import CodeContextBuilder from './code-context-builder'; import GrammarUtils from './grammar-utils'; import Runner from './runner'; @@ -16,27 +17,27 @@ export default { enableExecTime: { title: 'Output the time it took to execute the script', type: 'boolean', - default: true + default: true, }, escapeConsoleOutput: { title: 'HTML escape console output', type: 'boolean', - default: true + default: true, }, ignoreSelection: { title: 'Ignore selection (file-based runs only)', type: 'boolean', - default: false + default: false, }, scrollWithOutput: { title: 'Scroll with output', type: 'boolean', - default: true + default: true, }, stopOnRerun: { title: 'Stop running process on rerun', type: 'boolean', - default: false + default: false, }, cwdBehavior: { title: 'Default CWD Behavior', @@ -46,9 +47,9 @@ export default { enum: [ 'First project directory', 'Project directory of the script', - 'Directory of the script' - ] - } + 'Directory of the script', + ], + }, }, // For some reason, the text of these options does not show in package settings view // default: 'firstProj' @@ -71,22 +72,22 @@ export default { // profiles loading this.scriptProfiles = []; if (state.profiles) { - for (let profile of state.profiles) { - let so = ScriptOptions.createFromOptions(profile.name, profile); + for (const profile of state.profiles) { + const so = ScriptOptions.createFromOptions(profile.name, profile); this.scriptProfiles.push(so); } } this.scriptProfileRunView = new ScriptProfileRunView(this.scriptProfiles); - let codeContextBuilder = new CodeContextBuilder; - let runner = new Runner(this.scriptOptions); + const codeContextBuilder = new CodeContextBuilder(); + const runner = new Runner(this.scriptOptions); - let observer = new ViewRuntimeObserver(this.scriptView); + const observer = new ViewRuntimeObserver(this.scriptView); this.runtime = new Runtime(runner, codeContextBuilder, [observer]); - this.subscriptions = new CompositeDisposable; + this.subscriptions = new CompositeDisposable(); this.subscriptions.add(atom.commands.add('atom-workspace', { 'core:cancel': () => this.closeScriptViewAndStopRunner(), 'core:close': () => this.closeScriptViewAndStopRunner(), @@ -94,22 +95,22 @@ export default { 'script:copy-run-results': () => this.scriptView.copyResults(), 'script:kill-process': () => this.runtime.stop(), 'script:run-by-line-number': () => this.runtime.execute('Line Number Based'), - 'script:run': () => this.runtime.execute('Selection Based') - } - ) + 'script:run': () => this.runtime.execute('Selection Based'), + }, + ), ); // profile created - this.scriptOptionsView.onProfileSave(profileData => { + this.scriptOptionsView.onProfileSave((profileData) => { // create and fill out profile - let profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); + const profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); - let codeContext = this.runtime.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), - "Selection Based"); + const codeContext = this.runtime.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), + 'Selection Based'); profile.lang = codeContext.lang; // formatting description - let opts = profile.toObject(); + const opts = profile.toObject(); let desc = `Language: ${codeContext.lang}`; if (opts.cmd) { desc += `, Command: ${opts.cmd}`; } if (opts.cmdArgs && opts.cmd) { desc += ` ${opts.cmdArgs.join(' ')}`; } @@ -120,35 +121,35 @@ export default { this.scriptOptionsView.hide(); this.scriptProfileRunView.show(); return this.scriptProfileRunView.setProfiles(this.scriptProfiles); - } + }, ); // profile deleted - this.scriptProfileRunView.onProfileDelete(profile => { - let index = this.scriptProfiles.indexOf(profile); + this.scriptProfileRunView.onProfileDelete((profile) => { + const index = this.scriptProfiles.indexOf(profile); if (index === -1) { return; } if (index !== -1) { this.scriptProfiles.splice(index, 1); } return this.scriptProfileRunView.setProfiles(this.scriptProfiles); - } + }, ); // profile renamed - this.scriptProfileRunView.onProfileChange(data => { - let index = this.scriptProfiles.indexOf(data.profile); + this.scriptProfileRunView.onProfileChange((data) => { + const index = this.scriptProfiles.indexOf(data.profile); if (index === -1 || (this.scriptProfiles[index][data.key] == null)) { return; } this.scriptProfiles[index][data.key] = data.value; this.scriptProfileRunView.show(); return this.scriptProfileRunView.setProfiles(this.scriptProfiles); - } + }, ); // profile renamed - return this.scriptProfileRunView.onProfileRun(profile => { + return this.scriptProfileRunView.onProfileRun((profile) => { if (!profile) { return; } return this.runtime.execute('Selection Based', null, profile); - } + }, ); }, @@ -201,8 +202,8 @@ export default { // // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example provideBlankRuntime() { - let runner = new Runner(new ScriptOptions); - let codeContextBuilder = new CodeContextBuilder; + const runner = new Runner(new ScriptOptions()); + const codeContextBuilder = new CodeContextBuilder(); return new Runtime(runner, codeContextBuilder, []); }, @@ -210,13 +211,13 @@ export default { serialize() { // TODO: True serialization needs to take the options view into account // and handle deserialization - let serializedProfiles = []; - for (let profile of this.scriptProfiles) { serializedProfiles.push(profile.toObject()); } + const serializedProfiles = []; + for (const profile of this.scriptProfiles) { serializedProfiles.push(profile.toObject()); } return { scriptViewState: this.scriptView.serialize(), scriptOptionsViewState: this.scriptOptionsView.serialize(), - profiles: serializedProfiles + profiles: serializedProfiles, }; - } + }, }; diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index 51ee2d9e..c9d83673 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -1,80 +1,59 @@ 'use babel'; + import { CompositeDisposable } from 'atom'; export default class ViewRuntimeObserver { - constructor(view, subscriptions = new CompositeDisposable) { + constructor(view, subscriptions = new CompositeDisposable()) { this.view = view; this.subscriptions = subscriptions; } observe(runtime) { - this.subscriptions.add(runtime.onStart(() => { - return this.view.resetView(); - } - ) + this.subscriptions.add(runtime.onStart(() => this.view.resetView(), + ), ); - this.subscriptions.add(runtime.onStarted(ev => { - return this.view.commandContext = ev; - } - ) + this.subscriptions.add(runtime.onStarted(ev => this.view.commandContext = ev, + ), ); - this.subscriptions.add(runtime.onStopped(() => { - return this.view.stop(); - } - ) + this.subscriptions.add(runtime.onStopped(() => this.view.stop(), + ), ); - this.subscriptions.add(runtime.onDidWriteToStderr(ev => { - return this.view.display('stderr', ev.message); - } - ) + this.subscriptions.add(runtime.onDidWriteToStderr(ev => this.view.display('stderr', ev.message), + ), ); - this.subscriptions.add(runtime.onDidWriteToStdout(ev => { - return this.view.display('stdout', ev.message); - } - ) + this.subscriptions.add(runtime.onDidWriteToStdout(ev => this.view.display('stdout', ev.message), + ), ); - this.subscriptions.add(runtime.onDidExit(ev => { - return this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime); - } - ) + this.subscriptions.add(runtime.onDidExit(ev => this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime), + ), ); - this.subscriptions.add(runtime.onDidNotRun(ev => { - return this.view.showUnableToRunError(ev.command); - } - ) + this.subscriptions.add(runtime.onDidNotRun(ev => this.view.showUnableToRunError(ev.command), + ), ); - this.subscriptions.add(runtime.onDidContextCreate(ev => { - let title = `${ev.lang} - ` + ev.filename + ((ev.lineNumber != null) ? `:${ev.lineNumber}` : ''); + this.subscriptions.add(runtime.onDidContextCreate((ev) => { + const title = `${ev.lang} - ${ev.filename}${(ev.lineNumber != null) ? `:${ev.lineNumber}` : ''}`; return this.view.setHeaderTitle(title); - } - ) + }, + ), ); - this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => { - return this.view.showNoLanguageSpecified(); - } - ) + this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => this.view.showNoLanguageSpecified(), + ), ); - this.subscriptions.add(runtime.onDidNotSupportLanguage(ev => { - return this.view.showLanguageNotSupported(ev.lang); - } - ) + this.subscriptions.add(runtime.onDidNotSupportLanguage(ev => this.view.showLanguageNotSupported(ev.lang), + ), ); - this.subscriptions.add(runtime.onDidNotSupportMode(ev => { - return this.view.createGitHubIssueLink(ev.argType, ev.lang); - } - ) + this.subscriptions.add(runtime.onDidNotSupportMode(ev => this.view.createGitHubIssueLink(ev.argType, ev.lang), + ), ); - return this.subscriptions.add(runtime.onDidNotBuildArgs(ev => { - return this.view.handleError(ev.error); - } - ) + return this.subscriptions.add(runtime.onDidNotBuildArgs(ev => this.view.handleError(ev.error), + ), ); } destroy() { return __guard__(this.subscriptions, x => x.dispose()); } -}; +} function __guard__(value, transform) { return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; diff --git a/spec/code-context-builder-spec.js b/spec/code-context-builder-spec.js index 0db0a2a3..db19fc94 100644 --- a/spec/code-context-builder-spec.js +++ b/spec/code-context-builder-spec.js @@ -1,8 +1,9 @@ 'use babel'; + import CodeContextBuilder from '../lib/code-context-builder'; -describe('CodeContextBuilder', function() { - beforeEach(function() { +describe('CodeContextBuilder', () => { + beforeEach(function () { this.editorMock = { getTitle() {}, getPath() {}, @@ -11,57 +12,57 @@ describe('CodeContextBuilder', function() { return { isEmpty() { return false; - } + }, }; }, getGrammar() { - return {name: 'JavaScript'}; + return { name: 'JavaScript' }; }, getLastCursor() {}, - save() {} + save() {}, }; spyOn(this.editorMock, 'getTitle').andReturn('file.js'); spyOn(this.editorMock, 'getPath').andReturn('path/to/file.js'); spyOn(this.editorMock, 'getText').andReturn('console.log("hello")\n'); - return this.codeContextBuilder = new CodeContextBuilder; + return this.codeContextBuilder = new CodeContextBuilder(); }); - describe('initCodeContext', function() { - it('sets correct text source for empty selection', function() { - let selection = - {isEmpty() { return true; }}; + describe('initCodeContext', () => { + it('sets correct text source for empty selection', function () { + const selection = + { isEmpty() { return true; } }; spyOn(this.editorMock, 'getLastSelection').andReturn(selection); - let codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); + const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); expect(codeContext.textSource).toEqual(this.editorMock); expect(codeContext.filename).toEqual('file.js'); return expect(codeContext.filepath).toEqual('path/to/file.js'); }); - it('sets correct text source for non-empty selection', function() { - let selection = - {isEmpty() { return false; }}; + it('sets correct text source for non-empty selection', function () { + const selection = + { isEmpty() { return false; } }; spyOn(this.editorMock, 'getLastSelection').andReturn(selection); - let codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); + const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); expect(codeContext.textSource).toEqual(selection); return expect(codeContext.selection).toEqual(selection); }); - return it('sets correct lang', function() { - let codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); + return it('sets correct lang', function () { + const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); return expect(codeContext.lang).toEqual('JavaScript'); }); }); return describe('buildCodeContext', () => - ['Selection Based', 'Line Number Based'].map((argType) => - it(`sets lineNumber with screenRow + 1 when ${argType}`, function() { - let cursor = - {getScreenRow() { return 1; }}; + ['Selection Based', 'Line Number Based'].map(argType => + it(`sets lineNumber with screenRow + 1 when ${argType}`, function () { + const cursor = + { getScreenRow() { return 1; } }; spyOn(this.editorMock, 'getLastCursor').andReturn(cursor); - let codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); + const codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); expect(codeContext.argType).toEqual(argType); return expect(codeContext.lineNumber).toEqual(2); - })) + })), ); }); diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index a51adcdd..c5766db7 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -1,126 +1,127 @@ 'use babel'; + import CodeContext from '../lib/code-context'; -describe('CodeContext', function() { - beforeEach(function() { +describe('CodeContext', () => { + beforeEach(function () { this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); // TODO: Test using an actual editor or a selection? this.dummyTextSource = {}; return this.dummyTextSource.getText = () => "print 'hello world!'"; }); - describe('fileColonLine when lineNumber is not set', function() { - it('returns the full filepath when fullPath is truthy', function() { - expect(this.codeContext.fileColonLine()).toMatch("/tmp/test.txt"); - return expect(this.codeContext.fileColonLine(true)).toMatch("/tmp/test.txt"); + describe('fileColonLine when lineNumber is not set', () => { + it('returns the full filepath when fullPath is truthy', function () { + expect(this.codeContext.fileColonLine()).toMatch('/tmp/test.txt'); + return expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); }); - return it('returns only the filename and line number when fullPath is falsy', function() { - return expect(this.codeContext.fileColonLine(false)).toMatch("test.txt"); + return it('returns only the filename and line number when fullPath is falsy', function () { + return expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); }); }); - describe('fileColonLine when lineNumber is set', function() { - it('returns the full filepath when fullPath is truthy', function() { + describe('fileColonLine when lineNumber is set', () => { + it('returns the full filepath when fullPath is truthy', function () { this.codeContext.lineNumber = 42; - expect(this.codeContext.fileColonLine()).toMatch("/tmp/test.txt"); - return expect(this.codeContext.fileColonLine(true)).toMatch("/tmp/test.txt"); + expect(this.codeContext.fileColonLine()).toMatch('/tmp/test.txt'); + return expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); }); - return it('returns only the filename and line number when fullPath is falsy', function() { + return it('returns only the filename and line number when fullPath is falsy', function () { this.codeContext.lineNumber = 42; - return expect(this.codeContext.fileColonLine(false)).toMatch("test.txt"); + return expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); }); }); - describe('getCode', function() { - it('returns undefined if no textSource is available', function() { + describe('getCode', () => { + it('returns undefined if no textSource is available', function () { return expect(this.codeContext.getCode()).toBe(undefined); }); - it('returns a string prepended with newlines when prependNewlines is truthy', function() { + it('returns a string prepended with newlines when prependNewlines is truthy', function () { this.codeContext.textSource = this.dummyTextSource; this.codeContext.lineNumber = 3; - let code = this.codeContext.getCode(true); + const code = this.codeContext.getCode(true); expect(typeof code).toEqual('string'); // Since Array#join will create newlines for one less than the the number // of elements line number 3 means there should be two newlines return expect(code).toMatch("\n\nprint 'hello world!'"); }); - return it('returns the text from the textSource when available', function() { + return it('returns the text from the textSource when available', function () { this.codeContext.textSource = this.dummyTextSource; - let code = this.codeContext.getCode(); + const code = this.codeContext.getCode(); expect(typeof code).toEqual('string'); return expect(code).toMatch("print 'hello world!'"); }); }); describe('shebangCommand when no shebang was found', () => - it('returns undefined when no shebang is found', function() { - let lines = this.dummyTextSource.getText(); - let firstLine = lines.split("\n")[0]; + it('returns undefined when no shebang is found', function () { + const lines = this.dummyTextSource.getText(); + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } return expect(this.codeContext.shebangCommand()).toBe(undefined); - }) + }), ); - describe('shebangCommand when a shebang was found', function() { - it('returns the command from the shebang', function() { - let lines = "#!/bin/bash\necho 'hello from bash!'"; - let firstLine = lines.split("\n")[0]; + describe('shebangCommand when a shebang was found', () => { + it('returns the command from the shebang', function () { + const lines = "#!/bin/bash\necho 'hello from bash!'"; + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } return expect(this.codeContext.shebangCommand()).toMatch('bash'); }); - it('returns /usr/bin/env as the command if applicable', function() { - let lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; - let firstLine = lines.split("\n")[0]; - firstLine = lines.split("\n")[0]; + it('returns /usr/bin/env as the command if applicable', function () { + const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; + let firstLine = lines.split('\n')[0]; + firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } return expect(this.codeContext.shebangCommand()).toMatch('env'); }); - return it('returns a command with non-alphabet characters', function() { - let lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; - let firstLine = lines.split("\n")[0]; + return it('returns a command with non-alphabet characters', function () { + const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } return expect(this.codeContext.shebangCommand()).toMatch('python2.7'); }); }); describe('shebangCommandArgs when no shebang was found', () => - it('returns [] when no shebang is found', function() { - let lines = this.dummyTextSource.getText(); - let firstLine = lines.split("\n")[0]; + it('returns [] when no shebang is found', function () { + const lines = this.dummyTextSource.getText(); + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } return expect(this.codeContext.shebangCommandArgs()).toMatch([]); - }) + }), ); - return describe('shebangCommandArgs when a shebang was found', function() { - it('returns the command from the shebang', function() { - let lines = "#!/bin/bash\necho 'hello from bash!'"; - let firstLine = lines.split("\n")[0]; + return describe('shebangCommandArgs when a shebang was found', () => { + it('returns the command from the shebang', function () { + const lines = "#!/bin/bash\necho 'hello from bash!'"; + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } return expect(this.codeContext.shebangCommandArgs()).toMatch([]); }); - it('returns the true command as the first argument when /usr/bin/env is used', function() { - let lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; - let firstLine = lines.split("\n")[0]; - firstLine = lines.split("\n")[0]; + it('returns the true command as the first argument when /usr/bin/env is used', function () { + const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; + let firstLine = lines.split('\n')[0]; + firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - let args = this.codeContext.shebangCommandArgs(); + const args = this.codeContext.shebangCommandArgs(); expect(args[0]).toMatch('ruby'); return expect(args).toMatch(['ruby', '-w']); }); - return it('returns the command args when the command had non-alphabet characters', function() { - let lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; - let firstLine = lines.split("\n")[0]; + return it('returns the command args when the command had non-alphabet characters', function () { + const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } return expect(this.codeContext.shebangCommandArgs()).toMatch([]); }); diff --git a/spec/fixtures/ioTest.js b/spec/fixtures/ioTest.js index 3d8b28b5..f7726a61 100644 --- a/spec/fixtures/ioTest.js +++ b/spec/fixtures/ioTest.js @@ -1,8 +1,8 @@ process.stdin.setEncoding('utf8'); -process.stdin.on('readable', function() { - var chunk = process.stdin.read(); - if (chunk !== null) { - console.log('TEST: ' + chunk); - } +process.stdin.on('readable', () => { + const chunk = process.stdin.read(); + if (chunk !== null) { + console.log(`TEST: ${chunk}`); + } }); diff --git a/spec/fixtures/stdinEndTest.js b/spec/fixtures/stdinEndTest.js index a030706d..cea8b882 100644 --- a/spec/fixtures/stdinEndTest.js +++ b/spec/fixtures/stdinEndTest.js @@ -1,6 +1,6 @@ process.stdin.resume(); process.stdin.setEncoding('utf8'); -process.stdin.on('end', function() { - console.log("stdin terminated"); +process.stdin.on('end', () => { + console.log('stdin terminated'); }); diff --git a/spec/grammar-utils/lisp-spec.js b/spec/grammar-utils/lisp-spec.js index 5233e8da..3a5efbf9 100644 --- a/spec/grammar-utils/lisp-spec.js +++ b/spec/grammar-utils/lisp-spec.js @@ -1,48 +1,49 @@ 'use babel'; + import GrammarUtils from '../../lib/grammar-utils'; describe('GrammarUtils', () => - describe('Lisp', function() { - let toStatements = GrammarUtils.Lisp.splitStatements; + describe('Lisp', () => { + const toStatements = GrammarUtils.Lisp.splitStatements; - it('returns empty array for empty code', function() { - let code = ''; + it('returns empty array for empty code', () => { + const code = ''; return expect(toStatements(code)).toEqual([]); }); - it('does not split single statement', function() { - let code = '(print "dummy")'; + it('does not split single statement', () => { + const code = '(print "dummy")'; return expect(toStatements(code)).toEqual([code]); }); - it('splits two simple statements', function() { - let code = '(print "dummy")(print "statement")'; + it('splits two simple statements', () => { + const code = '(print "dummy")(print "statement")'; return expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); }); - it('splits two simple statements in many lines', function() { - let code = '(print "dummy") \n\n (print "statement")'; + it('splits two simple statements in many lines', () => { + const code = '(print "dummy") \n\n (print "statement")'; return expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); }); - it('does not split single line complex statement', function() { - let code = '(when t(setq a 2)(+ i 1))'; + it('does not split single line complex statement', () => { + const code = '(when t(setq a 2)(+ i 1))'; return expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']); }); - it('does not split multi line complex statement', function() { - let code = '(when t(setq a 2) \n \t (+ i 1))'; + it('does not split multi line complex statement', () => { + const code = '(when t(setq a 2) \n \t (+ i 1))'; return expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']); }); - it('splits single line complex statements', function() { - let code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))'; + it('splits single line complex statements', () => { + const code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))'; return expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']); }); - return it('splits multi line complex statements', function() { - let code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))'; + return it('splits multi line complex statements', () => { + const code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))'; return expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']); }); - }) + }), ); diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 386f661a..eff886c8 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -1,28 +1,29 @@ 'use babel'; + import CodeContext from '../lib/code-context'; import OperatingSystem from '../lib/grammar-utils/operating-system'; import grammarMap from '../lib/grammars'; -describe('grammarMap', function() { - beforeEach(function() { +describe('grammarMap', () => { + beforeEach(function () { this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); // TODO: Test using an actual editor or a selection? this.dummyTextSource = {}; - return this.dummyTextSource.getText = () => ""; + return this.dummyTextSource.getText = () => ''; }); - it("has a command and an args function set for each grammar's mode", function() { + it("has a command and an args function set for each grammar's mode", function () { this.codeContext.textSource = this.dummyTextSource; return (() => { - let result = []; - for (let lang in grammarMap) { - let modes = grammarMap[lang]; + const result = []; + for (const lang in grammarMap) { + const modes = grammarMap[lang]; result.push((() => { - let result1 = []; - for (let mode in modes) { - let commandContext = modes[mode]; + const result1 = []; + for (const mode in modes) { + const commandContext = modes[mode]; expect(commandContext.command).toBeDefined(); - let argList = commandContext.args(this.codeContext); + const argList = commandContext.args(this.codeContext); result1.push(expect(argList).toBeDefined()); } return result1; @@ -32,68 +33,68 @@ describe('grammarMap', function() { })(); }); - return describe('Operating system specific runners', function() { - beforeEach(function() { + return describe('Operating system specific runners', () => { + beforeEach(function () { this._originalPlatform = OperatingSystem.platform; - return this.reloadGrammar = function() { + return this.reloadGrammar = function () { delete require.cache[require.resolve('../lib/grammars.coffee')]; return newGrammarMap = require('../lib/grammars.coffee'); }; }); - afterEach(function() { + afterEach(function () { OperatingSystem.platform = this._originalPlatform; return this.reloadGrammar(); }); describe('C', () => - it('returns the appropriate File Based runner on Mac OS X', function() { + it('returns the appropriate File Based runner on Mac OS X', function () { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = newGrammarMap['C']; - let fileBasedRunner = grammar['File Based']; - let args = fileBasedRunner.args(this.codeContext); + const grammar = newGrammarMap.C; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); return expect(args[1]).toMatch(/^xcrun clang/); - }) + }), ); describe('C++', () => - it('returns the appropriate File Based runner on Mac OS X', function() { + it('returns the appropriate File Based runner on Mac OS X', function () { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = newGrammarMap['C++']; - let fileBasedRunner = grammar['File Based']; - let args = fileBasedRunner.args(this.codeContext); + const grammar = newGrammarMap['C++']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); return expect(args[1]).toMatch(/^xcrun clang\+\+/); - }) + }), ); - describe('F#', function() { - it('returns "fsi" as command for File Based runner on Windows', function() { + describe('F#', () => { + it('returns "fsi" as command for File Based runner on Windows', function () { OperatingSystem.platform = () => 'win32'; this.reloadGrammar(); - let grammar = newGrammarMap['F#']; - let fileBasedRunner = grammar['File Based']; - let args = fileBasedRunner.args(this.codeContext); + const grammar = newGrammarMap['F#']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('fsi'); expect(args[0]).toEqual('--exec'); return expect(args[1]).toEqual(this.codeContext.filepath); }); - return it('returns "fsharpi" as command for File Based runner when platform is not Windows', function() { + return it('returns "fsharpi" as command for File Based runner when platform is not Windows', function () { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = newGrammarMap['F#']; - let fileBasedRunner = grammar['File Based']; - let args = fileBasedRunner.args(this.codeContext); + const grammar = newGrammarMap['F#']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('fsharpi'); expect(args[0]).toEqual('--exec'); return expect(args[1]).toEqual(this.codeContext.filepath); @@ -101,31 +102,31 @@ describe('grammarMap', function() { }); describe('Objective-C', () => - it('returns the appropriate File Based runner on Mac OS X', function() { + it('returns the appropriate File Based runner on Mac OS X', function () { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = newGrammarMap['Objective-C']; - let fileBasedRunner = grammar['File Based']; - let args = fileBasedRunner.args(this.codeContext); + const grammar = newGrammarMap['Objective-C']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); return expect(args[1]).toMatch(/^xcrun clang/); - }) + }), ); return describe('Objective-C++', () => - it('returns the appropriate File Based runner on Mac OS X', function() { + it('returns the appropriate File Based runner on Mac OS X', function () { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - let grammar = newGrammarMap['Objective-C++']; - let fileBasedRunner = grammar['File Based']; - let args = fileBasedRunner.args(this.codeContext); + const grammar = newGrammarMap['Objective-C++']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); return expect(args[1]).toMatch(/^xcrun clang\+\+/); - }) + }), ); }); }); diff --git a/spec/link-paths-spec.js b/spec/link-paths-spec.js index 34e48174..e2c01433 100644 --- a/spec/link-paths-spec.js +++ b/spec/link-paths-spec.js @@ -1,9 +1,10 @@ 'use babel'; + import linkPaths from '../lib/link-paths'; -describe('linkPaths', function() { - it('detects file paths with line numbers', function() { - let result = linkPaths('foo() b/c.js:44:55'); +describe('linkPaths', () => { + it('detects file paths with line numbers', () => { + const result = linkPaths('foo() b/c.js:44:55'); expect(result).toContain('foo() { + const result = linkPaths('foo() C:/b/c.js:44:55'); return expect(result).toContain('data-path="C:/b/c.js"'); }); - it('allow ommitting the column number', function() { - let result = linkPaths('foo() b/c.js:44'); + it('allow ommitting the column number', () => { + const result = linkPaths('foo() b/c.js:44'); expect(result).toContain('data-line="44"'); return expect(result).toContain('data-column=""'); }); - return it('links multiple paths', function() { - let multilineResult = linkPaths(`\ + return it('links multiple paths', () => { + const multilineResult = linkPaths(`\ foo() b/c.js:44:55 bar() b/c.js:45:56\ -` +`, ); expect(multilineResult).toContain('foo() { + beforeEach(function () { this.command = 'node'; - this.runOptions = new ScriptOptions; + this.runOptions = new ScriptOptions(); this.runOptions.cmd = this.command; return this.runner = new Runner(this.runOptions); }); - afterEach(function() { + afterEach(function () { return this.runner.destroy(); }); - return describe('run', function() { - it('with no input', function() { + return describe('run', () => { + it('with no input', function () { runs(() => { this.output = null; - this.runner.onDidWriteToStdout(output => { - return this.output = output; - } + this.runner.onDidWriteToStdout(output => this.output = output, ); return this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); - } + }, ); - waitsFor(() => { - return this.output !== null; - } - , "File should execute", 500); + waitsFor(() => this.output !== null + , 'File should execute', 500); - return runs(() => { - return expect(this.output).toEqual({ message: 'hello\n' }); - } + return runs(() => expect(this.output).toEqual({ message: 'hello\n' }), ); }); - it('with an input string', function() { + it('with an input string', function () { runs(() => { this.output = null; - this.runner.onDidWriteToStdout(output => { - return this.output = output; - } + this.runner.onDidWriteToStdout(output => this.output = output, ); return this.runner.run(this.command, ['./spec/fixtures/ioTest.js'], {}, 'hello'); - } + }, ); - waitsFor(() => { - return this.output !== null; - } - , "File should execute", 500); + waitsFor(() => this.output !== null + , 'File should execute', 500); - return runs(() => { - return expect(this.output).toEqual({ message: 'TEST: hello\n' }); - } + return runs(() => expect(this.output).toEqual({ message: 'TEST: hello\n' }), ); }); - it('exits', function() { + it('exits', function () { runs(() => { this.exited = false; - this.runner.onDidExit(() => { - return this.exited = true; - } + this.runner.onDidExit(() => this.exited = true, ); return this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); - } + }, ); - return waitsFor(() => { - return this.exited; - } - , "Should receive exit callback", 500); + return waitsFor(() => this.exited + , 'Should receive exit callback', 500); }); - it('notifies about writing to stderr', function() { + it('notifies about writing to stderr', function () { runs(() => { this.failedEvent = null; - this.runner.onDidWriteToStderr(event => { - return this.failedEvent = event; - } + this.runner.onDidWriteToStderr(event => this.failedEvent = event, ); return this.runner.run(this.command, ['./spec/fixtures/throw.js'], {}); - } + }, ); - waitsFor(() => { - return this.failedEvent; - } - , "Should receive failure callback", 500); + waitsFor(() => this.failedEvent + , 'Should receive failure callback', 500); - return runs(() => { - return expect(this.failedEvent.message).toMatch(/kaboom/); - } + return runs(() => expect(this.failedEvent.message).toMatch(/kaboom/), ); }); - return it('terminates stdin', function() { + return it('terminates stdin', function () { runs(() => { this.output = null; - this.runner.onDidWriteToStdout(output => { - return this.output = output; - } + this.runner.onDidWriteToStdout(output => this.output = output, ); return this.runner.run(this.command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input'); - } + }, ); - waitsFor(() => { - return this.output !== null; - } - , "File should execute", 500); + waitsFor(() => this.output !== null + , 'File should execute', 500); - return runs(() => { - return expect(this.output).toEqual({ message: 'stdin terminated\n' }); - } + return runs(() => expect(this.output).toEqual({ message: 'stdin terminated\n' }), ); }); }); diff --git a/spec/script-options-spec.js b/spec/script-options-spec.js index 0f23eaac..e36f53c8 100644 --- a/spec/script-options-spec.js +++ b/spec/script-options-spec.js @@ -1,39 +1,40 @@ 'use babel'; + import ScriptOptions from '../lib/script-options'; -describe('ScriptOptions', function() { - beforeEach(function() { +describe('ScriptOptions', () => { + beforeEach(function () { this.scriptOptions = new ScriptOptions(); this.dummyEnv = { SCRIPT_CI: 'true', SCRIPT_ENV: 'test', - _NUMBERS: '123' + _NUMBERS: '123', }; return this.dummyEnvString = "SCRIPT_CI=true;SCRIPT_ENV='test';_NUMBERS=\"123\""; }); - describe('getEnv', function() { - it('should default to an empty env object', function() { - let env = this.scriptOptions.getEnv(); + describe('getEnv', () => { + it('should default to an empty env object', function () { + const env = this.scriptOptions.getEnv(); return expect(env).toEqual({}); }); - return it('should parse a custom user environment', function() { + return it('should parse a custom user environment', function () { this.scriptOptions.env = this.dummyEnvString; - let env = this.scriptOptions.getEnv(); + const env = this.scriptOptions.getEnv(); return expect(env).toEqual; }); }); - return describe('mergedEnv', function() { - it('should default to the orignal env object', function() { - let mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); + return describe('mergedEnv', () => { + it('should default to the orignal env object', function () { + const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); return expect(mergedEnv).toEqual(this.dummyEnv); }); - it('should retain the original environment', function() { + it('should retain the original environment', function () { this.scriptOptions.env = "TEST_VAR_1=one;TEST_VAR_2=\"two\";TEST_VAR_3='three'"; - let mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); + const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); expect(mergedEnv.SCRIPT_CI).toEqual('true'); expect(mergedEnv.SCRIPT_ENV).toEqual('test'); expect(mergedEnv._NUMBERS).toEqual('123'); @@ -42,11 +43,11 @@ describe('ScriptOptions', function() { return expect(mergedEnv.TEST_VAR_3).toEqual('three'); }); - return it('should support special character values', function() { + return it('should support special character values', function () { this.scriptOptions.env = "TEST_VAR_1=o-n-e;TEST_VAR_2=\"nested\\\"doublequotes\\\"\";TEST_VAR_3='nested\\\'singlequotes\\\'';TEST_VAR_4='s p a c e s'"; - let mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); + const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); expect(mergedEnv.TEST_VAR_1).toEqual('o-n-e'); - expect(mergedEnv.TEST_VAR_2).toEqual("nested\\\"doublequotes\\\""); + expect(mergedEnv.TEST_VAR_2).toEqual('nested\\"doublequotes\\"'); expect(mergedEnv.TEST_VAR_3).toEqual("nested\\\'singlequotes\\\'"); return expect(mergedEnv.TEST_VAR_4).toEqual('s p a c e s'); }); From 668057c07a1e6bb3298e2c2bd943ccd6afb7ce16 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 10:19:12 +0100 Subject: [PATCH 131/410] Make linter happy and fix convert errors --- .eslintignore | 2 + .eslintrc.yml | 8 ++ examples/longrun.js | 2 +- examples/longrun.ts | 2 +- lib/code-context-builder.js | 23 ++--- lib/code-context.js | 19 ++-- lib/command-context.js | 8 +- lib/grammar-utils.js | 11 ++- lib/grammar-utils/coffee-script-compiler.js | 4 +- lib/grammar-utils/d.js | 2 +- lib/grammar-utils/java.js | 12 +-- lib/grammar-utils/lisp.js | 2 +- lib/grammar-utils/matlab.js | 2 +- lib/grammar-utils/nim.js | 48 ++++------ lib/header-view.js | 1 + lib/link-paths.js | 5 +- lib/runner.js | 68 +++++++------ lib/runtime.js | 54 +++++------ lib/script-input-view.js | 35 +++---- lib/script-options-view.js | 101 +++++++++++--------- lib/script-options.js | 2 +- lib/script-profile-run-view.js | 87 ++++++++++------- lib/script-view.js | 89 +++++++++-------- lib/script.js | 28 +++--- lib/view-runtime-observer.js | 68 +++++-------- spec/code-context-builder-spec.js | 22 ++--- spec/code-context-spec.js | 66 ++++++------- spec/fixtures/throw.js | 2 +- spec/grammar-utils/lisp-spec.js | 18 ++-- spec/grammars-spec.js | 87 ++++++++--------- spec/link-paths-spec.js | 10 +- spec/runner-spec.js | 90 +++++++++-------- spec/script-options-spec.js | 31 +++--- 33 files changed, 491 insertions(+), 518 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..e3ffa30b --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +spec/fixtures +examples diff --git a/.eslintrc.yml b/.eslintrc.yml index c8b82876..eaab0219 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -10,3 +10,11 @@ globals: settings: import/core-modules: [ atom ] + +rules: + no-restricted-syntax: [0, "FunctionExpression", "no-restricted-syntax"] + no-param-reassign: [0] + class-methods-use-this: [0] + default-case: [0] + guard-for-in: [0] + no-this-before-super: [0] diff --git a/examples/longrun.js b/examples/longrun.js index 608362d7..83f6109a 100644 --- a/examples/longrun.js +++ b/examples/longrun.js @@ -2,7 +2,7 @@ let i = 1; const run = setInterval(() => { console.log(`line ${i}`); i++; - if (i == 20) { + if (i === 20) { stop(); } }, 1000); diff --git a/examples/longrun.ts b/examples/longrun.ts index 5409df63..a1bd7015 100644 --- a/examples/longrun.ts +++ b/examples/longrun.ts @@ -2,7 +2,7 @@ var i: number = 1; var run = setInterval(function() { console.log("line " + i); i++; - if (i == 20) { + if (i === 20) { stop(); } }, 1000); diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index 228d2f23..db7c0240 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -1,10 +1,10 @@ 'use babel'; -import CodeContext from './code-context'; -import grammarMap from './grammars'; - import { Emitter } from 'atom'; +import CodeContext from './code-context'; +import grammarMap from './grammars.coffee'; + export default class CodeContextBuilder { constructor(emitter = new Emitter()) { this.emitter = emitter; @@ -25,7 +25,7 @@ export default class CodeContextBuilder { // // returns a {CodeContext} object buildCodeContext(editor, argType = 'Selection Based') { - if (editor == null) { return; } + if (!editor) return null; const codeContext = this.initCodeContext(editor); @@ -35,7 +35,7 @@ export default class CodeContextBuilder { editor.save(); } else if (codeContext.selection.isEmpty() && (codeContext.filepath != null)) { codeContext.argType = 'File Based'; - if (__guard__(editor, x => x.isModified())) { editor.save(); } + if (editor && editor.isModified()) editor.save(); } // Selection and Line Number Based runs both benefit from knowing the current line @@ -57,10 +57,11 @@ export default class CodeContextBuilder { // If the selection was empty or if ignore selection is on, then "select" ALL // of the text // This allows us to run on new files + let textSource; if (selection.isEmpty() || ignoreSelection) { - var textSource = editor; + textSource = editor; } else { - var textSource = selection; + textSource = selection; } const codeContext = new CodeContext(filename, filepath, textSource); @@ -77,11 +78,11 @@ export default class CodeContextBuilder { } getShebang(editor) { - if (process.platform === 'win32') { return; } + if (process.platform === 'win32') return null; const text = editor.getText(); const lines = text.split('\n'); const firstLine = lines[0]; - if (!firstLine.match(/^#!/)) { return; } + if (!firstLine.match(/^#!/)) return null; return firstLine.replace(/^#!\s*/, ''); } @@ -116,7 +117,3 @@ export default class CodeContextBuilder { return this.emitter.on('did-not-support-language', callback); } } - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} diff --git a/lib/code-context.js b/lib/code-context.js index f8698896..21c579d1 100644 --- a/lib/code-context.js +++ b/lib/code-context.js @@ -28,10 +28,11 @@ export default class CodeContext { // // Returns the "file colon line" {String}. fileColonLine(fullPath = true) { + let fileColonLine; if (fullPath) { - var fileColonLine = this.filepath; + fileColonLine = this.filepath; } else { - var fileColonLine = this.filename; + fileColonLine = this.filename; } if (!this.lineNumber) { return fileColonLine; } @@ -44,8 +45,8 @@ export default class CodeContext { // // Returns the code selection {String} getCode(prependNewlines = true) { - const code = __guard__(this.textSource, x => x.getText()); - if (!prependNewlines || !this.lineNumber) { return code; } + const code = this.textSource ? this.textSource.getText() : null; + if (!prependNewlines || !this.lineNumber) return code; const newlineCount = Number(this.lineNumber); const newlines = Array(newlineCount).join('\n'); @@ -57,7 +58,7 @@ export default class CodeContext { // Returns the {String} name of the command or {undefined} if not applicable. shebangCommand() { const sections = this.shebangSections(); - if (!sections) { return; } + if (!sections) return null; return sections[0]; } @@ -70,7 +71,7 @@ export default class CodeContext { const sections = this.shebangSections(); if (!sections) { return []; } - return sections.slice(1, sections.length - 1 + 1 || undefined); + return sections.slice(1, sections.length); } // Public: Splits the shebang string by spaces to extra the command and @@ -78,11 +79,7 @@ export default class CodeContext { // // Returns the {String} name of the command or {undefined} if not applicable. shebangSections() { - return __guard__(this.shebang, x => x.split(' ')); + return this.shebang ? this.shebang.split(' ') : null; } } CodeContext.initClass(); - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} diff --git a/lib/command-context.js b/lib/command-context.js index 1cd9e769..788b414c 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -1,6 +1,6 @@ 'use babel'; -import grammarMap from './grammars'; +import grammarMap from './grammars.coffee'; export default class CommandContext { static initClass() { @@ -13,16 +13,18 @@ export default class CommandContext { static build(runtime, runOptions, codeContext) { const commandContext = new CommandContext(); commandContext.options = runOptions; + let buildArgsArray; try { if ((runOptions.cmd == null) || runOptions.cmd === '') { // Precondition: lang? and lang of grammarMap - commandContext.command = codeContext.shebangCommand() || grammarMap[codeContext.lang][codeContext.argType].command; + commandContext.command = codeContext.shebangCommand() || + grammarMap[codeContext.lang][codeContext.argType].command; } else { commandContext.command = runOptions.cmd; } - var buildArgsArray = grammarMap[codeContext.lang][codeContext.argType].args; + buildArgsArray = grammarMap[codeContext.lang][codeContext.argType].args; } catch (error) { runtime.modeNotSupported(codeContext.argType, codeContext.lang); return false; diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index daa0bb52..7e9901e2 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -27,25 +27,28 @@ export default { return tempFilePath; } catch (error) { - throw (`Error while creating temporary file (${error})`); + throw new Error(`Error while creating temporary file (${error})`); } }, - // Public: Delete all temporary files and the directory created by {GrammarUtils::createTempFileWithCode} + // Public: Delete all temporary files and the directory created by + // {GrammarUtils::createTempFileWithCode} deleteTempFiles() { try { if (fs.existsSync(this.tempFilesDir)) { const files = fs.readdirSync(this.tempFilesDir); if (files.length) { - files.forEach((file, index) => fs.unlinkSync(this.tempFilesDir + path.sep + file)); + files.forEach(file => fs.unlinkSync(this.tempFilesDir + path.sep + file)); } return fs.rmdirSync(this.tempFilesDir); } + return null; } catch (error) { - throw (`Error while deleting temporary files (${error})`); + throw new Error(`Error while deleting temporary files (${error})`); } }, + /* eslint-disable global-require */ // Public: Get the Java helper object // // Returns an {Object} which assists in preparing java + javac statements diff --git a/lib/grammar-utils/coffee-script-compiler.js b/lib/grammar-utils/coffee-script-compiler.js index efae7b42..ae4ec7cc 100644 --- a/lib/grammar-utils/coffee-script-compiler.js +++ b/lib/grammar-utils/coffee-script-compiler.js @@ -10,6 +10,6 @@ try { if (coffee.toString().match(/--cli/)) { // -redux args.push('--cli'); } -} catch (error) {} +} catch (error) { /* Don't throw */ } -export { args }; +export default { args }; diff --git a/lib/grammar-utils/d.js b/lib/grammar-utils/d.js index c96c3022..fa4dcd6c 100644 --- a/lib/grammar-utils/d.js +++ b/lib/grammar-utils/d.js @@ -27,7 +27,7 @@ export default { return tempFilePath; } catch (error) { - throw (`Error while creating temporary file (${error})`); + throw new Error(`Error while creating temporary file (${error})`); } }, }; diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index f81da6b8..925d9bfa 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -26,17 +26,7 @@ export default { // Returns {String} containing the matching project path getProjectPath(context) { const projectPaths = atom.project.getPaths(); - return (() => { - const result = []; - for (const projectPath of projectPaths) { - let item; - if (context.filepath.includes(projectPath)) { - item = projectPath; - } - result.push(item); - } - return result; - })(); + return projectPaths.find(projectPath => context.filepath.includes(projectPath)); }, // Public: Get package of file in context diff --git a/lib/grammar-utils/lisp.js b/lib/grammar-utils/lisp.js index 3f8c0a76..52468270 100644 --- a/lib/grammar-utils/lisp.js +++ b/lib/grammar-utils/lisp.js @@ -9,7 +9,7 @@ export default { // // Returns an {Array} of executable statements. splitStatements(code) { - const iterator = function (statements, currentCharacter, _memo, _context) { + const iterator = (statements, currentCharacter) => { if (this.parenDepth == null) { this.parenDepth = 0; } if (currentCharacter === '(') { this.parenDepth += 1; diff --git a/lib/grammar-utils/matlab.js b/lib/grammar-utils/matlab.js index 90e0588e..b8e8e85b 100644 --- a/lib/grammar-utils/matlab.js +++ b/lib/grammar-utils/matlab.js @@ -27,7 +27,7 @@ export default { return tempFilePath; } catch (error) { - throw (`Error while creating temporary file (${error})`); + throw new Error(`Error while creating temporary file (${error})`); } }, }; diff --git a/lib/grammar-utils/nim.js b/lib/grammar-utils/nim.js index 17e39778..dc03bbef 100644 --- a/lib/grammar-utils/nim.js +++ b/lib/grammar-utils/nim.js @@ -1,5 +1,8 @@ 'use babel'; +import fs from 'fs'; +import path from 'path'; + // Public: GrammarUtils.Nim - a module which selects the right file to run for Nim projects export default { // Public: Find the right file to run @@ -9,43 +12,29 @@ export default { // Returns the {String} filepath of file to run projectDir(editorfile) { - const path = require('path'); return path.dirname(editorfile); }, findNimProjectFile(editorfile) { - const path = require('path'); - const fs = require('fs'); - if (path.extname(editorfile) === '.nims') { // if we have an .nims file - try { - var tfile = editorfile.slice(0, -1); - var stats = fs.statSync(tfile); + const tfile = editorfile.slice(0, -1); + + if (fs.existsSync(tfile)) { // it has a corresponding .nim file. so thats a config file. // we run the .nim file instead. return path.basename(tfile); - } catch (error) { - // it has no corresponding .nim file, it is a standalone script - return path.basename(editorfile); } + // it has no corresponding .nim file, it is a standalone script + return path.basename(editorfile); } // check if we are running on a file with config - try { - var stats = fs.statSync(`${editorfile}s`); + if (fs.existsSync(`${editorfile}s`) || + fs.existsSync(`${editorfile}.cfg`) || + fs.existsSync(`${editorfile}cfg`)) { return path.basename(editorfile); - } catch (error) {} - - try { - var stats = fs.statSync(`${editorfile}.cfg`); - return path.basename(editorfile); - } catch (error1) {} - - try { - var stats = fs.statSync(`${editorfile}cfg`); - return path.basename(editorfile); - } catch (error2) {} + } // assume we want to run a project // searching for the first file which has @@ -59,15 +48,10 @@ export default { const name = `${filepath}/${file}`; if (fs.statSync(name).isFile()) { if (path.extname(name) === '.nims' || - path.extname(name) === '.nimcgf' || - path.extname(name) === '.cfg') { - try { - var tfile = name.slice(0, -1); - var stats = fs.statSync(tfile); - return path.basename(tfile); - } catch (error) { - console.log('File does not exist.'); - } + path.extname(name) === '.nimcgf' || + path.extname(name) === '.cfg') { + const tfile = name.slice(0, -1); + if (fs.existsSync(tfile)) return path.basename(tfile); } } } diff --git a/lib/header-view.js b/lib/header-view.js index fc1039b2..b3aa8602 100644 --- a/lib/header-view.js +++ b/lib/header-view.js @@ -19,6 +19,7 @@ export default class HeaderView extends View { case 'stop': return this.status.addClass('icon-check'); case 'kill': return this.status.addClass('icon-stop'); case 'err': return this.status.addClass('icon-alert'); + default: return null; } } } diff --git a/lib/link-paths.js b/lib/link-paths.js index b18d41f2..46a8287b 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -1,5 +1,6 @@ 'use babel'; +/* eslint-disable no-multi-str, prefer-const*/ let linkPaths; const regex = new RegExp('\ ((?:\\w:)?/?\ @@ -12,14 +13,14 @@ const template = ' lines.replace(regex, template); linkPaths.listen = parentView => - parentView.on('click', '.-linked-path', function (event) { + parentView.on('click', '.-linked-path', () => { const el = this; let { path, line, column } = el.dataset; line = Number(line) - 1; // column number is optional column = column ? Number(column) - 1 : 0; - return atom.workspace.open(path, { + atom.workspace.open(path, { initialLine: line, initialColumn: column, }); diff --git a/lib/runner.js b/lib/runner.js index a7005a3b..1bd2e94f 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -40,27 +40,27 @@ export default class Runner { this.bufferedProcess.process.stdin.end(); } - return this.bufferedProcess.onWillThrowError(this.createOnErrorFunc(command)); + this.bufferedProcess.onWillThrowError(this.createOnErrorFunc(command)); } stdoutFunc(output) { - return this.emitter.emit('did-write-to-stdout', { message: output }); + this.emitter.emit('did-write-to-stdout', { message: output }); } onDidWriteToStdout(callback) { - return this.emitter.on('did-write-to-stdout', callback); + this.emitter.on('did-write-to-stdout', callback); } stderrFunc(output) { - return this.emitter.emit('did-write-to-stderr', { message: output }); + this.emitter.emit('did-write-to-stderr', { message: output }); } onDidWriteToStderr(callback) { - return this.emitter.on('did-write-to-stderr', callback); + this.emitter.on('did-write-to-stderr', callback); } destroy() { - return this.emitter.dispose(); + this.emitter.dispose(); } getCwd() { @@ -69,20 +69,26 @@ export default class Runner { const workingDirectoryProvided = (cwd != null) && cwd !== ''; if (!workingDirectoryProvided) { switch (atom.config.get('script.cwdBehavior')) { - case 'First project directory': + case 'First project directory': { const paths = atom.project.getPaths(); - if (__guard__(paths, x => x.length) > 0) { + if (paths && paths.length > 0) { try { cwd = fs.statSync(paths[0]).isDirectory() ? paths[0] : path.join(paths[0], '..'); - } catch (error) {} + } catch (error) { /* Don't throw */ } } break; - case 'Project directory of the script': + } + case 'Project directory of the script': { cwd = this.getProjectPath(); break; - case 'Directory of the script': - cwd = __guardMethod__(__guardMethod__(__guard__(__guard__(atom.workspace.getActivePaneItem(), x2 => x2.buffer), x1 => x1.file), 'getParent', o1 => o1.getParent()), 'getPath', o => o.getPath()) || ''; + } + case 'Directory of the script': { + const pane = atom.workspace.getActivePaneItem(); + cwd = (pane && pane.buffer && pane.buffer.file && pane.buffer.file.getParent && + pane.buffer.file.getParent() && pane.buffer.file.getParent().getPath && + pane.buffer.file.getParent().getPath()) || ''; break; + } } } return cwd; @@ -91,34 +97,35 @@ export default class Runner { stop() { if (this.bufferedProcess != null) { this.bufferedProcess.kill(); - return this.bufferedProcess = null; + this.bufferedProcess = null; } } onExit(returnCode) { this.bufferedProcess = null; + let executionTime; if ((atom.config.get('script.enableExecTime')) === true && this.startTime) { - var executionTime = (new Date().getTime() - this.startTime.getTime()) / 1000; + executionTime = (new Date().getTime() - this.startTime.getTime()) / 1000; } - return this.emitter.emit('did-exit', { executionTime, returnCode }); + this.emitter.emit('did-exit', { executionTime, returnCode }); } onDidExit(callback) { - return this.emitter.on('did-exit', callback); + this.emitter.on('did-exit', callback); } createOnErrorFunc(command) { return (nodeError) => { this.bufferedProcess = null; this.emitter.emit('did-not-run', { command }); - return nodeError.handle(); + nodeError.handle(); }; } onDidNotRun(callback) { - return this.emitter.on('did-not-run', callback); + this.emitter.on('did-not-run', callback); } options() { @@ -128,7 +135,7 @@ export default class Runner { }; } - fillVarsInArg(arg, codeContext, project_path) { + fillVarsInArg(arg, codeContext, projectPath) { if (codeContext.filepath != null) { arg = arg.replace(/{FILE_ACTIVE}/g, codeContext.filepath); arg = arg.replace(/{FILE_ACTIVE_PATH}/g, path.join(codeContext.filepath, '..')); @@ -137,8 +144,8 @@ export default class Runner { arg = arg.replace(/{FILE_ACTIVE_NAME}/g, codeContext.filename); arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.basename(codeContext.filename, path.extname(codeContext.filename))); } - if (project_path != null) { - arg = arg.replace(/{PROJECT_PATH}/g, project_path); + if (projectPath != null) { + arg = arg.replace(/{PROJECT_PATH}/g, projectPath); } return arg; @@ -146,8 +153,8 @@ export default class Runner { args(codeContext, extraArgs) { let args = (this.scriptOptions.cmdArgs.concat(extraArgs)).concat(this.scriptOptions.scriptArgs); - const project_path = this.getProjectPath || ''; - args = (args.map(arg => this.fillVarsInArg(arg, codeContext, project_path))); + const projectPath = this.getProjectPath || ''; + args = (args.map(arg => this.fillVarsInArg(arg, codeContext, projectPath))); if ((this.scriptOptions.cmd == null) || this.scriptOptions.cmd === '') { args = codeContext.shebangCommandArgs().concat(args); @@ -162,22 +169,11 @@ export default class Runner { if (filePath.indexOf(projectPath) > -1) { if (fs.statSync(projectPath).isDirectory()) { return projectPath; - } else { - return path.join(projectPath, '..'); } + return path.join(projectPath, '..'); } } + return null; } } Runner.initClass(); - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { - return transform(obj, methodName); - } else { - return undefined; - } -} diff --git a/lib/runtime.js b/lib/runtime.js index d2062389..625d06ca 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -1,10 +1,10 @@ 'use babel'; -import CommandContext from './command-context'; +import { Emitter } from 'atom'; import _ from 'underscore'; -import { Emitter } from 'atom'; +import CommandContext from './command-context'; export default class Runtime { static initClass() { @@ -31,7 +31,7 @@ export default class Runtime { // * `destroy` - where you can do your cleanup addObserver(observer) { this.observers.push(observer); - return observer.observe(this); + observer.observe(this); } // Public: disposes dependencies @@ -42,7 +42,7 @@ export default class Runtime { this.runner.destroy(); _.each(this.observers, observer => observer.destroy()); this.emitter.dispose(); - return this.codeContextBuilder.destroy(); + this.codeContextBuilder.destroy(); } // Public: Executes code @@ -56,13 +56,14 @@ export default class Runtime { if (atom.config.get('script.stopOnRerun')) { this.stop(); } this.emitter.emit('start'); - const codeContext = this.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), argType); + const codeContext = this.codeContextBuilder.buildCodeContext( + atom.workspace.getActiveTextEditor(), argType); // In the future we could handle a runner without the language being part // of the grammar map, using the options runner - if (__guard__(codeContext, x => x.lang) == null) { return; } + if (!codeContext || !codeContext.lang) { return; } - const executionOptions = options ? options : this.scriptOptions; + const executionOptions = !options ? this.scriptOptions : options; const commandContext = CommandContext.build(this, executionOptions, codeContext); if (!commandContext) { return; } @@ -80,58 +81,58 @@ export default class Runtime { this.runner.scriptOptions = executionOptions; this.runner.run(commandContext.command, commandContext.args, codeContext, input); - return this.emitter.emit('started', commandContext); + this.emitter.emit('started', commandContext); } // Public: stops execution of the current fork stop() { this.emitter.emit('stop'); this.runner.stop(); - return this.emitter.emit('stopped'); + this.emitter.emit('stopped'); } // Public: Dispatched when the execution is starting onStart(callback) { - return this.emitter.on('start', callback); + this.emitter.on('start', callback); } // Public: Dispatched when the execution is started onStarted(callback) { - return this.emitter.on('started', callback); + this.emitter.on('started', callback); } // Public: Dispatched when the execution is stopping onStop(callback) { - return this.emitter.on('stop', callback); + this.emitter.on('stop', callback); } // Public: Dispatched when the execution is stopped onStopped(callback) { - return this.emitter.on('stopped', callback); + this.emitter.on('stopped', callback); } // Public: Dispatched when the language is not specified onDidNotSpecifyLanguage(callback) { - return this.codeContextBuilder.onDidNotSpecifyLanguage(callback); + this.codeContextBuilder.onDidNotSpecifyLanguage(callback); } // Public: Dispatched when the language is not supported // lang - {String} with the language name onDidNotSupportLanguage(callback) { - return this.codeContextBuilder.onDidNotSupportLanguage(callback); + this.codeContextBuilder.onDidNotSupportLanguage(callback); } // Public: Dispatched when the mode is not supported // lang - {String} with the language name // argType - {String} with the run mode specified onDidNotSupportMode(callback) { - return this.emitter.on('did-not-support-mode', callback); + this.emitter.on('did-not-support-mode', callback); } // Public: Dispatched when building run arguments resulted in an error // error - {Error} onDidNotBuildArgs(callback) { - return this.emitter.on('did-not-build-args', callback); + this.emitter.on('did-not-build-args', callback); } // Public: Dispatched when the {CodeContext} is successfully created @@ -139,44 +140,41 @@ export default class Runtime { // filename - {String} with the filename // lineNumber - {Number} with the line number (may be null) onDidContextCreate(callback) { - return this.emitter.on('did-context-create', callback); + this.emitter.on('did-context-create', callback); } // Public: Dispatched when the process you run writes something to stdout // message - {String} with the output onDidWriteToStdout(callback) { - return this.runner.onDidWriteToStdout(callback); + this.runner.onDidWriteToStdout(callback); } // Public: Dispatched when the process you run writes something to stderr // message - {String} with the output onDidWriteToStderr(callback) { - return this.runner.onDidWriteToStderr(callback); + this.runner.onDidWriteToStderr(callback); } // Public: Dispatched when the process you run exits // returnCode - {Number} with the process' exit code // executionTime - {Number} with the process' exit code onDidExit(callback) { - return this.runner.onDidExit(callback); + this.runner.onDidExit(callback); } // Public: Dispatched when the code you run did not manage to run // command - {String} with the run command onDidNotRun(callback) { - return this.runner.onDidNotRun(callback); + this.runner.onDidNotRun(callback); } modeNotSupported(argType, lang) { - return this.emitter.emit('did-not-support-mode', { argType, lang }); + this.emitter.emit('did-not-support-mode', { argType, lang }); } didNotBuildArgs(error) { - return this.emitter.emit('did-not-build-args', { error }); + this.emitter.emit('did-not-build-args', { error }); } } -Runtime.initClass(); -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} +Runtime.initClass(); diff --git a/lib/script-input-view.js b/lib/script-input-view.js index 6c084bbf..d8b4c9ae 100644 --- a/lib/script-input-view.js +++ b/lib/script-input-view.js @@ -1,13 +1,13 @@ 'use babel'; import { Emitter, CompositeDisposable } from 'atom'; -import { $$, View } from 'atom-space-pen-views'; +import { View } from 'atom-space-pen-views'; export default class ScriptInputView extends View { static content() { - return this.div({ class: 'script-input-view' }, () => { + this.div({ class: 'script-input-view' }, () => { this.div({ class: 'caption' }, ''); - return this.tag('atom-text-editor', { mini: '', class: 'editor mini' }); + this.tag('atom-text-editor', { mini: '', class: 'editor mini' }); }, ); } @@ -36,45 +36,46 @@ export default class ScriptInputView extends View { if (e.keyCode === 27) { e.stopPropagation(); this.emitter.emit('on-cancel'); - return this.hide(); + this.hide(); } }, ); this.subscriptions = new CompositeDisposable(); - return this.subscriptions.add(atom.commands.add('atom-workspace', { + this.subscriptions.add(atom.commands.add('atom-workspace', { 'core:confirm': () => { this.emitter.emit('on-confirm', this.editor.getText().trim()); - return this.hide(); + this.hide(); }, }, ), ); } - onConfirm(callback) { return this.emitter.on('on-confirm', callback); } - onCancel(callback) { return this.emitter.on('on-cancel', callback); } + onConfirm(callback) { + this.emitter.on('on-confirm', callback); + } + + onCancel(callback) { + this.emitter.on('on-cancel', callback); + } focus() { - return this.find('atom-text-editor').focus(); + this.find('atom-text-editor').focus(); } show() { this.panel.show(); - return this.focus(); + this.focus(); } hide() { this.panel.hide(); - return this.destroy(); + this.destroy(); } destroy() { - __guard__(this.subscriptions, x => x.dispose()); - return this.panel.destroy(); + if (this.subscriptions) this.subscriptions.dispose(); + this.panel.destroy(); } } - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} diff --git a/lib/script-options-view.js b/lib/script-options-view.js index b56016f2..3ce76693 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -7,49 +7,49 @@ import ScriptInputView from './script-input-view'; export default class ScriptOptionsView extends View { static content() { - return this.div({ class: 'options-view' }, () => { + this.div({ class: 'options-view' }, () => { this.div({ class: 'panel-heading' }, 'Configure Run Options'); this.table(() => { this.tr(() => { this.td({ class: 'first' }, () => this.label('Current Working Directory:')); - return this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' }), + this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' }), ); }, ); this.tr(() => { this.td(() => this.label('Command')); - return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' }), + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' }), ); }, ); this.tr(() => { this.td(() => this.label('Command Arguments:')); - return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' }), + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' }), ); }, ); this.tr(() => { this.td(() => this.label('Program Arguments:')); - return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' }), + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' }), ); }, ); - return this.tr(() => { + this.tr(() => { this.td(() => this.label('Environment Variables:')); - return this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' }), + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' }), ); }, ); }, ); - return this.div({ class: 'block buttons' }, () => { + this.div({ class: 'block buttons' }, () => { const css = 'btn inline-block-tight'; this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => this.span({ class: 'icon icon-x' }, 'Cancel'), ); - return this.span({ class: 'right-buttons' }, () => { + this.span({ class: 'right-buttons' }, () => { this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => this.span({ class: 'icon icon-file-text' }, 'Save as profile'), ); - return this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), + this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), ); }, ); @@ -68,7 +68,7 @@ export default class ScriptOptionsView extends View { 'core:cancel': () => this.hide(), 'core:close': () => this.hide(), 'script:close-options': () => this.hide(), - 'script:run-options': () => this.panel.isVisible() ? this.hide() : this.show(), + 'script:run-options': () => (this.panel.isVisible() ? this.hide() : this.show()), 'script:save-options': () => this.saveOptions(), }, ), @@ -76,22 +76,26 @@ export default class ScriptOptionsView extends View { // handling focus traversal and run on enter this.find('atom-text-editor').on('keydown', (e) => { - if (e.keyCode !== 9 && e.keyCode !== 13) { return true; } + if (e.keyCode !== 9 && e.keyCode !== 13) return true; switch (e.keyCode) { - case 9: + case 9: { e.preventDefault(); e.stopPropagation(); const row = this.find(e.target).parents('tr:first').nextAll('tr:first'); - if (row.length) { return row.find('atom-text-editor').focus(); } else { return this.buttonCancel.focus(); } - + if (row.length) { + return row.find('atom-text-editor').focus(); + } + return this.buttonCancel.focus(); + } case 13: return this.run(); } + return null; }, ); this.panel = atom.workspace.addModalPanel({ item: this }); - return this.panel.hide(); + this.panel.hide(); } splitArgs(element) { @@ -106,23 +110,34 @@ export default class ScriptOptionsView extends View { const regexps = [/"[^"]*"/ig, /'[^']*'/ig]; + let matches; // find strings in arguments - for (const regex of regexps) { var matches = ((matches != null) ? matches : []).concat((args.match(regex)) || []); } + regexps.forEach((regex) => { + matches = (!matches ? matches : []).concat((args.match(regex)) || []); + }); // format replacement as bash comment to avoid replacing valid input - for (var match of matches) { (replaces[`\`#match${Object.keys(replaces).length + 1}\``] = match); } + matches.forEach((match) => { + replaces[`\`#match${Object.keys(replaces).length + 1}\``] = match; + }); // replace strings - for (match in replaces) { const part = replaces[match]; (args = args.replace(new RegExp(part, 'g'), match)); } + for (const match in replaces) { + const part = replaces[match]; + args = args.replace(new RegExp(part, 'g'), match); + } const split = (args.split(' ').filter(item => item !== '').map(item => item)); - const replacer = function (argument) { - for (match in replaces) { const replacement = replaces[match]; (argument = argument.replace(match, replacement)); } + const replacer = (argument) => { + for (const match in replaces) { + const replacement = replaces[match]; + argument = argument.replace(match, replacement); + } return argument; }; // restore strings, strip quotes - return (split.map(argument => replacer(argument).replace(/"|'/g, ''))); + return split.map(argument => replacer(argument).replace(/"|'/g, '')); } getOptions() { @@ -136,18 +151,16 @@ export default class ScriptOptionsView extends View { } saveOptions() { - return (() => { - const result = []; - const object = this.getOptions(); - for (const key in object) { - const value = object[key]; - result.push(this.runOptions[key] = value); - } - return result; - })(); + const options = this.getOptions(); + for (const option in options) { + const value = options[option]; + this.runOptions[option] = value; + } } - onProfileSave(callback) { return this.emitter.on('on-profile-save', callback); } + onProfileSave(callback) { + this.emitter.on('on-profile-save', callback); + } // Saves specified options as new profile saveProfile() { @@ -160,48 +173,46 @@ export default class ScriptOptionsView extends View { ); inputView.onConfirm((profileName) => { if (!profileName) { return; } - for (const editor of this.find('atom-text-editor')) { editor.getModel().setText(''); } + this.find('atom-text-editor').forEach((editor) => { + editor.getModel().setText(''); + }); // clean up the options this.saveOptions(); // add to global profiles list - return this.emitter.emit('on-profile-save', { name: profileName, options }); + this.emitter.emit('on-profile-save', { name: profileName, options }); }, ); - return inputView.show(); + inputView.show(); } close() { - return this.hide(); + this.hide(); } destroy() { - return __guard__(this.subscriptions, x => x.dispose()); + if (this.subscriptions) this.subscriptions.dispose(); } show() { this.panel.show(); - return this.inputCwd.focus(); + this.inputCwd.focus(); } hide() { this.panel.hide(); - return atom.workspace.getActivePane().activate(); + atom.workspace.getActivePane().activate(); } run() { this.saveOptions(); this.hide(); - return atom.commands.dispatch(this.workspaceView(), 'script:run'); + atom.commands.dispatch(this.workspaceView(), 'script:run'); } workspaceView() { - return atom.views.getView(atom.workspace); + atom.views.getView(atom.workspace); } } - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} diff --git a/lib/script-options.js b/lib/script-options.js index 9460665c..174c14b9 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -44,7 +44,7 @@ export default class ScriptOptions { const mapping = {}; for (const pair of this.env.trim().split(';')) { - let [key, value] = pair.split('=', 2); + const [key, value] = pair.split('=', 2); mapping[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, '$1'); mapping[key] = mapping[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); } diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index c17f6ee3..3c2aaf14 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -1,13 +1,13 @@ 'use babel'; import { CompositeDisposable, Emitter } from 'atom'; -import { $$, View, SelectListView } from 'atom-space-pen-views'; +import { $$, SelectListView } from 'atom-space-pen-views'; import ScriptInputView from './script-input-view'; export default class ScriptProfileRunView extends SelectListView { initialize(profiles) { this.profiles = profiles; - super.initialize(...arguments); + super(); this.emitter = new Emitter(); @@ -15,33 +15,34 @@ export default class ScriptProfileRunView extends SelectListView { this.subscriptions.add(atom.commands.add('atom-workspace', { 'core:cancel': () => this.hide(), 'core:close': () => this.hide(), - 'script:run-with-profile': () => this.panel.isVisible() ? this.hide() : this.show(), + 'script:run-with-profile': () => (this.panel.isVisible() ? this.hide() : this.show()), }, ), ); this.setItems(this.profiles); - return this.initializeView(); + this.initializeView(); } initializeView() { this.addClass('overlay from-top script-profile-run-view'); // @panel.hide() - this.buttons = $$(function () { - return this.div({ class: 'block buttons' }, () => { + this.buttons = $$(() => + this.div({ class: 'block buttons' }, () => { + /* eslint-disable no-unused-vars */ const css = 'btn inline-block-tight'; + /* eslint-enable no-unused-vars */ this.button({ class: 'btn cancel' }, () => this.span({ class: 'icon icon-x' }, 'Cancel'), ); this.button({ class: 'btn rename' }, () => this.span({ class: 'icon icon-pencil' }, 'Rename'), ); this.button({ class: 'btn delete' }, () => this.span({ class: 'icon icon-trashcan' }, 'Delete'), ); - return this.button({ class: 'btn run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), + this.button({ class: 'btn run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), ); }, - ); - }); + )); // event handlers this.buttons.find('.btn.cancel').on('click', () => this.hide()); @@ -54,7 +55,7 @@ export default class ScriptProfileRunView extends SelectListView { if (e.keyCode === 9) { e.stopPropagation(); e.preventDefault(); - return this.focusFilterEditor(); + this.focusFilterEditor(); } }, ); @@ -62,7 +63,7 @@ export default class ScriptProfileRunView extends SelectListView { // hide panel on ecsape this.on('keydown', (e) => { if (e.keyCode === 27) { this.hide(); } - if (e.keyCode === 13) { return this.run(); } + if (e.keyCode === 13) { this.run(); } }, ); @@ -70,15 +71,28 @@ export default class ScriptProfileRunView extends SelectListView { this.append(this.buttons); const selector = '.rename, .delete, .run'; - if (this.profiles.length) { this.buttons.find(selector).show(); } else { this.buttons.find(selector).hide(); } + if (this.profiles.length) { + this.buttons.find(selector).show(); + } else { + this.buttons.find(selector).hide(); + } this.panel = atom.workspace.addModalPanel({ item: this }); - return this.panel.hide(); + this.panel.hide(); + } + + onProfileDelete(callback) { + this.emitter.on('on-profile-delete', callback); + } + + onProfileChange(callback) { + this.emitter.on('on-profile-change', callback); + } + + onProfileRun(callback) { + this.emitter.on('on-profile-run', callback); } - onProfileDelete(callback) { return this.emitter.on('on-profile-delete', callback); } - onProfileChange(callback) { return this.emitter.on('on-profile-change', callback); } - onProfileRun(callback) { return this.emitter.on('on-profile-run', callback); } rename() { const profile = this.getSelectedItem(); @@ -88,20 +102,20 @@ export default class ScriptProfileRunView extends SelectListView { inputView.onCancel(() => this.show()); inputView.onConfirm((newProfileName) => { if (!newProfileName) { return; } - return this.emitter.emit('on-profile-change', { profile, key: 'name', value: newProfileName }); + this.emitter.emit('on-profile-change', { profile, key: 'name', value: newProfileName }); }, ); - return inputView.show(); + inputView.show(); } delete() { const profile = this.getSelectedItem(); if (!profile) { return; } - return atom.confirm({ + atom.confirm({ message: 'Delete profile', - detailedMessage: `Are you sure you want to delete \"${profile.name}\" profile?`, + detailedMessage: `Are you sure you want to delete "${profile.name}" profile?`, buttons: { No: () => this.focusFilterEditor(), Yes: () => this.emitter.emit('on-profile-delete', profile), @@ -118,28 +132,28 @@ export default class ScriptProfileRunView extends SelectListView { } viewForItem(item) { - return $$(function () { - return this.li({ class: 'two-lines profile' }, () => { + return $$(() => + this.li({ class: 'two-lines profile' }, () => { this.div({ class: 'primary-line name' }, () => this.text(item.name), ); - return this.div({ class: 'secondary-line description' }, () => this.text(item.description), + this.div({ class: 'secondary-line description' }, () => this.text(item.description), ); }, - ); - }); + ), + ); } cancel() {} - confirmed(item) {} + confirmed() {} show() { this.panel.show(); - return this.focusFilterEditor(); + this.focusFilterEditor(); } hide() { this.panel.hide(); - return atom.workspace.getActivePane().activate(); + atom.workspace.getActivePane().activate(); } // Updates profiles @@ -149,16 +163,20 @@ export default class ScriptProfileRunView extends SelectListView { // toggle profile controls const selector = '.rename, .delete, .run'; - if (this.profiles.length) { this.buttons.find(selector).show(); } else { this.buttons.find(selector).hide(); } + if (this.profiles.length) { + this.buttons.find(selector).show(); + } else { + this.buttons.find(selector).hide(); + } this.populateList(); - return this.focusFilterEditor(); + this.focusFilterEditor(); } close() {} destroy() { - return __guard__(this.subscriptions, x => x.dispose()); + if (this.subscriptions) this.subscriptions.dispose(); } run() { @@ -166,11 +184,6 @@ export default class ScriptProfileRunView extends SelectListView { if (!profile) { return; } this.emitter.emit('on-profile-run', profile); - return this.hide(); + this.hide(); } } - - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} diff --git a/lib/script-view.js b/lib/script-view.js index 28c9a97d..2e5b9909 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -1,13 +1,13 @@ 'use babel'; -import { View, $$ } from 'atom-space-pen-views'; - -import HeaderView from './header-view'; +import { $$ } from 'atom-space-pen-views'; import { MessagePanelView } from 'atom-message-panel'; +import _ from 'underscore'; import AnsiFilter from 'ansi-to-html'; import stripAnsi from 'strip-ansi'; + +import HeaderView from './header-view'; import linkPaths from './link-paths'; -import _ from 'underscore'; // Runs a portion of a script through an interpreter and displays it line by line export default class ScriptView extends MessagePanelView { @@ -15,12 +15,11 @@ export default class ScriptView extends MessagePanelView { this.prototype.scrollTimeout = null; } constructor() { - this.ansiFilter = new AnsiFilter(); + super({ title: this.headerView, rawTitle: true, closeMethod: 'destroy' }); + this.ansiFilter = new AnsiFilter(); this.headerView = new HeaderView(); - super({ title: this.headerView, rawTitle: true, closeMethod: 'destroy' }); - this.showInTab = this.showInTab.bind(this); this.setHeaderAndShowExecutionTime = this.setHeaderAndShowExecutionTime.bind(this); this.addClass('script-view'); @@ -30,17 +29,17 @@ export default class ScriptView extends MessagePanelView { } addShowInTabIcon() { - const icon = $$(function () { - return this.div({ + const icon = $$(() => + this.div({ class: 'heading-show-in-tab inline-block icon-file-text', style: 'cursor: pointer;', outlet: 'btnShowInTab', title: 'Show output in new tab', - }); - }); + }), + ); icon.click(this.showInTab); - return icon.insertBefore(this.btnAutoScroll); + icon.insertBefore(this.btnAutoScroll); } showInTab() { @@ -55,7 +54,7 @@ export default class ScriptView extends MessagePanelView { } // open new tab and set content to output - return atom.workspace.open().then(editor => editor.setText(stripAnsi(context + output))); + atom.workspace.open().then(editor => editor.setText(stripAnsi(context + output))); } setHeaderAndShowExecutionTime(returnCode, executionTime) { @@ -66,9 +65,9 @@ export default class ScriptView extends MessagePanelView { } if (returnCode === 0) { - return this.setHeaderStatus('stop'); + this.setHeaderStatus('stop'); } else { - return this.setHeaderStatus('err'); + this.setHeaderStatus('err'); } } @@ -82,14 +81,15 @@ export default class ScriptView extends MessagePanelView { this.setHeaderStatus('start'); // Get script view ready - return this.clear(); + this.clear(); } removePanel() { this.stop(); this.detach(); // the 'close' method from MessagePanelView actually destroys the panel - return ScriptView.__super__.close.apply(this); + /* eslint-disable no-underscore-dangle */ + ScriptView.__super__.close.apply(this); } // This is triggered when hitting the 'close' button on the panel @@ -97,12 +97,12 @@ export default class ScriptView extends MessagePanelView { // 'script:close-view' which will eventually remove the panel via 'removePanel' close() { const workspaceView = atom.views.getView(atom.workspace); - return atom.commands.dispatch(workspaceView, 'script:close-view'); + atom.commands.dispatch(workspaceView, 'script:close-view'); } stop() { this.display('stdout', '^C'); - return this.setHeaderStatus('kill'); + this.setHeaderStatus('kill'); } createGitHubIssueLink(argType, lang) { @@ -115,52 +115,51 @@ export default class ScriptView extends MessagePanelView { // NOTE: Replace "#" after regular encoding so we don't double escape it. encodedURI = encodedURI.replace(/#/g, '%23'); - const err = $$(function () { + const err = $$(() => { this.p({ class: 'block' }, `${argType} runner not available for ${lang}.`); - return this.p({ class: 'block' }, () => { + this.p({ class: 'block' }, () => { this.text('If it should exist, add an '); this.a({ href: encodedURI }, 'issue on GitHub'); - return this.text(', or send your own pull request.'); + this.text(', or send your own pull request.'); }, ); }); - return this.handleError(err); + this.handleError(err); } showUnableToRunError(command) { - return this.add($$(function () { + this.add($$(() => { this.h1('Unable to run'); this.pre(_.escape(command)); this.h2('Did you start Atom from the command line?'); this.pre(' atom .'); this.h2('Is it in your PATH?'); - return this.pre(`PATH: ${_.escape(process.env.PATH)}`); + this.pre(`PATH: ${_.escape(process.env.PATH)}`); }), ); } showNoLanguageSpecified() { - const err = $$(function () { - return this.p('You must select a language in the lower right, or save the file \ -with an appropriate extension.', - ); - }); - return this.handleError(err); + const err = $$(() => + this.p('You must select a language in the lower right, or save the file with an appropriate extension.', + ), + ); + this.handleError(err); } showLanguageNotSupported(lang) { - const err = $$(function () { + const err = $$(() => { this.p({ class: 'block' }, `Command not configured for ${lang}!`); - return this.p({ class: 'block' }, () => { + this.p({ class: 'block' }, () => { this.text('Add an '); this.a({ href: `https://github.com/rgbkrk/atom-script/issues/\ new?title=Add%20support%20for%20${lang}`, }, 'issue on GitHub'); - return this.text(' or send your own Pull Request.'); + this.text(' or send your own Pull Request.'); }, ); }); - return this.handleError(err); + this.handleError(err); } handleError(err) { @@ -168,15 +167,15 @@ new?title=Add%20support%20for%20${lang}`, this.setHeaderTitle('Error'); this.setHeaderStatus('err'); this.add(err); - return this.stop(); + this.stop(); } setHeaderStatus(status) { - return this.headerView.setStatus(status); + this.headerView.setStatus(status); } setHeaderTitle(title) { - return this.headerView.title.text(title); + this.headerView.title.text(title); } display(css, line) { @@ -187,22 +186,20 @@ new?title=Add%20support%20for%20${lang}`, line = this.ansiFilter.toHtml(line); line = linkPaths(line); - let { clientHeight, scrollTop, scrollHeight } = this.body[0]; + const { clientHeight, scrollTop, scrollHeight } = this.body[0]; // indicates that the panel is scrolled to the bottom, thus we know that // we are not interfering with the user's manual scrolling const atEnd = scrollTop >= (scrollHeight - clientHeight); - this.add($$(function () { - return this.pre({ class: `line ${css}` }, () => this.raw(line), - ); - }), + this.add($$(() => + this.pre({ class: `line ${css}` }, () => this.raw(line))), ); if (atom.config.get('script.scrollWithOutput') && atEnd) { // Scroll down in a polling loop 'cause // we don't know when the reflow will finish. // See: http://stackoverflow.com/q/5017923/407845 - return this.checkScrollAgain(5)(); + this.checkScrollAgain(5)(); } } checkScrollAgain(times) { @@ -211,14 +208,14 @@ new?title=Add%20support%20for%20${lang}`, clearTimeout(this.scrollTimeout); if (times > 1) { - return this.scrollTimeout = setTimeout(this.checkScrollAgain(times - 1), 50); + this.scrollTimeout = setTimeout(this.checkScrollAgain(times - 1), 50); } }; } copyResults() { if (this.results) { - return atom.clipboard.write(stripAnsi(this.results)); + atom.clipboard.write(stripAnsi(this.results)); } } } diff --git a/lib/script.js b/lib/script.js index 5cabea42..e9f5a2c6 100644 --- a/lib/script.js +++ b/lib/script.js @@ -1,5 +1,7 @@ 'use babel'; +import { CompositeDisposable } from 'atom'; + import CodeContextBuilder from './code-context-builder'; import GrammarUtils from './grammar-utils'; import Runner from './runner'; @@ -10,8 +12,6 @@ import ScriptProfileRunView from './script-profile-run-view'; import ScriptView from './script-view'; import ViewRuntimeObserver from './view-runtime-observer'; -import { CompositeDisposable } from 'atom'; - export default { config: { enableExecTime: { @@ -96,17 +96,15 @@ export default { 'script:kill-process': () => this.runtime.stop(), 'script:run-by-line-number': () => this.runtime.execute('Line Number Based'), 'script:run': () => this.runtime.execute('Selection Based'), - }, - ), - ); + })); // profile created this.scriptOptionsView.onProfileSave((profileData) => { // create and fill out profile const profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); - const codeContext = this.runtime.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), - 'Selection Based'); + const codeContext = this.runtime.codeContextBuilder.buildCodeContext( + atom.workspace.getActiveTextEditor(), 'Selection Based'); profile.lang = codeContext.lang; // formatting description @@ -120,7 +118,7 @@ export default { this.scriptOptionsView.hide(); this.scriptProfileRunView.show(); - return this.scriptProfileRunView.setProfiles(this.scriptProfiles); + this.scriptProfileRunView.setProfiles(this.scriptProfiles); }, ); @@ -130,7 +128,7 @@ export default { if (index === -1) { return; } if (index !== -1) { this.scriptProfiles.splice(index, 1); } - return this.scriptProfileRunView.setProfiles(this.scriptProfiles); + this.scriptProfileRunView.setProfiles(this.scriptProfiles); }, ); @@ -141,14 +139,14 @@ export default { this.scriptProfiles[index][data.key] = data.value; this.scriptProfileRunView.show(); - return this.scriptProfileRunView.setProfiles(this.scriptProfiles); + this.scriptProfileRunView.setProfiles(this.scriptProfiles); }, ); // profile renamed return this.scriptProfileRunView.onProfileRun((profile) => { if (!profile) { return; } - return this.runtime.execute('Selection Based', null, profile); + this.runtime.execute('Selection Based', null, profile); }, ); }, @@ -159,12 +157,12 @@ export default { this.scriptOptionsView.close(); this.scriptProfileRunView.close(); this.subscriptions.dispose(); - return GrammarUtils.deleteTempFiles(); + GrammarUtils.deleteTempFiles(); }, closeScriptViewAndStopRunner() { this.runtime.stop(); - return this.scriptView.removePanel(); + this.scriptView.removePanel(); }, // Public @@ -178,7 +176,7 @@ export default { // That's why this service won't be automatically consumed. To be sure you consume it // you may need to manually activate the package: // - // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! + // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! // // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example provideDefaultRuntime() { @@ -198,7 +196,7 @@ export default { // That's why this service won't be automatically consumed. To be sure you consume it // you may need to manually activate the package: // - // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! + // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! // // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example provideBlankRuntime() { diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index c9d83673..1f8f1171 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -9,52 +9,36 @@ export default class ViewRuntimeObserver { } observe(runtime) { - this.subscriptions.add(runtime.onStart(() => this.view.resetView(), - ), - ); - this.subscriptions.add(runtime.onStarted(ev => this.view.commandContext = ev, - ), - ); - this.subscriptions.add(runtime.onStopped(() => this.view.stop(), - ), - ); - this.subscriptions.add(runtime.onDidWriteToStderr(ev => this.view.display('stderr', ev.message), - ), - ); - this.subscriptions.add(runtime.onDidWriteToStdout(ev => this.view.display('stdout', ev.message), - ), - ); - this.subscriptions.add(runtime.onDidExit(ev => this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime), - ), - ); - this.subscriptions.add(runtime.onDidNotRun(ev => this.view.showUnableToRunError(ev.command), - ), - ); + this.subscriptions.add(runtime.onStart(() => + this.view.resetView())); + this.subscriptions.add(runtime.onStarted((ev) => { + this.view.commandContext = ev; + })); + this.subscriptions.add(runtime.onStopped(() => + this.view.stop())); + this.subscriptions.add(runtime.onDidWriteToStderr(ev => + this.view.display('stderr', ev.message))); + this.subscriptions.add(runtime.onDidWriteToStdout(ev => + this.view.display('stdout', ev.message))); + this.subscriptions.add(runtime.onDidExit(ev => + this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime))); + this.subscriptions.add(runtime.onDidNotRun(ev => + this.view.showUnableToRunError(ev.command))); this.subscriptions.add(runtime.onDidContextCreate((ev) => { const title = `${ev.lang} - ${ev.filename}${(ev.lineNumber != null) ? `:${ev.lineNumber}` : ''}`; - return this.view.setHeaderTitle(title); - }, - ), - ); - this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => this.view.showNoLanguageSpecified(), - ), - ); - this.subscriptions.add(runtime.onDidNotSupportLanguage(ev => this.view.showLanguageNotSupported(ev.lang), - ), - ); - this.subscriptions.add(runtime.onDidNotSupportMode(ev => this.view.createGitHubIssueLink(ev.argType, ev.lang), - ), - ); - return this.subscriptions.add(runtime.onDidNotBuildArgs(ev => this.view.handleError(ev.error), - ), - ); + this.view.setHeaderTitle(title); + })); + this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => + this.view.showNoLanguageSpecified())); + this.subscriptions.add(runtime.onDidNotSupportLanguage(ev => + this.view.showLanguageNotSupported(ev.lang))); + this.subscriptions.add(runtime.onDidNotSupportMode(ev => + this.view.createGitHubIssueLink(ev.argType, ev.lang))); + this.subscriptions.add(runtime.onDidNotBuildArgs(ev => + this.view.handleError(ev.error))); } destroy() { - return __guard__(this.subscriptions, x => x.dispose()); + if (this.subscriptions) this.subscriptions.dispose(); } } - -function __guard__(value, transform) { - return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined; -} diff --git a/spec/code-context-builder-spec.js b/spec/code-context-builder-spec.js index db19fc94..66f6eaf9 100644 --- a/spec/code-context-builder-spec.js +++ b/spec/code-context-builder-spec.js @@ -3,7 +3,7 @@ import CodeContextBuilder from '../lib/code-context-builder'; describe('CodeContextBuilder', () => { - beforeEach(function () { + beforeEach(() => { this.editorMock = { getTitle() {}, getPath() {}, @@ -25,44 +25,44 @@ describe('CodeContextBuilder', () => { spyOn(this.editorMock, 'getTitle').andReturn('file.js'); spyOn(this.editorMock, 'getPath').andReturn('path/to/file.js'); spyOn(this.editorMock, 'getText').andReturn('console.log("hello")\n'); - return this.codeContextBuilder = new CodeContextBuilder(); + this.codeContextBuilder = new CodeContextBuilder(); }); describe('initCodeContext', () => { - it('sets correct text source for empty selection', function () { + it('sets correct text source for empty selection', () => { const selection = { isEmpty() { return true; } }; spyOn(this.editorMock, 'getLastSelection').andReturn(selection); const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); expect(codeContext.textSource).toEqual(this.editorMock); expect(codeContext.filename).toEqual('file.js'); - return expect(codeContext.filepath).toEqual('path/to/file.js'); + expect(codeContext.filepath).toEqual('path/to/file.js'); }); - it('sets correct text source for non-empty selection', function () { + it('sets correct text source for non-empty selection', () => { const selection = { isEmpty() { return false; } }; spyOn(this.editorMock, 'getLastSelection').andReturn(selection); const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); expect(codeContext.textSource).toEqual(selection); - return expect(codeContext.selection).toEqual(selection); + expect(codeContext.selection).toEqual(selection); }); - return it('sets correct lang', function () { + it('sets correct lang', () => { const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); - return expect(codeContext.lang).toEqual('JavaScript'); + expect(codeContext.lang).toEqual('JavaScript'); }); }); - return describe('buildCodeContext', () => + describe('buildCodeContext', () => ['Selection Based', 'Line Number Based'].map(argType => - it(`sets lineNumber with screenRow + 1 when ${argType}`, function () { + it(`sets lineNumber with screenRow + 1 when ${argType}`, () => { const cursor = { getScreenRow() { return 1; } }; spyOn(this.editorMock, 'getLastCursor').andReturn(cursor); const codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); expect(codeContext.argType).toEqual(argType); - return expect(codeContext.lineNumber).toEqual(2); + expect(codeContext.lineNumber).toEqual(2); })), ); }); diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index c5766db7..89dedc0d 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -3,43 +3,43 @@ import CodeContext from '../lib/code-context'; describe('CodeContext', () => { - beforeEach(function () { + beforeEach(() => { this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); // TODO: Test using an actual editor or a selection? this.dummyTextSource = {}; - return this.dummyTextSource.getText = () => "print 'hello world!'"; + this.dummyTextSource.getText = () => "print 'hello world!'"; }); describe('fileColonLine when lineNumber is not set', () => { - it('returns the full filepath when fullPath is truthy', function () { + it('returns the full filepath when fullPath is truthy', () => { expect(this.codeContext.fileColonLine()).toMatch('/tmp/test.txt'); - return expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); + expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); }); - return it('returns only the filename and line number when fullPath is falsy', function () { - return expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); + it('returns only the filename and line number when fullPath is falsy', () => { + expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); }); }); describe('fileColonLine when lineNumber is set', () => { - it('returns the full filepath when fullPath is truthy', function () { + it('returns the full filepath when fullPath is truthy', () => { this.codeContext.lineNumber = 42; expect(this.codeContext.fileColonLine()).toMatch('/tmp/test.txt'); - return expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); + expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); }); - return it('returns only the filename and line number when fullPath is falsy', function () { + it('returns only the filename and line number when fullPath is falsy', () => { this.codeContext.lineNumber = 42; - return expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); + expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); }); }); describe('getCode', () => { - it('returns undefined if no textSource is available', function () { - return expect(this.codeContext.getCode()).toBe(undefined); + it('returns undefined if no textSource is available', () => { + expect(this.codeContext.getCode()).toBe(null); }); - it('returns a string prepended with newlines when prependNewlines is truthy', function () { + it('returns a string prepended with newlines when prependNewlines is truthy', () => { this.codeContext.textSource = this.dummyTextSource; this.codeContext.lineNumber = 3; @@ -47,83 +47,83 @@ describe('CodeContext', () => { expect(typeof code).toEqual('string'); // Since Array#join will create newlines for one less than the the number // of elements line number 3 means there should be two newlines - return expect(code).toMatch("\n\nprint 'hello world!'"); + expect(code).toMatch("\n\nprint 'hello world!'"); }); - return it('returns the text from the textSource when available', function () { + it('returns the text from the textSource when available', () => { this.codeContext.textSource = this.dummyTextSource; const code = this.codeContext.getCode(); expect(typeof code).toEqual('string'); - return expect(code).toMatch("print 'hello world!'"); + expect(code).toMatch("print 'hello world!'"); }); }); describe('shebangCommand when no shebang was found', () => - it('returns undefined when no shebang is found', function () { + it('returns undefined when no shebang is found', () => { const lines = this.dummyTextSource.getText(); const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - return expect(this.codeContext.shebangCommand()).toBe(undefined); + expect(this.codeContext.shebangCommand()).toBe(null); }), ); describe('shebangCommand when a shebang was found', () => { - it('returns the command from the shebang', function () { + it('returns the command from the shebang', () => { const lines = "#!/bin/bash\necho 'hello from bash!'"; const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - return expect(this.codeContext.shebangCommand()).toMatch('bash'); + expect(this.codeContext.shebangCommand()).toMatch('bash'); }); - it('returns /usr/bin/env as the command if applicable', function () { + it('returns /usr/bin/env as the command if applicable', () => { const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; let firstLine = lines.split('\n')[0]; firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - return expect(this.codeContext.shebangCommand()).toMatch('env'); + expect(this.codeContext.shebangCommand()).toMatch('env'); }); - return it('returns a command with non-alphabet characters', function () { + it('returns a command with non-alphabet characters', () => { const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - return expect(this.codeContext.shebangCommand()).toMatch('python2.7'); + expect(this.codeContext.shebangCommand()).toMatch('python2.7'); }); }); describe('shebangCommandArgs when no shebang was found', () => - it('returns [] when no shebang is found', function () { + it('returns [] when no shebang is found', () => { const lines = this.dummyTextSource.getText(); const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - return expect(this.codeContext.shebangCommandArgs()).toMatch([]); + expect(this.codeContext.shebangCommandArgs()).toMatch([]); }), ); - return describe('shebangCommandArgs when a shebang was found', () => { - it('returns the command from the shebang', function () { + describe('shebangCommandArgs when a shebang was found', () => { + it('returns the command from the shebang', () => { const lines = "#!/bin/bash\necho 'hello from bash!'"; const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - return expect(this.codeContext.shebangCommandArgs()).toMatch([]); + expect(this.codeContext.shebangCommandArgs()).toMatch([]); }); - it('returns the true command as the first argument when /usr/bin/env is used', function () { + it('returns the true command as the first argument when /usr/bin/env is used', () => { const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; let firstLine = lines.split('\n')[0]; firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } const args = this.codeContext.shebangCommandArgs(); expect(args[0]).toMatch('ruby'); - return expect(args).toMatch(['ruby', '-w']); + expect(args).toMatch(['ruby', '-w']); }); - return it('returns the command args when the command had non-alphabet characters', function () { + it('returns the command args when the command had non-alphabet characters', () => { const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - return expect(this.codeContext.shebangCommandArgs()).toMatch([]); + expect(this.codeContext.shebangCommandArgs()).toMatch([]); }); }); }); diff --git a/spec/fixtures/throw.js b/spec/fixtures/throw.js index 2496fb21..83025124 100644 --- a/spec/fixtures/throw.js +++ b/spec/fixtures/throw.js @@ -1 +1 @@ -throw 'kaboom'; +throw new Error('kaboom'); diff --git a/spec/grammar-utils/lisp-spec.js b/spec/grammar-utils/lisp-spec.js index 3a5efbf9..0301c02e 100644 --- a/spec/grammar-utils/lisp-spec.js +++ b/spec/grammar-utils/lisp-spec.js @@ -8,42 +8,42 @@ describe('GrammarUtils', () => it('returns empty array for empty code', () => { const code = ''; - return expect(toStatements(code)).toEqual([]); + expect(toStatements(code)).toEqual([]); }); it('does not split single statement', () => { const code = '(print "dummy")'; - return expect(toStatements(code)).toEqual([code]); + expect(toStatements(code)).toEqual([code]); }); it('splits two simple statements', () => { const code = '(print "dummy")(print "statement")'; - return expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); + expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); }); it('splits two simple statements in many lines', () => { const code = '(print "dummy") \n\n (print "statement")'; - return expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); + expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); }); it('does not split single line complex statement', () => { const code = '(when t(setq a 2)(+ i 1))'; - return expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']); + expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']); }); it('does not split multi line complex statement', () => { const code = '(when t(setq a 2) \n \t (+ i 1))'; - return expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']); + expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']); }); it('splits single line complex statements', () => { const code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))'; - return expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']); + expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']); }); - return it('splits multi line complex statements', () => { + it('splits multi line complex statements', () => { const code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))'; - return expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']); + expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']); }); }), ); diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index eff886c8..01fc408b 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -1,131 +1,124 @@ 'use babel'; +/* eslint-disable no-unused-vars, global-require, no-undef */ import CodeContext from '../lib/code-context'; import OperatingSystem from '../lib/grammar-utils/operating-system'; -import grammarMap from '../lib/grammars'; +import grammarMap from '../lib/grammars.coffee'; describe('grammarMap', () => { - beforeEach(function () { + beforeEach(() => { this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); // TODO: Test using an actual editor or a selection? this.dummyTextSource = {}; - return this.dummyTextSource.getText = () => ''; + this.dummyTextSource.getText = () => ''; }); - it("has a command and an args function set for each grammar's mode", function () { + it("has a command and an args function set for each grammar's mode", () => { this.codeContext.textSource = this.dummyTextSource; - return (() => { - const result = []; - for (const lang in grammarMap) { - const modes = grammarMap[lang]; - result.push((() => { - const result1 = []; - for (const mode in modes) { - const commandContext = modes[mode]; - expect(commandContext.command).toBeDefined(); - const argList = commandContext.args(this.codeContext); - result1.push(expect(argList).toBeDefined()); - } - return result1; - })()); + for (const lang in grammarMap) { + const modes = grammarMap[lang]; + for (const mode in modes) { + const commandContext = modes[mode]; + expect(commandContext.command).toBeDefined(); + const argList = commandContext.args(this.codeContext); + expect(argList).toBeDefined(); } - return result; - })(); + } }); - return describe('Operating system specific runners', () => { - beforeEach(function () { - this._originalPlatform = OperatingSystem.platform; - return this.reloadGrammar = function () { + describe('Operating system specific runners', () => { + beforeEach(() => { + this.originalPlatform = OperatingSystem.platform; + this.reloadGrammar = () => { delete require.cache[require.resolve('../lib/grammars.coffee')]; - return newGrammarMap = require('../lib/grammars.coffee'); + this.grammarMap = require('../lib/grammars.coffee'); }; }); - afterEach(function () { - OperatingSystem.platform = this._originalPlatform; - return this.reloadGrammar(); + afterEach(() => { + OperatingSystem.platform = this.originalPlatform; + this.reloadGrammar(); }); describe('C', () => - it('returns the appropriate File Based runner on Mac OS X', function () { + it('returns the appropriate File Based runner on Mac OS X', () => { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - const grammar = newGrammarMap.C; + const grammar = this.grammarMap.C; const fileBasedRunner = grammar['File Based']; const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); - return expect(args[1]).toMatch(/^xcrun clang/); + expect(args[1]).toMatch(/^xcrun clang/); }), ); describe('C++', () => - it('returns the appropriate File Based runner on Mac OS X', function () { + it('returns the appropriate File Based runner on Mac OS X', () => { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - const grammar = newGrammarMap['C++']; + const grammar = this.grammarMap['C++']; const fileBasedRunner = grammar['File Based']; const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); - return expect(args[1]).toMatch(/^xcrun clang\+\+/); + expect(args[1]).toMatch(/^xcrun clang\+\+/); }), ); describe('F#', () => { - it('returns "fsi" as command for File Based runner on Windows', function () { + it('returns "fsi" as command for File Based runner on Windows', () => { OperatingSystem.platform = () => 'win32'; this.reloadGrammar(); - const grammar = newGrammarMap['F#']; + const grammar = this.grammarMap['F#']; const fileBasedRunner = grammar['File Based']; const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('fsi'); expect(args[0]).toEqual('--exec'); - return expect(args[1]).toEqual(this.codeContext.filepath); + expect(args[1]).toEqual(this.codeContext.filepath); }); - return it('returns "fsharpi" as command for File Based runner when platform is not Windows', function () { + it('returns "fsharpi" as command for File Based runner when platform is not Windows', () => { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - const grammar = newGrammarMap['F#']; + const grammar = this.grammarMap['F#']; const fileBasedRunner = grammar['File Based']; const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('fsharpi'); expect(args[0]).toEqual('--exec'); - return expect(args[1]).toEqual(this.codeContext.filepath); + expect(args[1]).toEqual(this.codeContext.filepath); }); }); describe('Objective-C', () => - it('returns the appropriate File Based runner on Mac OS X', function () { + it('returns the appropriate File Based runner on Mac OS X', () => { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - const grammar = newGrammarMap['Objective-C']; + const grammar = this.grammarMap['Objective-C']; const fileBasedRunner = grammar['File Based']; const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); - return expect(args[1]).toMatch(/^xcrun clang/); + expect(args[1]).toMatch(/^xcrun clang/); }), ); - return describe('Objective-C++', () => - it('returns the appropriate File Based runner on Mac OS X', function () { + describe('Objective-C++', () => + it('returns the appropriate File Based runner on Mac OS X', () => { OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); - const grammar = newGrammarMap['Objective-C++']; + const grammar = this.grammarMap['Objective-C++']; const fileBasedRunner = grammar['File Based']; const args = fileBasedRunner.args(this.codeContext); expect(fileBasedRunner.command).toEqual('bash'); expect(args[0]).toEqual('-c'); - return expect(args[1]).toMatch(/^xcrun clang\+\+/); + expect(args[1]).toMatch(/^xcrun clang\+\+/); }), ); }); diff --git a/spec/link-paths-spec.js b/spec/link-paths-spec.js index e2c01433..a84b1185 100644 --- a/spec/link-paths-spec.js +++ b/spec/link-paths-spec.js @@ -10,27 +10,27 @@ describe('linkPaths', () => { expect(result).toContain('data-path="b/c.js"'); expect(result).toContain('data-line="44"'); expect(result).toContain('data-column="55"'); - return expect(result).toContain('b/c.js:44:55'); + expect(result).toContain('b/c.js:44:55'); }); it('detects file paths with Windows style drive prefix', () => { const result = linkPaths('foo() C:/b/c.js:44:55'); - return expect(result).toContain('data-path="C:/b/c.js"'); + expect(result).toContain('data-path="C:/b/c.js"'); }); it('allow ommitting the column number', () => { const result = linkPaths('foo() b/c.js:44'); expect(result).toContain('data-line="44"'); - return expect(result).toContain('data-column=""'); + expect(result).toContain('data-column=""'); }); - return it('links multiple paths', () => { + it('links multiple paths', () => { const multilineResult = linkPaths(`\ foo() b/c.js:44:55 bar() b/c.js:45:56\ `, ); expect(multilineResult).toContain('foo() { - beforeEach(function () { + beforeEach(() => { this.command = 'node'; this.runOptions = new ScriptOptions(); this.runOptions.cmd = this.command; - return this.runner = new Runner(this.runOptions); + this.runner = new Runner(this.runOptions); }); - afterEach(function () { - return this.runner.destroy(); + afterEach(() => { + this.runner.destroy(); }); - return describe('run', () => { - it('with no input', function () { + describe('run', () => { + it('with no input', () => { runs(() => { this.output = null; - this.runner.onDidWriteToStdout(output => this.output = output, - ); - return this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); + this.runner.onDidWriteToStdout((output) => { + this.output = output; + }); + this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); }, ); - waitsFor(() => this.output !== null - , 'File should execute', 500); + waitsFor(() => this.output !== null, 'File should execute', 500); - return runs(() => expect(this.output).toEqual({ message: 'hello\n' }), + runs(() => expect(this.output).toEqual({ message: 'hello\n' }), ); }); - it('with an input string', function () { + it('with an input string', () => { runs(() => { this.output = null; - this.runner.onDidWriteToStdout(output => this.output = output, - ); - return this.runner.run(this.command, ['./spec/fixtures/ioTest.js'], {}, 'hello'); - }, - ); + this.runner.onDidWriteToStdout((output) => { + this.output = output; + }); + this.runner.run(this.command, ['./spec/fixtures/ioTest.js'], {}, 'hello'); + }); - waitsFor(() => this.output !== null - , 'File should execute', 500); + waitsFor(() => this.output !== null, 'File should execute', 500); - return runs(() => expect(this.output).toEqual({ message: 'TEST: hello\n' }), + runs(() => expect(this.output).toEqual({ message: 'TEST: hello\n' }), ); }); - it('exits', function () { + it('exits', () => { runs(() => { this.exited = false; - this.runner.onDidExit(() => this.exited = true, - ); - return this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); - }, - ); + this.runner.onDidExit(() => { + this.exited = true; + }); + this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); + }); - return waitsFor(() => this.exited - , 'Should receive exit callback', 500); + waitsFor(() => this.exited, 'Should receive exit callback', 500); }); - it('notifies about writing to stderr', function () { + it('notifies about writing to stderr', () => { runs(() => { this.failedEvent = null; - this.runner.onDidWriteToStderr(event => this.failedEvent = event, - ); - return this.runner.run(this.command, ['./spec/fixtures/throw.js'], {}); - }, - ); + this.runner.onDidWriteToStderr((event) => { + this.failedEvent = event; + }); + this.runner.run(this.command, ['./spec/fixtures/throw.js'], {}); + }); - waitsFor(() => this.failedEvent - , 'Should receive failure callback', 500); + waitsFor(() => this.failedEvent, 'Should receive failure callback', 500); - return runs(() => expect(this.failedEvent.message).toMatch(/kaboom/), + runs(() => expect(this.failedEvent.message).toMatch(/kaboom/), ); }); - return it('terminates stdin', function () { + it('terminates stdin', () => { runs(() => { this.output = null; - this.runner.onDidWriteToStdout(output => this.output = output, - ); - return this.runner.run(this.command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input'); - }, - ); + this.runner.onDidWriteToStdout((output) => { + this.output = output; + }); + this.runner.run(this.command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input'); + }); - waitsFor(() => this.output !== null - , 'File should execute', 500); + waitsFor(() => this.output !== null, 'File should execute', 500); - return runs(() => expect(this.output).toEqual({ message: 'stdin terminated\n' }), + runs(() => expect(this.output).toEqual({ message: 'stdin terminated\n' }), ); }); }); diff --git a/spec/script-options-spec.js b/spec/script-options-spec.js index e36f53c8..a4dfdbca 100644 --- a/spec/script-options-spec.js +++ b/spec/script-options-spec.js @@ -1,38 +1,39 @@ 'use babel'; +/* eslint-disable no-underscore-dangle */ import ScriptOptions from '../lib/script-options'; describe('ScriptOptions', () => { - beforeEach(function () { + beforeEach(() => { this.scriptOptions = new ScriptOptions(); this.dummyEnv = { SCRIPT_CI: 'true', SCRIPT_ENV: 'test', _NUMBERS: '123', }; - return this.dummyEnvString = "SCRIPT_CI=true;SCRIPT_ENV='test';_NUMBERS=\"123\""; + this.dummyEnvString = "SCRIPT_CI=true;SCRIPT_ENV='test';_NUMBERS=\"123\""; }); describe('getEnv', () => { - it('should default to an empty env object', function () { + it('should default to an empty env object', () => { const env = this.scriptOptions.getEnv(); - return expect(env).toEqual({}); + expect(env).toEqual({}); }); - return it('should parse a custom user environment', function () { + it('should parse a custom user environment', () => { this.scriptOptions.env = this.dummyEnvString; const env = this.scriptOptions.getEnv(); - return expect(env).toEqual; + expect(env).toEqual(this.dummyEnv); }); }); - return describe('mergedEnv', () => { - it('should default to the orignal env object', function () { + describe('mergedEnv', () => { + it('should default to the orignal env object', () => { const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); - return expect(mergedEnv).toEqual(this.dummyEnv); + expect(mergedEnv).toEqual(this.dummyEnv); }); - it('should retain the original environment', function () { + it('should retain the original environment', () => { this.scriptOptions.env = "TEST_VAR_1=one;TEST_VAR_2=\"two\";TEST_VAR_3='three'"; const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); expect(mergedEnv.SCRIPT_CI).toEqual('true'); @@ -40,16 +41,16 @@ describe('ScriptOptions', () => { expect(mergedEnv._NUMBERS).toEqual('123'); expect(mergedEnv.TEST_VAR_1).toEqual('one'); expect(mergedEnv.TEST_VAR_2).toEqual('two'); - return expect(mergedEnv.TEST_VAR_3).toEqual('three'); + expect(mergedEnv.TEST_VAR_3).toEqual('three'); }); - return it('should support special character values', function () { - this.scriptOptions.env = "TEST_VAR_1=o-n-e;TEST_VAR_2=\"nested\\\"doublequotes\\\"\";TEST_VAR_3='nested\\\'singlequotes\\\'';TEST_VAR_4='s p a c e s'"; + it('should support special character values', () => { + this.scriptOptions.env = "TEST_VAR_1=o-n-e;TEST_VAR_2=\"nested\\\"doublequotes\\\"\";TEST_VAR_3='nested\\'singlequotes\\'';TEST_VAR_4='s p a c e s'"; const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); expect(mergedEnv.TEST_VAR_1).toEqual('o-n-e'); expect(mergedEnv.TEST_VAR_2).toEqual('nested\\"doublequotes\\"'); - expect(mergedEnv.TEST_VAR_3).toEqual("nested\\\'singlequotes\\\'"); - return expect(mergedEnv.TEST_VAR_4).toEqual('s p a c e s'); + expect(mergedEnv.TEST_VAR_3).toEqual("nested\\'singlequotes\\'"); + expect(mergedEnv.TEST_VAR_4).toEqual('s p a c e s'); }); }); }); From 066dab1a7c5187bf4ec9d5febb684b6eac5bc9cf Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 10:41:23 +0100 Subject: [PATCH 132/410] Fix null comparisons --- lib/code-context-builder.js | 8 ++++---- lib/command-context.js | 8 ++++---- lib/grammar-utils/lisp.js | 4 ++-- lib/runner.js | 13 ++++++------- lib/runtime.js | 2 +- lib/script-options.js | 2 +- lib/script-view.js | 2 +- lib/script.js | 2 +- lib/view-runtime-observer.js | 2 +- spec/fixtures/ioTest.js | 2 +- 10 files changed, 22 insertions(+), 23 deletions(-) diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index db7c0240..dc6333c9 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -11,7 +11,7 @@ export default class CodeContextBuilder { } destroy() { - return this.emitter.dispose(); + this.emitter.dispose(); } // Public: Builds code context for specified argType @@ -33,7 +33,7 @@ export default class CodeContextBuilder { if (argType === 'Line Number Based') { editor.save(); - } else if (codeContext.selection.isEmpty() && (codeContext.filepath != null)) { + } else if (codeContext.selection.isEmpty() && codeContext.filepath) { codeContext.argType = 'File Based'; if (editor && editor.isModified()) editor.save(); } @@ -110,10 +110,10 @@ export default class CodeContextBuilder { } onDidNotSpecifyLanguage(callback) { - return this.emitter.on('did-not-specify-language', callback); + this.emitter.on('did-not-specify-language', callback); } onDidNotSupportLanguage(callback) { - return this.emitter.on('did-not-support-language', callback); + this.emitter.on('did-not-support-language', callback); } } diff --git a/lib/command-context.js b/lib/command-context.js index 788b414c..99cf3a6e 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -16,7 +16,7 @@ export default class CommandContext { let buildArgsArray; try { - if ((runOptions.cmd == null) || runOptions.cmd === '') { + if (!runOptions.cmd || runOptions.cmd === '') { // Precondition: lang? and lang of grammarMap commandContext.command = codeContext.shebangCommand() || grammarMap[codeContext.lang][codeContext.argType].command; @@ -37,7 +37,7 @@ export default class CommandContext { return false; } - if ((runOptions.workingDirectory == null) || runOptions.workingDirectory === '') { + if (!runOptions.workingDirectory) { // Precondition: lang? and lang of grammarMap commandContext.workingDirectory = grammarMap[codeContext.lang][codeContext.argType].workingDirectory || ''; } else { @@ -56,11 +56,11 @@ export default class CommandContext { if (!this.command || !this.args.length) { return ''; } // command arguments - const commandArgs = (this.options.cmdArgs != null) ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; + const commandArgs = this.options.cmdArgs ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; // script arguments const args = this.args.length ? this.quoteArguments(this.args).join(' ') : ''; - const scriptArgs = (this.options.scriptArgs != null) ? this.quoteArguments(this.options.scriptArgs).join(' ') : ''; + const scriptArgs = this.options.scriptArgs ? this.quoteArguments(this.options.scriptArgs).join(' ') : ''; return this.command.trim() + (commandArgs ? ` ${commandArgs}` : '') + diff --git a/lib/grammar-utils/lisp.js b/lib/grammar-utils/lisp.js index 52468270..2abddebf 100644 --- a/lib/grammar-utils/lisp.js +++ b/lib/grammar-utils/lisp.js @@ -10,7 +10,7 @@ export default { // Returns an {Array} of executable statements. splitStatements(code) { const iterator = (statements, currentCharacter) => { - if (this.parenDepth == null) { this.parenDepth = 0; } + if (!this.parenDepth) this.parenDepth = 0; if (currentCharacter === '(') { this.parenDepth += 1; this.inStatement = true; @@ -18,7 +18,7 @@ export default { this.parenDepth -= 1; } - if (this.statement == null) { this.statement = ''; } + if (!this.statement) this.statement = ''; this.statement += currentCharacter; if (this.parenDepth === 0 && this.inStatement) { diff --git a/lib/runner.js b/lib/runner.js index 1bd2e94f..db47881a 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -66,8 +66,7 @@ export default class Runner { getCwd() { let cwd = this.scriptOptions.workingDirectory; - const workingDirectoryProvided = (cwd != null) && cwd !== ''; - if (!workingDirectoryProvided) { + if (cwd) { switch (atom.config.get('script.cwdBehavior')) { case 'First project directory': { const paths = atom.project.getPaths(); @@ -95,7 +94,7 @@ export default class Runner { } stop() { - if (this.bufferedProcess != null) { + if (this.bufferedProcess) { this.bufferedProcess.kill(); this.bufferedProcess = null; } @@ -136,15 +135,15 @@ export default class Runner { } fillVarsInArg(arg, codeContext, projectPath) { - if (codeContext.filepath != null) { + if (codeContext.filepath) { arg = arg.replace(/{FILE_ACTIVE}/g, codeContext.filepath); arg = arg.replace(/{FILE_ACTIVE_PATH}/g, path.join(codeContext.filepath, '..')); } - if (codeContext.filename != null) { + if (codeContext.filename) { arg = arg.replace(/{FILE_ACTIVE_NAME}/g, codeContext.filename); arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.basename(codeContext.filename, path.extname(codeContext.filename))); } - if (projectPath != null) { + if (projectPath) { arg = arg.replace(/{PROJECT_PATH}/g, projectPath); } @@ -156,7 +155,7 @@ export default class Runner { const projectPath = this.getProjectPath || ''; args = (args.map(arg => this.fillVarsInArg(arg, codeContext, projectPath))); - if ((this.scriptOptions.cmd == null) || this.scriptOptions.cmd === '') { + if (!this.scriptOptions.cmd) { args = codeContext.shebangCommandArgs().concat(args); } return args; diff --git a/lib/runtime.js b/lib/runtime.js index 625d06ca..09e582c4 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -68,7 +68,7 @@ export default class Runtime { if (!commandContext) { return; } - if (commandContext.workingDirectory != null) { + if (commandContext.workingDirectory) { executionOptions.workingDirectory = commandContext.workingDirectory; } diff --git a/lib/script-options.js b/lib/script-options.js index 174c14b9..e1f2437b 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -39,7 +39,7 @@ export default class ScriptOptions { // // Returns an {Object} representation of the user specified environment. getEnv() { - if ((this.env == null) || this.env === '') { return {}; } + if (!this.env) return {}; const mapping = {}; diff --git a/lib/script-view.js b/lib/script-view.js index 2e5b9909..c36cde21 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -58,7 +58,7 @@ export default class ScriptView extends MessagePanelView { } setHeaderAndShowExecutionTime(returnCode, executionTime) { - if (executionTime != null) { + if (executionTime) { this.display('stdout', `[Finished in ${executionTime.toString()}s]`); } else { this.display('stdout'); diff --git a/lib/script.js b/lib/script.js index e9f5a2c6..f7203367 100644 --- a/lib/script.js +++ b/lib/script.js @@ -135,7 +135,7 @@ export default { // profile renamed this.scriptProfileRunView.onProfileChange((data) => { const index = this.scriptProfiles.indexOf(data.profile); - if (index === -1 || (this.scriptProfiles[index][data.key] == null)) { return; } + if (index === -1 || !this.scriptProfiles[index][data.key]) { return; } this.scriptProfiles[index][data.key] = data.value; this.scriptProfileRunView.show(); diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index 1f8f1171..43498cbb 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -25,7 +25,7 @@ export default class ViewRuntimeObserver { this.subscriptions.add(runtime.onDidNotRun(ev => this.view.showUnableToRunError(ev.command))); this.subscriptions.add(runtime.onDidContextCreate((ev) => { - const title = `${ev.lang} - ${ev.filename}${(ev.lineNumber != null) ? `:${ev.lineNumber}` : ''}`; + const title = `${ev.lang} - ${ev.filename}${ev.lineNumber ? `:${ev.lineNumber}` : ''}`; this.view.setHeaderTitle(title); })); this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => diff --git a/spec/fixtures/ioTest.js b/spec/fixtures/ioTest.js index f7726a61..7fa743e1 100644 --- a/spec/fixtures/ioTest.js +++ b/spec/fixtures/ioTest.js @@ -2,7 +2,7 @@ process.stdin.setEncoding('utf8'); process.stdin.on('readable', () => { const chunk = process.stdin.read(); - if (chunk !== null) { + if (chunk) { console.log(`TEST: ${chunk}`); } }); From 2144042ce19e057eac0e5823b772de7d8faaec51 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 13:02:32 +0100 Subject: [PATCH 133/410] Fix Class constructors --- .eslintrc.yml | 1 + lib/code-context.js | 11 ++--------- lib/command-context.js | 13 ++++++------- lib/runner.js | 9 +++------ lib/runtime.js | 10 ++-------- lib/script-options.js | 19 +++++++++---------- lib/script-profile-run-view.js | 6 ++---- lib/script-view.js | 10 ++++------ 8 files changed, 29 insertions(+), 50 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index eaab0219..2ae0b283 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -18,3 +18,4 @@ rules: default-case: [0] guard-for-in: [0] no-this-before-super: [0] + prefer-rest-params: [0] diff --git a/lib/code-context.js b/lib/code-context.js index 21c579d1..a9ce134d 100644 --- a/lib/code-context.js +++ b/lib/code-context.js @@ -1,14 +1,6 @@ 'use babel'; export default class CodeContext { - static initClass() { - this.prototype.filename = null; - this.prototype.filepath = null; - this.prototype.lineNumber = null; - this.prototype.shebang = null; - this.prototype.textSource = null; - } - // Public: Initializes a new {CodeContext} object for the given file/line // // @filename - The {String} filename of the file to execute. @@ -17,6 +9,8 @@ export default class CodeContext { // // Returns a newly created {CodeContext} object. constructor(filename, filepath, textSource = null) { + this.lineNumber = null; + this.shebang = null; this.filename = filename; this.filepath = filepath; this.textSource = textSource; @@ -82,4 +76,3 @@ export default class CodeContext { return this.shebang ? this.shebang.split(' ') : null; } } -CodeContext.initClass(); diff --git a/lib/command-context.js b/lib/command-context.js index 99cf3a6e..f1563f15 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -3,11 +3,11 @@ import grammarMap from './grammars.coffee'; export default class CommandContext { - static initClass() { - this.prototype.command = null; - this.prototype.workingDirectory = null; - this.prototype.args = []; - this.prototype.options = {}; + constructor() { + this.command = null; + this.workingDirectory = null; + this.args = []; + this.options = {}; } static build(runtime, runOptions, codeContext) { @@ -16,7 +16,7 @@ export default class CommandContext { let buildArgsArray; try { - if (!runOptions.cmd || runOptions.cmd === '') { + if (!runOptions.cmd) { // Precondition: lang? and lang of grammarMap commandContext.command = codeContext.shebangCommand() || grammarMap[codeContext.lang][codeContext.argType].command; @@ -68,4 +68,3 @@ export default class CommandContext { (scriptArgs ? ` ${scriptArgs}` : ''); } } -CommandContext.initClass(); diff --git a/lib/runner.js b/lib/runner.js index db47881a..f84cb034 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -5,21 +5,19 @@ import fs from 'fs'; import path from 'path'; export default class Runner { - static initClass() { - this.prototype.bufferedProcess = null; - } // Public: Creates a Runner instance // // * `scriptOptions` a {ScriptOptions} object instance // * `emitter` Atom's {Emitter} instance. You probably don't need to overwrite it - constructor(scriptOptions, emitter = new Emitter()) { + constructor(scriptOptions) { + this.bufferedProcess = null; this.stdoutFunc = this.stdoutFunc.bind(this); this.stderrFunc = this.stderrFunc.bind(this); this.onExit = this.onExit.bind(this); this.createOnErrorFunc = this.createOnErrorFunc.bind(this); this.scriptOptions = scriptOptions; - this.emitter = emitter; + this.emitter = new Emitter(); } run(command, extraArgs, codeContext, inputString = null) { @@ -175,4 +173,3 @@ export default class Runner { return null; } } -Runner.initClass(); diff --git a/lib/runtime.js b/lib/runtime.js index 09e582c4..755073da 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -7,18 +7,14 @@ import _ from 'underscore'; import CommandContext from './command-context'; export default class Runtime { - static initClass() { - this.prototype.observers = []; - } - // Public: Initializes a new {Runtime} instance // // This class is responsible for properly configuring {Runner} - constructor(runner, codeContextBuilder, observers = [], emitter = new Emitter()) { + constructor(runner, codeContextBuilder, observers = []) { this.runner = runner; this.codeContextBuilder = codeContextBuilder; this.observers = observers; - this.emitter = emitter; + this.emitter = new Emitter(); this.scriptOptions = this.runner.scriptOptions; _.each(this.observers, observer => observer.observe(this)); } @@ -176,5 +172,3 @@ export default class Runtime { this.emitter.emit('did-not-build-args', { error }); } } - -Runtime.initClass(); diff --git a/lib/script-options.js b/lib/script-options.js index e1f2437b..82380c0b 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -3,15 +3,15 @@ import _ from 'underscore'; export default class ScriptOptions { - static initClass() { - this.prototype.name = ''; - this.prototype.description = ''; - this.prototype.lang = ''; - this.prototype.workingDirectory = null; - this.prototype.cmd = null; - this.prototype.cmdArgs = []; - this.prototype.env = null; - this.prototype.scriptArgs = []; + constructor() { + this.name = ''; + this.description = ''; + this.lang = ''; + this.workingDirectory = null; + this.cmd = null; + this.cmdArgs = []; + this.env = null; + this.scriptArgs = []; } static createFromOptions(name, options) { @@ -71,4 +71,3 @@ export default class ScriptOptions { return mergedEnv; } } -ScriptOptions.initClass(); diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 3c2aaf14..1880fec2 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -7,7 +7,7 @@ import ScriptInputView from './script-input-view'; export default class ScriptProfileRunView extends SelectListView { initialize(profiles) { this.profiles = profiles; - super(); + super.initialize(...arguments); this.emitter = new Emitter(); @@ -16,9 +16,7 @@ export default class ScriptProfileRunView extends SelectListView { 'core:cancel': () => this.hide(), 'core:close': () => this.hide(), 'script:run-with-profile': () => (this.panel.isVisible() ? this.hide() : this.show()), - }, - ), - ); + })); this.setItems(this.profiles); this.initializeView(); diff --git a/lib/script-view.js b/lib/script-view.js index c36cde21..04f118c5 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -11,14 +11,13 @@ import linkPaths from './link-paths'; // Runs a portion of a script through an interpreter and displays it line by line export default class ScriptView extends MessagePanelView { - static initClass() { - this.prototype.scrollTimeout = null; - } constructor() { - super({ title: this.headerView, rawTitle: true, closeMethod: 'destroy' }); + const headerView = new HeaderView(); + super({ title: headerView, rawTitle: true, closeMethod: 'destroy' }); + this.scrollTimeout = null; this.ansiFilter = new AnsiFilter(); - this.headerView = new HeaderView(); + this.headerView = headerView; this.showInTab = this.showInTab.bind(this); this.setHeaderAndShowExecutionTime = this.setHeaderAndShowExecutionTime.bind(this); @@ -219,4 +218,3 @@ new?title=Add%20support%20for%20${lang}`, } } } -ScriptView.initClass(); From ac3622211d220b69ed366b21b5a54dc283b710df Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 13:29:58 +0100 Subject: [PATCH 134/410] Don't use bound functions in jQuery --- lib/script-profile-run-view.js | 14 +++++++------- lib/script-view.js | 23 ++++++++++++----------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 1880fec2..896c6d28 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -1,5 +1,6 @@ 'use babel'; +/* eslint-disable func-names */ import { CompositeDisposable, Emitter } from 'atom'; import { $$, SelectListView } from 'atom-space-pen-views'; import ScriptInputView from './script-input-view'; @@ -26,7 +27,7 @@ export default class ScriptProfileRunView extends SelectListView { this.addClass('overlay from-top script-profile-run-view'); // @panel.hide() - this.buttons = $$(() => + this.buttons = $$(function () { this.div({ class: 'block buttons' }, () => { /* eslint-disable no-unused-vars */ const css = 'btn inline-block-tight'; @@ -39,8 +40,8 @@ export default class ScriptProfileRunView extends SelectListView { ); this.button({ class: 'btn run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), ); - }, - )); + }); + }); // event handlers this.buttons.find('.btn.cancel').on('click', () => this.hide()); @@ -130,15 +131,14 @@ export default class ScriptProfileRunView extends SelectListView { } viewForItem(item) { - return $$(() => + return $$(function () { this.li({ class: 'two-lines profile' }, () => { this.div({ class: 'primary-line name' }, () => this.text(item.name), ); this.div({ class: 'secondary-line description' }, () => this.text(item.description), ); - }, - ), - ); + }); + }); } cancel() {} diff --git a/lib/script-view.js b/lib/script-view.js index 04f118c5..c188e2db 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -1,5 +1,6 @@ 'use babel'; +/* eslint-disable func-names */ import { $$ } from 'atom-space-pen-views'; import { MessagePanelView } from 'atom-message-panel'; import _ from 'underscore'; @@ -28,14 +29,14 @@ export default class ScriptView extends MessagePanelView { } addShowInTabIcon() { - const icon = $$(() => + const icon = $$(function () { this.div({ class: 'heading-show-in-tab inline-block icon-file-text', style: 'cursor: pointer;', outlet: 'btnShowInTab', title: 'Show output in new tab', - }), - ); + }); + }); icon.click(this.showInTab); icon.insertBefore(this.btnAutoScroll); @@ -114,7 +115,7 @@ export default class ScriptView extends MessagePanelView { // NOTE: Replace "#" after regular encoding so we don't double escape it. encodedURI = encodedURI.replace(/#/g, '%23'); - const err = $$(() => { + const err = $$(function () { this.p({ class: 'block' }, `${argType} runner not available for ${lang}.`); this.p({ class: 'block' }, () => { this.text('If it should exist, add an '); @@ -127,7 +128,7 @@ export default class ScriptView extends MessagePanelView { } showUnableToRunError(command) { - this.add($$(() => { + this.add($$(function () { this.h1('Unable to run'); this.pre(_.escape(command)); this.h2('Did you start Atom from the command line?'); @@ -139,15 +140,15 @@ export default class ScriptView extends MessagePanelView { } showNoLanguageSpecified() { - const err = $$(() => + const err = $$(function () { this.p('You must select a language in the lower right, or save the file with an appropriate extension.', - ), ); + }); this.handleError(err); } showLanguageNotSupported(lang) { - const err = $$(() => { + const err = $$(function () { this.p({ class: 'block' }, `Command not configured for ${lang}!`); this.p({ class: 'block' }, () => { this.text('Add an '); @@ -190,9 +191,9 @@ new?title=Add%20support%20for%20${lang}`, // we are not interfering with the user's manual scrolling const atEnd = scrollTop >= (scrollHeight - clientHeight); - this.add($$(() => - this.pre({ class: `line ${css}` }, () => this.raw(line))), - ); + this.add($$(function () { + this.pre({ class: `line ${css}` }, () => this.raw(line)); + })); if (atom.config.get('script.scrollWithOutput') && atEnd) { // Scroll down in a polling loop 'cause From e638503ea2d1af348a10d9d89c1a059b0dd0b22d Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 14:15:09 +0100 Subject: [PATCH 135/410] Return emitted events --- lib/code-context-builder.js | 4 ++-- lib/runner.js | 8 ++++---- lib/runtime.js | 26 +++++++++++++------------- lib/script-input-view.js | 4 ++-- lib/script-options-view.js | 2 +- lib/script-profile-run-view.js | 6 +++--- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index dc6333c9..3b8d8121 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -110,10 +110,10 @@ export default class CodeContextBuilder { } onDidNotSpecifyLanguage(callback) { - this.emitter.on('did-not-specify-language', callback); + return this.emitter.on('did-not-specify-language', callback); } onDidNotSupportLanguage(callback) { - this.emitter.on('did-not-support-language', callback); + return this.emitter.on('did-not-support-language', callback); } } diff --git a/lib/runner.js b/lib/runner.js index f84cb034..fa9d6da2 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -46,7 +46,7 @@ export default class Runner { } onDidWriteToStdout(callback) { - this.emitter.on('did-write-to-stdout', callback); + return this.emitter.on('did-write-to-stdout', callback); } stderrFunc(output) { @@ -54,7 +54,7 @@ export default class Runner { } onDidWriteToStderr(callback) { - this.emitter.on('did-write-to-stderr', callback); + return this.emitter.on('did-write-to-stderr', callback); } destroy() { @@ -110,7 +110,7 @@ export default class Runner { } onDidExit(callback) { - this.emitter.on('did-exit', callback); + return this.emitter.on('did-exit', callback); } createOnErrorFunc(command) { @@ -122,7 +122,7 @@ export default class Runner { } onDidNotRun(callback) { - this.emitter.on('did-not-run', callback); + return this.emitter.on('did-not-run', callback); } options() { diff --git a/lib/runtime.js b/lib/runtime.js index 755073da..52560855 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -89,46 +89,46 @@ export default class Runtime { // Public: Dispatched when the execution is starting onStart(callback) { - this.emitter.on('start', callback); + return this.emitter.on('start', callback); } // Public: Dispatched when the execution is started onStarted(callback) { - this.emitter.on('started', callback); + return this.emitter.on('started', callback); } // Public: Dispatched when the execution is stopping onStop(callback) { - this.emitter.on('stop', callback); + return this.emitter.on('stop', callback); } // Public: Dispatched when the execution is stopped onStopped(callback) { - this.emitter.on('stopped', callback); + return this.emitter.on('stopped', callback); } // Public: Dispatched when the language is not specified onDidNotSpecifyLanguage(callback) { - this.codeContextBuilder.onDidNotSpecifyLanguage(callback); + return this.codeContextBuilder.onDidNotSpecifyLanguage(callback); } // Public: Dispatched when the language is not supported // lang - {String} with the language name onDidNotSupportLanguage(callback) { - this.codeContextBuilder.onDidNotSupportLanguage(callback); + return this.codeContextBuilder.onDidNotSupportLanguage(callback); } // Public: Dispatched when the mode is not supported // lang - {String} with the language name // argType - {String} with the run mode specified onDidNotSupportMode(callback) { - this.emitter.on('did-not-support-mode', callback); + return this.emitter.on('did-not-support-mode', callback); } // Public: Dispatched when building run arguments resulted in an error // error - {Error} onDidNotBuildArgs(callback) { - this.emitter.on('did-not-build-args', callback); + return this.emitter.on('did-not-build-args', callback); } // Public: Dispatched when the {CodeContext} is successfully created @@ -136,32 +136,32 @@ export default class Runtime { // filename - {String} with the filename // lineNumber - {Number} with the line number (may be null) onDidContextCreate(callback) { - this.emitter.on('did-context-create', callback); + return this.emitter.on('did-context-create', callback); } // Public: Dispatched when the process you run writes something to stdout // message - {String} with the output onDidWriteToStdout(callback) { - this.runner.onDidWriteToStdout(callback); + return this.runner.onDidWriteToStdout(callback); } // Public: Dispatched when the process you run writes something to stderr // message - {String} with the output onDidWriteToStderr(callback) { - this.runner.onDidWriteToStderr(callback); + return this.runner.onDidWriteToStderr(callback); } // Public: Dispatched when the process you run exits // returnCode - {Number} with the process' exit code // executionTime - {Number} with the process' exit code onDidExit(callback) { - this.runner.onDidExit(callback); + return this.runner.onDidExit(callback); } // Public: Dispatched when the code you run did not manage to run // command - {String} with the run command onDidNotRun(callback) { - this.runner.onDidNotRun(callback); + return this.runner.onDidNotRun(callback); } modeNotSupported(argType, lang) { diff --git a/lib/script-input-view.js b/lib/script-input-view.js index d8b4c9ae..1e26812f 100644 --- a/lib/script-input-view.js +++ b/lib/script-input-view.js @@ -53,11 +53,11 @@ export default class ScriptInputView extends View { } onConfirm(callback) { - this.emitter.on('on-confirm', callback); + return this.emitter.on('on-confirm', callback); } onCancel(callback) { - this.emitter.on('on-cancel', callback); + return this.emitter.on('on-cancel', callback); } focus() { diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 3ce76693..b14a7e95 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -159,7 +159,7 @@ export default class ScriptOptionsView extends View { } onProfileSave(callback) { - this.emitter.on('on-profile-save', callback); + return this.emitter.on('on-profile-save', callback); } // Saves specified options as new profile diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 896c6d28..a296c7a5 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -81,15 +81,15 @@ export default class ScriptProfileRunView extends SelectListView { } onProfileDelete(callback) { - this.emitter.on('on-profile-delete', callback); + return this.emitter.on('on-profile-delete', callback); } onProfileChange(callback) { - this.emitter.on('on-profile-change', callback); + return this.emitter.on('on-profile-change', callback); } onProfileRun(callback) { - this.emitter.on('on-profile-run', callback); + return this.emitter.on('on-profile-run', callback); } From e0405baab963ebc4a0dbb968a016d067ddc6f661 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 20:15:58 +0100 Subject: [PATCH 136/410] Fix __super__ call --- lib/script-view.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/script-view.js b/lib/script-view.js index c188e2db..84e78c0f 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -88,8 +88,7 @@ export default class ScriptView extends MessagePanelView { this.stop(); this.detach(); // the 'close' method from MessagePanelView actually destroys the panel - /* eslint-disable no-underscore-dangle */ - ScriptView.__super__.close.apply(this); + Object.getPrototypeOf(ScriptView.prototype).close.apply(this); } // This is triggered when hitting the 'close' button on the panel From cdc5e5449d0e6f575fed1e54daa9c58aad903247 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 20:37:52 +0100 Subject: [PATCH 137/410] Fix minor style issues --- lib/command-context.js | 4 +- lib/grammar-utils.js | 4 +- lib/header-view.js | 3 +- lib/link-paths.js | 3 +- lib/runner.js | 2 +- lib/runtime.js | 9 ++--- lib/script-input-view.js | 10 ++--- lib/script-options-view.js | 64 ++++++++++++------------------- lib/script-profile-run-view.js | 24 ++++-------- lib/script-view.js | 12 ++---- lib/script.js | 26 ++++++------- lib/view-runtime-observer.js | 22 ++++------- spec/code-context-builder-spec.js | 3 +- spec/link-paths-spec.js | 5 +-- spec/runner-spec.js | 15 +++----- 15 files changed, 76 insertions(+), 130 deletions(-) diff --git a/lib/command-context.js b/lib/command-context.js index f1563f15..a5b64647 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -49,11 +49,11 @@ export default class CommandContext { } quoteArguments(args) { - return (args.map(arg => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`))); + return args.map(arg => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`)); } getRepresentation() { - if (!this.command || !this.args.length) { return ''; } + if (!this.command || !this.args.length) return ''; // command arguments const commandArgs = this.options.cmdArgs ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 7e9901e2..19e8b663 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -17,7 +17,9 @@ export default { // Returns the {String} filepath of the new file createTempFileWithCode(code, extension = '') { try { - if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } + if (!fs.existsSync(this.tempFilesDir)) { + fs.mkdirSync(this.tempFilesDir); + } const tempFilePath = this.tempFilesDir + path.sep + uuid.v1() + extension; diff --git a/lib/header-view.js b/lib/header-view.js index b3aa8602..66d0ca1a 100644 --- a/lib/header-view.js +++ b/lib/header-view.js @@ -8,8 +8,7 @@ export default class HeaderView extends View { return this.div({ class: 'header-view' }, () => { this.span({ class: 'heading-title', outlet: 'title' }); return this.span({ class: 'heading-status', outlet: 'status' }); - }, - ); + }); } setStatus(status) { diff --git a/lib/link-paths.js b/lib/link-paths.js index 46a8287b..bfabb099 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -24,5 +24,4 @@ linkPaths.listen = parentView => initialLine: line, initialColumn: column, }); - }) -; + }); diff --git a/lib/runner.js b/lib/runner.js index fa9d6da2..f49df65a 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -102,7 +102,7 @@ export default class Runner { this.bufferedProcess = null; let executionTime; - if ((atom.config.get('script.enableExecTime')) === true && this.startTime) { + if ((atom.config.get('script.enableExecTime') === true) && this.startTime) { executionTime = (new Date().getTime() - this.startTime.getTime()) / 1000; } diff --git a/lib/runtime.js b/lib/runtime.js index 52560855..01e2ea3b 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -49,7 +49,7 @@ export default class Runtime { // * "File Based" // input (Optional) - {String} that'll be provided to the `stdin` of the new process execute(argType = 'Selection Based', input = null, options = null) { - if (atom.config.get('script.stopOnRerun')) { this.stop(); } + if (atom.config.get('script.stopOnRerun')) this.stop(); this.emitter.emit('start'); const codeContext = this.codeContextBuilder.buildCodeContext( @@ -57,12 +57,12 @@ export default class Runtime { // In the future we could handle a runner without the language being part // of the grammar map, using the options runner - if (!codeContext || !codeContext.lang) { return; } + if (!codeContext || !codeContext.lang) return; const executionOptions = !options ? this.scriptOptions : options; const commandContext = CommandContext.build(this, executionOptions, codeContext); - if (!commandContext) { return; } + if (!commandContext) return; if (commandContext.workingDirectory) { executionOptions.workingDirectory = commandContext.workingDirectory; @@ -72,8 +72,7 @@ export default class Runtime { lang: codeContext.lang, filename: codeContext.filename, lineNumber: codeContext.lineNumber, - }, - ); + }); this.runner.scriptOptions = executionOptions; this.runner.run(commandContext.command, commandContext.args, codeContext, input); diff --git a/lib/script-input-view.js b/lib/script-input-view.js index 1e26812f..b461f23b 100644 --- a/lib/script-input-view.js +++ b/lib/script-input-view.js @@ -8,8 +8,7 @@ export default class ScriptInputView extends View { this.div({ class: 'script-input-view' }, () => { this.div({ class: 'caption' }, ''); this.tag('atom-text-editor', { mini: '', class: 'editor mini' }); - }, - ); + }); } initialize(options) { @@ -38,8 +37,7 @@ export default class ScriptInputView extends View { this.emitter.emit('on-cancel'); this.hide(); } - }, - ); + }); this.subscriptions = new CompositeDisposable(); this.subscriptions.add(atom.commands.add('atom-workspace', { @@ -47,9 +45,7 @@ export default class ScriptInputView extends View { this.emitter.emit('on-confirm', this.editor.getText().trim()); this.hide(); }, - }, - ), - ); + })); } onConfirm(callback) { diff --git a/lib/script-options-view.js b/lib/script-options-view.js index b14a7e95..00555cb4 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -12,51 +12,40 @@ export default class ScriptOptionsView extends View { this.table(() => { this.tr(() => { this.td({ class: 'first' }, () => this.label('Current Working Directory:')); - this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' }), - ); - }, - ); + this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' })); + }); this.tr(() => { this.td(() => this.label('Command')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' }), - ); - }, - ); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' })); + }); this.tr(() => { this.td(() => this.label('Command Arguments:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' }), - ); - }, - ); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' })); + }); this.tr(() => { this.td(() => this.label('Program Arguments:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' }), - ); - }, - ); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' })); + }); this.tr(() => { this.td(() => this.label('Environment Variables:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' }), - ); - }, - ); - }, - ); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' })); + }); + }); this.div({ class: 'block buttons' }, () => { const css = 'btn inline-block-tight'; - this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => this.span({ class: 'icon icon-x' }, 'Cancel'), + this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => + this.span({ class: 'icon icon-x' }, 'Cancel'), ); this.span({ class: 'right-buttons' }, () => { - this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => this.span({ class: 'icon icon-file-text' }, 'Save as profile'), + this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => + this.span({ class: 'icon icon-file-text' }, 'Save as profile'), ); - this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), + this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => + this.span({ class: 'icon icon-playback-play' }, 'Run'), ); - }, - ); - }, - ); - }, - ); + }); + }); + }); } initialize(runOptions) { @@ -70,9 +59,7 @@ export default class ScriptOptionsView extends View { 'script:close-options': () => this.hide(), 'script:run-options': () => (this.panel.isVisible() ? this.hide() : this.show()), 'script:save-options': () => this.saveOptions(), - }, - ), - ); + })); // handling focus traversal and run on enter this.find('atom-text-editor').on('keydown', (e) => { @@ -91,8 +78,7 @@ export default class ScriptOptionsView extends View { case 13: return this.run(); } return null; - }, - ); + }); this.panel = atom.workspace.addModalPanel({ item: this }); this.panel.hide(); @@ -169,8 +155,7 @@ export default class ScriptOptionsView extends View { const options = this.getOptions(); const inputView = new ScriptInputView({ caption: 'Enter profile name:' }); - inputView.onCancel(() => this.show(), - ); + inputView.onCancel(() => this.show()); inputView.onConfirm((profileName) => { if (!profileName) { return; } this.find('atom-text-editor').forEach((editor) => { @@ -182,8 +167,7 @@ export default class ScriptOptionsView extends View { // add to global profiles list this.emitter.emit('on-profile-save', { name: profileName, options }); - }, - ); + }); inputView.show(); } diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index a296c7a5..b1f7ea0e 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -32,14 +32,10 @@ export default class ScriptProfileRunView extends SelectListView { /* eslint-disable no-unused-vars */ const css = 'btn inline-block-tight'; /* eslint-enable no-unused-vars */ - this.button({ class: 'btn cancel' }, () => this.span({ class: 'icon icon-x' }, 'Cancel'), - ); - this.button({ class: 'btn rename' }, () => this.span({ class: 'icon icon-pencil' }, 'Rename'), - ); - this.button({ class: 'btn delete' }, () => this.span({ class: 'icon icon-trashcan' }, 'Delete'), - ); - this.button({ class: 'btn run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run'), - ); + this.button({ class: 'btn cancel' }, () => this.span({ class: 'icon icon-x' }, 'Cancel')); + this.button({ class: 'btn rename' }, () => this.span({ class: 'icon icon-pencil' }, 'Rename')); + this.button({ class: 'btn delete' }, () => this.span({ class: 'icon icon-trashcan' }, 'Delete')); + this.button({ class: 'btn run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run')); }); }); @@ -56,15 +52,13 @@ export default class ScriptProfileRunView extends SelectListView { e.preventDefault(); this.focusFilterEditor(); } - }, - ); + }); // hide panel on ecsape this.on('keydown', (e) => { if (e.keyCode === 27) { this.hide(); } if (e.keyCode === 13) { this.run(); } - }, - ); + }); // append buttons container this.append(this.buttons); @@ -133,10 +127,8 @@ export default class ScriptProfileRunView extends SelectListView { viewForItem(item) { return $$(function () { this.li({ class: 'two-lines profile' }, () => { - this.div({ class: 'primary-line name' }, () => this.text(item.name), - ); - this.div({ class: 'secondary-line description' }, () => this.text(item.description), - ); + this.div({ class: 'primary-line name' }, () => this.text(item.name)); + this.div({ class: 'secondary-line description' }, () => this.text(item.description)); }); }); } diff --git a/lib/script-view.js b/lib/script-view.js index 84e78c0f..15149285 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -106,10 +106,7 @@ export default class ScriptView extends MessagePanelView { createGitHubIssueLink(argType, lang) { const title = `Add ${argType} support for ${lang}`; - const body = `\ -##### Platform: \`${process.platform}\` ----\ -`; + const body = `##### Platform: \`${process.platform}\`\n---\n`; let encodedURI = encodeURI(`https://github.com/rgbkrk/atom-script/issues/new?title=${title}&body=${body}`); // NOTE: Replace "#" after regular encoding so we don't double escape it. encodedURI = encodedURI.replace(/#/g, '%23'); @@ -151,12 +148,9 @@ export default class ScriptView extends MessagePanelView { this.p({ class: 'block' }, `Command not configured for ${lang}!`); this.p({ class: 'block' }, () => { this.text('Add an '); - this.a({ href: `https://github.com/rgbkrk/atom-script/issues/\ -new?title=Add%20support%20for%20${lang}`, - }, 'issue on GitHub'); + this.a({ href: `https://github.com/rgbkrk/atom-script/issues/new?title=Add%20support%20for%20${lang}` }, 'issue on GitHub'); this.text(' or send your own Pull Request.'); - }, - ); + }); }); this.handleError(err); } diff --git a/lib/script.js b/lib/script.js index f7203367..df2dd4ca 100644 --- a/lib/script.js +++ b/lib/script.js @@ -51,13 +51,13 @@ export default { ], }, }, - // For some reason, the text of these options does not show in package settings view - // default: 'firstProj' - // enum: [ - // {value: 'firstProj', description: 'First project directory (if there is one)'} - // {value: 'scriptProj', description: 'Project directory of the script (if there is one)'} - // {value: 'scriptDir', description: 'Directory of the script'} - // ] + // For some reason, the text of these options does not show in package settings view + // default: 'firstProj' + // enum: [ + // {value: 'firstProj', description: 'First project directory (if there is one)'} + // {value: 'scriptProj', description: 'Project directory of the script (if there is one)'} + // {value: 'scriptDir', description: 'Directory of the script'} + // ] scriptView: null, scriptOptionsView: null, scriptProfileRunView: null, @@ -119,8 +119,7 @@ export default { this.scriptOptionsView.hide(); this.scriptProfileRunView.show(); this.scriptProfileRunView.setProfiles(this.scriptProfiles); - }, - ); + }); // profile deleted this.scriptProfileRunView.onProfileDelete((profile) => { @@ -129,8 +128,7 @@ export default { if (index !== -1) { this.scriptProfiles.splice(index, 1); } this.scriptProfileRunView.setProfiles(this.scriptProfiles); - }, - ); + }); // profile renamed this.scriptProfileRunView.onProfileChange((data) => { @@ -140,15 +138,13 @@ export default { this.scriptProfiles[index][data.key] = data.value; this.scriptProfileRunView.show(); this.scriptProfileRunView.setProfiles(this.scriptProfiles); - }, - ); + }); // profile renamed return this.scriptProfileRunView.onProfileRun((profile) => { if (!profile) { return; } this.runtime.execute('Selection Based', null, profile); - }, - ); + }); }, deactivate() { diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index 43498cbb..dc6e35db 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -9,21 +9,14 @@ export default class ViewRuntimeObserver { } observe(runtime) { - this.subscriptions.add(runtime.onStart(() => - this.view.resetView())); - this.subscriptions.add(runtime.onStarted((ev) => { - this.view.commandContext = ev; - })); - this.subscriptions.add(runtime.onStopped(() => - this.view.stop())); - this.subscriptions.add(runtime.onDidWriteToStderr(ev => - this.view.display('stderr', ev.message))); - this.subscriptions.add(runtime.onDidWriteToStdout(ev => - this.view.display('stdout', ev.message))); + this.subscriptions.add(runtime.onStart(() => this.view.resetView())); + this.subscriptions.add(runtime.onStarted((ev) => { this.view.commandContext = ev; })); + this.subscriptions.add(runtime.onStopped(() => this.view.stop())); + this.subscriptions.add(runtime.onDidWriteToStderr(ev => this.view.display('stderr', ev.message))); + this.subscriptions.add(runtime.onDidWriteToStdout(ev => this.view.display('stdout', ev.message))); this.subscriptions.add(runtime.onDidExit(ev => this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime))); - this.subscriptions.add(runtime.onDidNotRun(ev => - this.view.showUnableToRunError(ev.command))); + this.subscriptions.add(runtime.onDidNotRun(ev => this.view.showUnableToRunError(ev.command))); this.subscriptions.add(runtime.onDidContextCreate((ev) => { const title = `${ev.lang} - ${ev.filename}${ev.lineNumber ? `:${ev.lineNumber}` : ''}`; this.view.setHeaderTitle(title); @@ -34,8 +27,7 @@ export default class ViewRuntimeObserver { this.view.showLanguageNotSupported(ev.lang))); this.subscriptions.add(runtime.onDidNotSupportMode(ev => this.view.createGitHubIssueLink(ev.argType, ev.lang))); - this.subscriptions.add(runtime.onDidNotBuildArgs(ev => - this.view.handleError(ev.error))); + this.subscriptions.add(runtime.onDidNotBuildArgs(ev => this.view.handleError(ev.error))); } destroy() { diff --git a/spec/code-context-builder-spec.js b/spec/code-context-builder-spec.js index 66f6eaf9..7cbfebd6 100644 --- a/spec/code-context-builder-spec.js +++ b/spec/code-context-builder-spec.js @@ -63,6 +63,7 @@ describe('CodeContextBuilder', () => { const codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); expect(codeContext.argType).toEqual(argType); expect(codeContext.lineNumber).toEqual(2); - })), + }), + ), ); }); diff --git a/spec/link-paths-spec.js b/spec/link-paths-spec.js index a84b1185..a1700262 100644 --- a/spec/link-paths-spec.js +++ b/spec/link-paths-spec.js @@ -25,10 +25,7 @@ describe('linkPaths', () => { }); it('links multiple paths', () => { - const multilineResult = linkPaths(`\ -foo() b/c.js:44:55 -bar() b/c.js:45:56\ -`, + const multilineResult = linkPaths('foo() b/c.js:44:5\nbar() b/c.js:45:56', ); expect(multilineResult).toContain('foo() { this.output = output; }); this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); - }, - ); + }); waitsFor(() => this.output !== null, 'File should execute', 500); - runs(() => expect(this.output).toEqual({ message: 'hello\n' }), - ); + runs(() => expect(this.output).toEqual({ message: 'hello\n' })); }); it('with an input string', () => { @@ -43,8 +41,7 @@ describe('Runner', () => { waitsFor(() => this.output !== null, 'File should execute', 500); - runs(() => expect(this.output).toEqual({ message: 'TEST: hello\n' }), - ); + runs(() => expect(this.output).toEqual({ message: 'TEST: hello\n' })); }); it('exits', () => { @@ -70,8 +67,7 @@ describe('Runner', () => { waitsFor(() => this.failedEvent, 'Should receive failure callback', 500); - runs(() => expect(this.failedEvent.message).toMatch(/kaboom/), - ); + runs(() => expect(this.failedEvent.message).toMatch(/kaboom/)); }); it('terminates stdin', () => { @@ -85,8 +81,7 @@ describe('Runner', () => { waitsFor(() => this.output !== null, 'File should execute', 500); - runs(() => expect(this.output).toEqual({ message: 'stdin terminated\n' }), - ); + runs(() => expect(this.output).toEqual({ message: 'stdin terminated\n' })); }); }); }); From f4c754317bb133522ca4618deec882787062cdb6 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 22:41:03 +0100 Subject: [PATCH 138/410] :arrow_up: Dependencies --- lib/grammar-utils.js | 2 +- lib/grammar-utils/d.js | 2 +- lib/grammar-utils/matlab.js | 2 +- package.json | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 19e8b663..e61521be 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -4,7 +4,7 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; -import uuid from 'node-uuid'; +import uuid from 'uuid'; // Public: GrammarUtils - utilities for determining how to run code export default { diff --git a/lib/grammar-utils/d.js b/lib/grammar-utils/d.js index fa4dcd6c..6d4adea3 100644 --- a/lib/grammar-utils/d.js +++ b/lib/grammar-utils/d.js @@ -4,7 +4,7 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; -import uuid from 'node-uuid'; +import uuid from 'uuid'; // Public: GrammarUtils.D - a module which assist the creation of D temporary files export default { diff --git a/lib/grammar-utils/matlab.js b/lib/grammar-utils/matlab.js index b8e8e85b..dcc87596 100644 --- a/lib/grammar-utils/matlab.js +++ b/lib/grammar-utils/matlab.js @@ -4,7 +4,7 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; -import uuid from 'node-uuid'; +import uuid from 'uuid'; // Public: GrammarUtils.MATLAB - a module which assist the creation of MATLAB temporary files export default { diff --git a/package.json b/package.json index 1cf44d68..0a4abc8c 100644 --- a/package.json +++ b/package.json @@ -331,12 +331,12 @@ ] }, "dependencies": { - "ansi-to-html": ">0.1.0", - "node-uuid": "~1.4.0", - "strip-ansi": "^3.0.0", - "underscore": "~1.5.2", + "ansi-to-html": "^0.4.2", + "atom-message-panel": "^1.2.7", "atom-space-pen-views": "^2.0.3", - "atom-message-panel": "1.2.4" + "uuid": "^3.0.1", + "strip-ansi": "^3.0.0", + "underscore": "^1.8.3" }, "devDependencies": { "babel-eslint": "^7.1.1", From 223b08e05ea79cc2f3056f441589b27cf770ab50 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 5 Dec 2016 22:42:54 +0100 Subject: [PATCH 139/410] Remove unused devDependencies --- package.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/package.json b/package.json index 0a4abc8c..7cd0350d 100644 --- a/package.json +++ b/package.json @@ -340,12 +340,9 @@ }, "devDependencies": { "babel-eslint": "^7.1.1", - "coffee-script": "^1.11.1", - "coffeelint": "^1.14.2", "eslint": "^3.11.1", "eslint-config-airbnb-base": "^10.0.1", - "eslint-plugin-import": "^2.2.0", - "grunt": "~0.4.5" + "eslint-plugin-import": "^2.2.0" }, "providedServices": { "default-script-runtime": { From 86b8d6de2f76a2901c3b9769a8b8a6bfaa0ed240 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Wed, 7 Dec 2016 22:44:20 +0100 Subject: [PATCH 140/410] Changelog for 3.12.0 As discussed on https://nteract.slack.com/archives/random/p1481072923000024 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f33a997..c0b39d1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## 3.12.0 + +* Convert codebase to ES6 Javascript +* Fix path to fixtures in tests +* Support for `LAMMPS` +* Support for `VBScript` + ## 3.11.1 * Revert `Support java packages` From 93739565bfaa0af50b69fc6cfef2cdd81d5096be Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Wed, 7 Dec 2016 22:45:23 +0100 Subject: [PATCH 141/410] Prepare 3.12.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7cd0350d..5fa4a636 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.11.1", + "version": "3.12.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 46b36e805a00b88b3941bf7c8fb7ab3c4493f7ca Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 8 Dec 2016 18:38:00 +0100 Subject: [PATCH 142/410] Fix exception caused by bound function --- lib/link-paths.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/link-paths.js b/lib/link-paths.js index bfabb099..282b3320 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -1,6 +1,6 @@ 'use babel'; -/* eslint-disable no-multi-str, prefer-const*/ +/* eslint-disable no-multi-str, prefer-const, func-names */ let linkPaths; const regex = new RegExp('\ ((?:\\w:)?/?\ @@ -13,7 +13,7 @@ const template = ' lines.replace(regex, template); linkPaths.listen = parentView => - parentView.on('click', '.-linked-path', () => { + parentView.on('click', '.-linked-path', function () { const el = this; let { path, line, column } = el.dataset; line = Number(line) - 1; From 6dd7fbdd4a3166f03bc00aa83f118f0d9a7e35a6 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 8 Dec 2016 18:40:51 +0100 Subject: [PATCH 143/410] Add comments lost by converting to JS --- lib/link-paths.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/link-paths.js b/lib/link-paths.js index 282b3320..da9b0e16 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -2,12 +2,12 @@ /* eslint-disable no-multi-str, prefer-const, func-names */ let linkPaths; -const regex = new RegExp('\ -((?:\\w:)?/?\ -(?:[-\\w.]+/)*[-\\w.]+)\ -:(\\d+)\ -(?::(\\d+))?\ -', 'g'); +const regex = new RegExp('((?:\\w:)?/?(?:[-\\w.]+/)*[-\\w.]+):(\\d+)(?::(\\d+))?', 'g'); +// ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) +// (?:[-\w.]+/)*[-\w.]+) # The path of the file some/file/path.ext +// :(\d+) # Line number prefixed with a colon +// (?::(\d+))? # Column number prefixed with a colon (optional) + const template = '$&'; export default linkPaths = lines => lines.replace(regex, template); From f2086a8411c35688d139450ef6dbd1c7bb4982bf Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 8 Dec 2016 23:09:22 +0100 Subject: [PATCH 144/410] Changelog for 3.12.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0b39d1c..3796d374 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.12.1 + +* Fix `Cannot read property 'path' of undefined` + ## 3.12.0 * Convert codebase to ES6 Javascript From 2c8c943cfb7d674013fbd900149850647a613b18 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 8 Dec 2016 23:09:36 +0100 Subject: [PATCH 145/410] Prepare 3.12.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5fa4a636..a2f5ba5a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.12.0", + "version": "3.12.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From b5f9a17819dab0b89474d6994ab1d592284b0211 Mon Sep 17 00:00:00 2001 From: hakobe Date: Fri, 9 Dec 2016 19:19:04 +0900 Subject: [PATCH 146/410] Fix condition for detecting cwd. --- lib/runner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/runner.js b/lib/runner.js index f49df65a..f291fc89 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -64,7 +64,7 @@ export default class Runner { getCwd() { let cwd = this.scriptOptions.workingDirectory; - if (cwd) { + if (!cwd) { switch (atom.config.get('script.cwdBehavior')) { case 'First project directory': { const paths = atom.project.getPaths(); From 6218f1941bbe1b3e3e189cdd035fd23e85f1547a Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Fri, 9 Dec 2016 11:44:09 +0100 Subject: [PATCH 147/410] Changelog for 3.12.2 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3796d374..39574d5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.12.2 + +* Fix condition for detecting cwd. + ## 3.12.1 * Fix `Cannot read property 'path' of undefined` From 1553494f7a7dd262630186644e60fa1d4a6bdb69 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Fri, 9 Dec 2016 11:44:20 +0100 Subject: [PATCH 148/410] Prepare 3.12.2 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a2f5ba5a..5486c3d5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.12.1", + "version": "3.12.2", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 42a35cb12fc1c175d9da83966d0ef8eac71f8cbc Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Tue, 13 Dec 2016 12:11:47 +0100 Subject: [PATCH 149/410] Fix: _this2.find(...).forEach is not a function Use _.forEach since this.find('atom-text-editor') returns a object --- lib/script-options-view.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 00555cb4..d130134e 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -2,6 +2,7 @@ import { CompositeDisposable, Emitter } from 'atom'; import { View } from 'atom-space-pen-views'; +import _ from 'underscore'; import ScriptInputView from './script-input-view'; export default class ScriptOptionsView extends View { @@ -157,8 +158,8 @@ export default class ScriptOptionsView extends View { const inputView = new ScriptInputView({ caption: 'Enter profile name:' }); inputView.onCancel(() => this.show()); inputView.onConfirm((profileName) => { - if (!profileName) { return; } - this.find('atom-text-editor').forEach((editor) => { + if (!profileName) return; + _.forEach(this.find('atom-text-editor'), (editor) => { editor.getModel().setText(''); }); From 4812704e176386832722bbdb9ab6192afd472b48 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 15 Dec 2016 01:41:48 +0100 Subject: [PATCH 150/410] Add support for HTML --- README.md | 1 + examples/hello.html | 10 ++++++++++ lib/grammars.coffee | 11 ++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 examples/hello.html diff --git a/README.md b/README.md index cbd2a132..a15e706a 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Currently supported grammars are: | Go | Yes | | | | Groovy | Yes | Yes | | | Haskell | Yes | Yes | | +| HTML | Yes | | Opens File in Browser | | Hy | Yes | Yes | Requires the path of 'hy.exe' in your system environment variables. This is probably already fulfilled if you used `pip install hy` to get Hy. A Hy grammar, such as [this one](https://atom.io/packages/language-hy) is also a good idea. | | IcedCoffeeScript | Yes | Yes | | | Inno Setup | Yes | | Requires the path of `ISCC.exe` in your system environment variables | diff --git a/examples/hello.html b/examples/hello.html new file mode 100644 index 00000000..ca05d70d --- /dev/null +++ b/examples/hello.html @@ -0,0 +1,10 @@ + + + + +

Atom Script

+ +

Hello World

+ + + diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 2c540128..e20f31a6 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -4,6 +4,7 @@ _ = require 'underscore' path = require 'path' GrammarUtils = require '../lib/grammar-utils' +shell = require('electron').shell module.exports = '1C (BSL)': @@ -858,4 +859,12 @@ module.exports = ['//NOLOGO',tmpFile] 'File Based': command: 'cscript' - args: (context) -> ['//NOLOGO',context.filepath] + args: (context) -> ['//NOLOGO', context.filepath] + + HTML: + "File Based": + command: 'echo' + args: (context) -> + uri = 'file://' + context.filepath + shell.openExternal(uri) + ['HTML file opened at:', uri] From dc2e4bb4899859ba00e4170b83c8ad5cc8f8c04e Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 15 Dec 2016 11:37:37 +0100 Subject: [PATCH 151/410] Changelog for 3.13.0 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39574d5a..1435dbd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 3.13.0 + +* Support for `HTML` +* Fix exception during profile saving + ## 3.12.2 * Fix condition for detecting cwd. From effd37a2a158023a15b6266b3b672610c151556e Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 15 Dec 2016 11:37:54 +0100 Subject: [PATCH 152/410] Prepare 3.13.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5486c3d5..a7939729 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.12.2", + "version": "3.13.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 0942ea1f6f36d64fd1997b390f171eb634bde3e6 Mon Sep 17 00:00:00 2001 From: gliviu Date: Sat, 31 Dec 2016 15:13:57 +0200 Subject: [PATCH 153/410] Add support for Robot Framework #634 --- README.md | 1 + examples/hello.robot | 22 ++++++++++++++++++++++ lib/grammars.coffee | 5 +++++ 3 files changed, 28 insertions(+) create mode 100644 examples/hello.robot diff --git a/README.md b/README.md index a15e706a..e29e7d2a 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,7 @@ Currently supported grammars are: | [RANT](https://github.com/TheBerkin/Rant) | Yes | Yes | | | Reason | Yes | Yes | | | Ren'Py | Yes | No | Requires `renpy` to be in path. Runs project at root of current file.| +| Robot Framework | Yes | No | Requires `robot` to be in path. Output location depends on CWD behaviour which can be altered in settings. | | RSpec | Yes | Yes | | | Ruby | Yes | Yes | | | Ruby on Rails | Yes | Yes | | diff --git a/examples/hello.robot b/examples/hello.robot new file mode 100644 index 00000000..19651f7b --- /dev/null +++ b/examples/hello.robot @@ -0,0 +1,22 @@ +*** Settings *** +Library String + +*** Test cases *** +Hello + ${left} Left string Robot Framework 5 + ${right} Right string Robot Framework 9 + ${robot} Set Variable ${left} ${right} + Should Be Equal Robot Framework ${robot} + +*** Keywords *** +Left string + [Arguments] ${input} ${noChars} + ${left} Get Substring ${input} 0 ${noChars} + [Return] ${left} + +Right string + [Arguments] ${input} ${noChars} + ${len} Get Length ${input} + ${start} Evaluate ${len}-${noChars} + ${left} Get Substring ${input} ${start} + [Return] ${left} diff --git a/lib/grammars.coffee b/lib/grammars.coffee index e20f31a6..55421478 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -708,6 +708,11 @@ module.exports = command: "renpy" args: (context) -> [context.filepath.substr(0, context.filepath.lastIndexOf("/game"))] + 'Robot Framework': + "File Based": + command: 'robot' + args: (context) -> [context.filepath] + RSpec: "Selection Based": command: "ruby" From a8b4526b41b1fafb98d7f65782867e1d6665d93b Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Mon, 2 Jan 2017 16:46:48 +0000 Subject: [PATCH 154/410] Java package support on bash --- lib/grammar-utils/java.js | 9 ++++++++- lib/grammars.coffee | 7 +++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index 925d9bfa..baed8c4e 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -37,6 +37,13 @@ export default { getClassPackage(context) { const projectPath = module.exports.getProjectPath(context); const projectRemoved = (context.filepath.replace(`${projectPath}/`, '')); - return projectRemoved.replace(`/${context.filename}`, ''); + const filenameRemoved = projectRemoved.replace(`/${context.filename}`, ''); + + // File is in root of src directory - no package + if(filenameRemoved == projectRemoved){ + return ""; + } + + return filenameRemoved + "." }, }; diff --git a/lib/grammars.coffee b/lib/grammars.coffee index e20f31a6..8b20d3b0 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -342,12 +342,15 @@ module.exports = "File Based": command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" args: (context) -> - className = context.filename.replace /\.java$/, "" + className = GrammarUtils.Java.getClassName context + classPackages = GrammarUtils.Java.getClassPackage context + args = [] if GrammarUtils.OperatingSystem.isWindows() args = ["/c javac -Xlint #{context.filename} && java #{className}"] else - args = ['-c', "javac -d /tmp '#{context.filepath}' && java -cp /tmp #{className}"] + args = ['-c', "javac -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] + return args JavaScript: From 31c7e9bfe36f7f82c9f9bcd059e0139dbec0efc4 Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Mon, 2 Jan 2017 16:50:19 +0000 Subject: [PATCH 155/410] Update readme for packaging description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a15e706a..50b07936 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Currently supported grammars are: | IcedCoffeeScript | Yes | Yes | | | Inno Setup | Yes | | Requires the path of `ISCC.exe` in your system environment variables | | [ioLanguage](http://iolanguage.org/) | Yes | Yes | | -| Java | Yes | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables | +| Java | Yes | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables. Project directory should be the source directory; subfolders imply packaging. | | Javascript | Yes | Yes | | | [JavaScript for Automation](https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html) (JXA) | Yes | Yes | | | Jolie | Yes | | | From b14da971b31c83205f4082d1d245019023304a66 Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Mon, 2 Jan 2017 17:32:55 +0000 Subject: [PATCH 156/410] Support importing classes from local packages --- lib/grammars.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8b20d3b0..a334a6bd 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -344,12 +344,13 @@ module.exports = args: (context) -> className = GrammarUtils.Java.getClassName context classPackages = GrammarUtils.Java.getClassPackage context + sourcePath = GrammarUtils.Java.getProjectPath context args = [] if GrammarUtils.OperatingSystem.isWindows() args = ["/c javac -Xlint #{context.filename} && java #{className}"] else - args = ['-c', "javac -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] + args = ['-c', "javac -sourcepath #{sourcePath} -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] return args From 98bbdaccd68121a2ef9d15f2589203274cac1f26 Mon Sep 17 00:00:00 2001 From: Samed Duzcay Date: Sat, 7 Jan 2017 04:43:46 +0300 Subject: [PATCH 157/410] add support for PureScript --- README.md | 1 + lib/grammars.coffee | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index a15e706a..6f1a006b 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ Currently supported grammars are: | PowerShell | Yes | Yes | | | Processing | Yes | | Runs through processing-java. | | Prolog | Yes | | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl | +| PureScript | Yes | | Requires `pulp` to be in path. | | Python | Yes | Yes | | | R | Yes | Yes | | | Racket | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index e20f31a6..8a42a631 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -653,6 +653,15 @@ module.exports = command: "bash" args: (context) -> ['-c', 'cd \"' + context.filepath.replace(/[^\/]*$/, '') + '\"; swipl -f \"' + context.filepath + '\" -t main --quiet'] + PureScript: + "File Based": + command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + args: (context) -> + if GrammarUtils.OperatingSystem.isWindows() + ['/c cd ' + context.filepath.replace(/[^\/]*$/, '') + ' && pulp run'] + else + ['-c', 'cd "' + context.filepath.replace(/[^\/]*$/, '') + '" && pulp run'] + Python: "Selection Based": command: "python" From ede17108ac6bbefdecbb4e5c953afabeb379c64f Mon Sep 17 00:00:00 2001 From: Samed Duzcay Date: Sat, 7 Jan 2017 04:44:30 +0300 Subject: [PATCH 158/410] add purescript hello world file to examples --- examples/hello.purs | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 examples/hello.purs diff --git a/examples/hello.purs b/examples/hello.purs new file mode 100644 index 00000000..85624b45 --- /dev/null +++ b/examples/hello.purs @@ -0,0 +1,9 @@ +module Hello where + +import Prelude (Unit) +import Control.Monad.Eff (Eff) +import Control.Monad.Eff.Console (CONSOLE, log) + +main :: forall t. Eff ("console" :: CONSOLE | t) Unit +main = + log "Hello, World!" From 4f03b2b70cba459adbf0c82df64af471f131b54f Mon Sep 17 00:00:00 2001 From: Samed Duzcay Date: Sat, 7 Jan 2017 04:48:36 +0300 Subject: [PATCH 159/410] add missing double-quotes --- lib/grammars.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 8a42a631..5573cd33 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -658,7 +658,7 @@ module.exports = command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" args: (context) -> if GrammarUtils.OperatingSystem.isWindows() - ['/c cd ' + context.filepath.replace(/[^\/]*$/, '') + ' && pulp run'] + ['/c cd "' + context.filepath.replace(/[^\/]*$/, '') + '" && pulp run'] else ['-c', 'cd "' + context.filepath.replace(/[^\/]*$/, '') + '" && pulp run'] From 8f44e741ba69f05bda1403c836094d9bba142df7 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Mon, 9 Jan 2017 13:46:11 +0100 Subject: [PATCH 160/410] Fix: Missing return in options view --- lib/script-options-view.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/script-options-view.js b/lib/script-options-view.js index d130134e..4ec5e064 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -194,10 +194,10 @@ export default class ScriptOptionsView extends View { run() { this.saveOptions(); this.hide(); - atom.commands.dispatch(this.workspaceView(), 'script:run'); + atom.commands.dispatch(this.getWorkspaceView(), 'script:run'); } - workspaceView() { - atom.views.getView(atom.workspace); + getWorkspaceView() { + return atom.views.getView(atom.workspace); } } From cbabb9370fd7616af8e18bd6083c2ff6c221eb41 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Tue, 10 Jan 2017 14:16:17 +0100 Subject: [PATCH 161/410] Changelog for 3.14.0 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1435dbd7..b8e98ca5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 3.14.0 + +* Support for `PureScript` +* Support for `Robot Framework` +* Fix exception in options view + ## 3.13.0 * Support for `HTML` From ab798d1b2e07be8169b7370a340659b1b4e9010a Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Tue, 10 Jan 2017 14:16:56 +0100 Subject: [PATCH 162/410] Prepare 3.14.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a7939729..5c598c95 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.13.0", + "version": "3.14.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From d5876b0617deed9f2f4ec7a5429fa4dd695d32f3 Mon Sep 17 00:00:00 2001 From: trifirew Date: Tue, 17 Jan 2017 14:18:58 -0500 Subject: [PATCH 163/410] add support for Turing --- lib/grammars.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index b0092f3c..9ddbee95 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -856,6 +856,11 @@ module.exports = command: "tclsh" args: (context) -> [context.filepath] + Turing: + "File Based": + command: "turing" + args: (context) -> ['-run', context.filepath] + TypeScript: "Selection Based": command: "ts-node" From f8ba754dae3c57c1de4e5bce8c81362cc2e538df Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Tue, 24 Jan 2017 18:18:45 +0100 Subject: [PATCH 164/410] Downgrade atom-message-panel@1.2.7 Fixes #1222 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5c598c95..a7c076df 100644 --- a/package.json +++ b/package.json @@ -332,7 +332,7 @@ }, "dependencies": { "ansi-to-html": "^0.4.2", - "atom-message-panel": "^1.2.7", + "atom-message-panel": "1.2.7", "atom-space-pen-views": "^2.0.3", "uuid": "^3.0.1", "strip-ansi": "^3.0.0", From 5d8f0389c9fa61e12b763fa96cfcd0c713ffec09 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 26 Jan 2017 01:59:01 +0100 Subject: [PATCH 165/410] Changelog for 3.14.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8e98ca5..3f21b24d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.14.1 + +* Fix exception occuring during closing of output panel + ## 3.14.0 * Support for `PureScript` From 0df6cc081fcb9e8a816b73573907ecb2f3b668c1 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Thu, 26 Jan 2017 01:59:44 +0100 Subject: [PATCH 166/410] Prepare 3.14.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a7c076df..011cb621 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.14.0", + "version": "3.14.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 5e368ac72e971906c1f8aa56d97723cc725df033 Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Mon, 30 Jan 2017 15:34:11 +0000 Subject: [PATCH 167/410] fix build errors - style related --- lib/grammar-utils/java.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index baed8c4e..4119b495 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -40,10 +40,10 @@ export default { const filenameRemoved = projectRemoved.replace(`/${context.filename}`, ''); // File is in root of src directory - no package - if(filenameRemoved == projectRemoved){ - return ""; + if (filenameRemoved === projectRemoved) { + return ''; } - return filenameRemoved + "." + return '${filenameRemoved}.'; }, }; From f227f24a6205aed72cb62cfcfa8a8db93c532e69 Mon Sep 17 00:00:00 2001 From: Andy Richardson Date: Tue, 31 Jan 2017 22:14:16 +0000 Subject: [PATCH 168/410] Update java.js --- lib/grammar-utils/java.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index 4119b495..c7b44b88 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -44,6 +44,6 @@ export default { return ''; } - return '${filenameRemoved}.'; + return `${filenameRemoved}.`; }, }; From 932a95319fa2d88f766cae4e1f39372c1c4272c3 Mon Sep 17 00:00:00 2001 From: Stanislav Versilov Date: Sun, 5 Feb 2017 11:18:52 +0400 Subject: [PATCH 169/410] Common Lisp (.lisp) file based support. --- lib/grammars.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index b0092f3c..a4b2e25d 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -168,6 +168,11 @@ module.exports = 'File Based': command: 'coffee' args: (context) -> [context.filepath] + + "Common Lisp": + "File Based": + command: "clisp" + args: (context) -> [context.filepath] Crystal: "Selection Based": From 7eaf26c8e351d48b2ea77fc9c368102c3d1950c2 Mon Sep 17 00:00:00 2001 From: idleberg Date: Thu, 16 Mar 2017 10:10:22 +0100 Subject: [PATCH 170/410] use Bootstrap classes --- lib/script-options-view.js | 48 ++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 4ec5e064..6e491e15 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -9,35 +9,37 @@ export default class ScriptOptionsView extends View { static content() { this.div({ class: 'options-view' }, () => { - this.div({ class: 'panel-heading' }, 'Configure Run Options'); - this.table(() => { - this.tr(() => { - this.td({ class: 'first' }, () => this.label('Current Working Directory:')); - this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' })); - }); - this.tr(() => { - this.td(() => this.label('Command')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' })); - }); - this.tr(() => { - this.td(() => this.label('Command Arguments:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' })); - }); - this.tr(() => { - this.td(() => this.label('Program Arguments:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' })); - }); - this.tr(() => { - this.td(() => this.label('Environment Variables:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' })); + this.h4({ class: 'modal-header' }, 'Configure Run Options'); + this.div({ class: 'modal-body'}, () => { + this.table(() => { + this.tr(() => { + this.td({ class: 'first' }, () => this.label('Current Working Directory:')); + this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' })); + }); + this.tr(() => { + this.td(() => this.label('Command')); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' })); + }); + this.tr(() => { + this.td(() => this.label('Command Arguments:')); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' })); + }); + this.tr(() => { + this.td(() => this.label('Program Arguments:')); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' })); + }); + this.tr(() => { + this.td(() => this.label('Environment Variables:')); + this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' })); + }); }); }); - this.div({ class: 'block buttons' }, () => { + this.div({ class: 'modal-footer' }, () => { const css = 'btn inline-block-tight'; this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => this.span({ class: 'icon icon-x' }, 'Cancel'), ); - this.span({ class: 'right-buttons' }, () => { + this.span({ class: 'pull-right' }, () => { this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => this.span({ class: 'icon icon-file-text' }, 'Save as profile'), ); From 989872555beb501bd9add7b836b7cb1e9b5a2bd7 Mon Sep 17 00:00:00 2001 From: thepeanutman98 Date: Thu, 20 Apr 2017 17:58:58 -0400 Subject: [PATCH 171/410] Fixed forgotten space --- lib/script-options-view.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 6e491e15..a85871b9 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -10,7 +10,7 @@ export default class ScriptOptionsView extends View { static content() { this.div({ class: 'options-view' }, () => { this.h4({ class: 'modal-header' }, 'Configure Run Options'); - this.div({ class: 'modal-body'}, () => { + this.div({ class: 'modal-body' }, () => { this.table(() => { this.tr(() => { this.td({ class: 'first' }, () => this.label('Current Working Directory:')); From 6fcbadcf8703da10a903752178b1673fb3944d13 Mon Sep 17 00:00:00 2001 From: Jan Trienes Date: Sat, 22 Apr 2017 12:29:48 +0200 Subject: [PATCH 172/410] Add support for Bash Automated Test System (Bats) --- README.md | 1 + examples/math.bats | 11 +++++++++++ lib/grammars.coffee | 13 ++++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 examples/math.bats diff --git a/README.md b/README.md index b0d547b5..7943b178 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Currently supported grammars are: | AppleScript | Yes | Yes | | | Babel ES6 JS | Yes | Yes | | | Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | +| Bash Automated Test System (Bats) | Yes | Yes | | | Batch | Yes | | | | Behat Feature | Yes | | | | BuckleScript | Yes | Yes | | diff --git a/examples/math.bats b/examples/math.bats new file mode 100644 index 00000000..5683371b --- /dev/null +++ b/examples/math.bats @@ -0,0 +1,11 @@ +#!/usr/bin/env bats + +@test "addition using bc" { + result="$(echo 2+2 | bc)" + [ "$result" -eq 4 ] +} + +@test "addition using dc" { + result="$(echo 2 2+p | dc)" + [ "$result" -eq 4 ] +} diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 77fb1a9d..9938dff5 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -44,6 +44,17 @@ module.exports = command: "babel-node" args: (context) -> [context.filepath] + 'Bash Automated Test System (Bats)': + "File Based": + command: "bats" + args: (context) -> [context.filepath] + "Selection Based": + command: 'bats' + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code) + [tmpFile] + Batch: "File Based": command: "cmd.exe" @@ -168,7 +179,7 @@ module.exports = 'File Based': command: 'coffee' args: (context) -> [context.filepath] - + "Common Lisp": "File Based": command: "clisp" From 45abef730a0b4bc3d9ab11922b6b6c4701c309dd Mon Sep 17 00:00:00 2001 From: David Ernst Date: Tue, 25 Apr 2017 03:34:18 -0700 Subject: [PATCH 173/410] Handle 'JavaScript with JSX' grammar with node --- lib/grammars.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 3ab01a68..693797f9 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -378,6 +378,14 @@ module.exports = command: "node" args: (context) -> [context.filepath] + 'JavaScript with JSX': + "Selection Based": + command: "node" + args: (context) -> ['-e', context.getCode()] + "File Based": + command: "node" + args: (context) -> [context.filepath] + "JavaScript for Automation (JXA)": "Selection Based": command: "osascript" From 457bbe443db17836b82fabd06f1eb2435465e04c Mon Sep 17 00:00:00 2001 From: idleberg Date: Fri, 24 Mar 2017 15:00:56 +0100 Subject: [PATCH 174/410] add support for Fable --- README.md | 1 + lib/grammars.coffee | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 03ead686..57d2302c 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Currently supported grammars are: | Erlang | | Yes | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | | F# | Yes | | | | F* | Yes | | | +| Fable | Yes | Yes | | | Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | | Forth (via GForth) | Yes | | | | Fortran (via gfortran) | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 3ab01a68..d6a65e07 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -259,6 +259,17 @@ module.exports = command: "fstar" args: (context) -> [context.filepath] + Fable: + "Selection Based": + command: "fable" + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + [tmpFile] + "File Based": + command: "fable" + args: (context) -> [context.filepath] + Forth: "File Based": command: "gforth" From b379aedd5ecd18868936f1321b08e7524370dc7e Mon Sep 17 00:00:00 2001 From: idleberg Date: Tue, 4 Apr 2017 09:32:37 +0200 Subject: [PATCH 175/410] add Idris support --- README.md | 1 + lib/grammars.coffee | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 57d2302c..16b80605 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ Currently supported grammars are: | Hy | Yes | Yes | Requires the path of 'hy.exe' in your system environment variables. This is probably already fulfilled if you used `pip install hy` to get Hy. A Hy grammar, such as [this one](https://atom.io/packages/language-hy) is also a good idea. | | IcedCoffeeScript | Yes | Yes | | | Inno Setup | Yes | | Requires the path of `ISCC.exe` in your system environment variables | +| [Idris](http://idris-lang.org/) | Yes | | | | [ioLanguage](http://iolanguage.org/) | Yes | Yes | | | Java | Yes | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables. Project directory should be the source directory; subfolders imply packaging. | | Javascript | Yes | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index d6a65e07..9739ea53 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -352,6 +352,11 @@ module.exports = command: "iced" args: (context) -> [context.filepath] + Idris: + "File Based": + command: "idris" + args: (context) -> [context.filepath, '-o', path.basename(context.filepath, path.extname(context.filepath))] + InnoSetup: "File Based": command: "ISCC.exe" From 81e1b3d9f063a490841f359c087575651874cb8e Mon Sep 17 00:00:00 2001 From: Jeevesh Rawat Date: Mon, 1 May 2017 14:59:42 +0530 Subject: [PATCH 176/410] added C++ grammer to language C++14 too --- lib/grammars.coffee | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 9739ea53..e563c85f 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -156,6 +156,26 @@ module.exports = command: "bash" args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] + 'C++14': + if GrammarUtils.OperatingSystem.isDarwin() + "File Based": + command: "bash" + args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + else if GrammarUtils.OperatingSystem.isLinux() + "Selection Based": + command: "bash" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") + ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] + "File Based": + command: "bash" + args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] + else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().split(".").slice -1 >= '14399' + "File Based": + command: "bash" + args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] + Clojure: "Selection Based": command: "lein" From 614af40616c12a0dc899635be43ec5c344fcc67a Mon Sep 17 00:00:00 2001 From: Jeevesh Rawat Date: Mon, 1 May 2017 15:54:58 +0530 Subject: [PATCH 177/410] added selection based code execution for C++ & C++14 in macOS --- lib/grammars.coffee | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index e563c85f..0445ff7e 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -138,6 +138,12 @@ module.exports = 'C++': if GrammarUtils.OperatingSystem.isDarwin() + "Selection Based": + command: "bash" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") + ["-c", "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] "File Based": command: "bash" args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] @@ -158,6 +164,12 @@ module.exports = 'C++14': if GrammarUtils.OperatingSystem.isDarwin() + "Selection Based": + command: "bash" + args: (context) -> + code = context.getCode(true) + tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") + ["-c", "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] "File Based": command: "bash" args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] From 96639fdc593f1c628b25f60af72a68381c5bceb7 Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 11 May 2017 12:18:57 +0200 Subject: [PATCH 178/410] Specify CWD abbreviation before first use Specify current working directory abbreviation before first use in package settings display. Although I'm suggesting the common style of handling this, alternative forms could also work to clarify the abbreviation. --- lib/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/script.js b/lib/script.js index df2dd4ca..710dfa7e 100644 --- a/lib/script.js +++ b/lib/script.js @@ -40,7 +40,7 @@ export default { default: false, }, cwdBehavior: { - title: 'Default CWD Behavior', + title: 'Default Current Working Directory (CWD) Behavior', description: 'If no Run Options are set, this setting decides how to determine the CWD', type: 'string', default: 'First project directory', From b9cfc24f8650738405d6503bcc7325b151b337a6 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 22 May 2017 11:42:58 -0700 Subject: [PATCH 179/410] Prepare 3.15.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 011cb621..a5a010d2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.14.1", + "version": "3.15.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 1b925ac62404b2bfab34d586a1f69190268e4af7 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 22 May 2017 11:47:33 -0700 Subject: [PATCH 180/410] update CHANGELOG --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f21b24d..83c22bbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## 3.15.0 + +* Improved documentation +* JSX now handled by node +* C++ Grammar supports C++14 now too +* Selection based support for C++ on macOS +* added selection based code execution for C++ & C++14 in macOS +* :new: support for Idris, Fable, Bats, Lisp, Turing +* improved Java support + ## 3.14.1 * Fix exception occuring during closing of output panel From c075cce99f8cb35a356e02e3bb969099ae38e720 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 10 Oct 2017 00:27:10 +0100 Subject: [PATCH 181/410] Remove Rant The rant Atom package was deprecated. --- README.md | 1 - lib/grammars.coffee | 11 ----------- 2 files changed, 12 deletions(-) diff --git a/README.md b/README.md index d4c858f9..f51a4fa3 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,6 @@ Currently supported grammars are: | Python | Yes | Yes | | | R | Yes | Yes | | | Racket | Yes | Yes | | -| [RANT](https://github.com/TheBerkin/Rant) | Yes | Yes | | | Reason | Yes | Yes | | | Ren'Py | Yes | No | Requires `renpy` to be in path. Runs project at root of current file.| | Robot Framework | Yes | No | Requires `robot` to be in path. Output location depends on CWD behaviour which can be altered in settings. | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 5a53a4e6..1bd7ebaa 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -772,17 +772,6 @@ module.exports = command: 'racket' args: ({filepath}) -> [filepath] - RANT: - 'Selection Based': - command: 'RantConsole.exe' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return ['-file', tmpFile] - 'File Based': - command: 'RantConsole.exe' - args: ({filepath}) -> ['-file', filepath] - Reason: 'File Based': command: if windows then 'cmd' else 'bash' From 55bbef4651979361cbfc7db6c0a2ef4bf3917578 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 10 Oct 2017 00:32:33 +0100 Subject: [PATCH 182/410] Remove Fable The 'Fable' grammar seems to be missing from any F#/Ionide Atom package. --- README.md | 1 - lib/grammars.coffee | 11 ----------- 2 files changed, 12 deletions(-) diff --git a/README.md b/README.md index f51a4fa3..ab80827c 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,6 @@ Currently supported grammars are: | Erlang | | Yes | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | | F# | Yes | | | | F* | Yes | | | -| Fable | Yes | Yes | | | Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | | Forth (via GForth) | Yes | | | | Fortran (via gfortran) | Yes | | diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 1bd7ebaa..f0668967 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -282,17 +282,6 @@ module.exports = command: if windows then 'fsi' else 'fsharpi' args: ({filepath}) -> ['--exec', filepath] - Fable: - 'Selection Based': - command: 'fable' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'fable' - args: ({filepath}) -> [filepath] - Forth: 'File Based': command: 'gforth' From 59ad311861c28a47ad0025947f1f47e10be8c1c6 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 6 Jun 2017 00:00:00 +0100 Subject: [PATCH 183/410] Improve README Add relevant links and package/binary dependencies. --- README.md | 378 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 276 insertions(+), 102 deletions(-) diff --git a/README.md b/README.md index ab80827c..2d28899f 100644 --- a/README.md +++ b/README.md @@ -10,107 +10,281 @@ Run scripts based on file name, a selection of code, or by line number. Currently supported grammars are: -| Grammar | File Based | Selection Based | Notes | -| :----------------------------------- | :--------- | :-------------- | :---- | -| 1C (BSL) | Yes | | Runs through [OneScript](http://oscript.io/) interpreter in console mode | -| Ansible | Yes | | | -| AutoHotKey | Yes | Yes | Requires the path of 'AutoHotKey.exe' in your system environment variables. -| AppleScript | Yes | Yes | | -| Babel ES6 JS | Yes | Yes | | -| Bash | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | -| Bash Automated Test System (Bats) | Yes | Yes | | -| Batch | Yes | | | -| Behat Feature | Yes | | | -| BuckleScript | Yes | Yes | | -| C | Yes | Yes | Only available on OSX (`xcrun clang`) and Linux (`cc`) | -| C# | Yes | Yes | Requires the path of 'csc.exe' in your system environment variables | -| C# Script | Yes | Yes | | -| C++ | Yes | Yes | Requires `-std=c++14`. Only available on OSX (`xcrun clang++`) and Linux (`g++`) | -| Clojure | Yes | Yes | Clojure scripts are executed via [Leiningen](http://leiningen.org/)'s [exec](https://github.com/kumarshantanu/lein-exec) plugin. Both `Leiningen` and `exec` must be installed | -| CoffeeScript | Yes | Yes | | -| CoffeeScript (Literate) | Yes | Yes | Running selections of code for CoffeeScript (Literate) only works when selecting just the code blocks | -| Crystal | Yes | Yes | | -| Cucumber (Gherkin) | Yes | | | -| D | Yes | Yes | | -| Dart | Yes | Yes | | -| DOT (Graphviz) | Yes | Yes | | -| Elixir | Yes | Yes | | -| Erlang | | Yes | Uses `erl` for limited selection based runs (see [#70](https://github.com/rgbkrk/atom-script/pull/70)) | -| F# | Yes | | | -| F* | Yes | | | -| Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | -| Forth (via GForth) | Yes | | | -| Fortran (via gfortran) | Yes | | -| Gnuplot | Yes | | | -| Go | Yes | | | -| Groovy | Yes | Yes | | -| Haskell | Yes | Yes | | -| HTML | Yes | | Opens File in Browser | -| Hy | Yes | Yes | Requires the path of 'hy.exe' in your system environment variables. This is probably already fulfilled if you used `pip install hy` to get Hy. A Hy grammar, such as [this one](https://atom.io/packages/language-hy) is also a good idea. | -| IcedCoffeeScript | Yes | Yes | | -| Inno Setup | Yes | | Requires the path of `ISCC.exe` in your system environment variables | -| [Idris](http://idris-lang.org/) | Yes | | | -| [ioLanguage](http://iolanguage.org/) | Yes | Yes | | -| Java | Yes | | Windows users should manually add jdk path (...\jdk1.x.x_xx\bin) to their system environment variables. Project directory should be the source directory; subfolders imply packaging. | -| Javascript | Yes | Yes | | -| [JavaScript for Automation](https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html) (JXA) | Yes | Yes | | -| Jolie | Yes | | | -| Julia | Yes | Yes | | -| Kotlin | Yes | Yes | | -| LAMMPS | Yes | | Only available on Linux and macOS. Requires 'lammps' to be in path. | -| LaTeX (via latexmk) | Yes | | | -| LilyPond | Yes | | | -| Lisp (via SBCL) | Yes | Yes | Selection based runs are limited to single line | -| Literate Haskell | Yes | | | -| LiveScript | Yes | Yes | | -| Lua | Yes | Yes | | -| Lua (WoW) | Yes | Yes | | -| Makefile | Yes | Yes | | -| [MATLAB](http://mathworks.com/products/matlab) | Yes | Yes | | -| MIPS | Yes | | Requires the path of `spim` in your system environment variables | -| MongoDB | Yes | Yes | | -| MoonScript | Yes | Yes | | -| [NCL](http://ncl.ucar.edu) | Yes | Yes | Scripts must end with `exit` command for file based runs | -| newLISP | Yes | Yes | | -| Nim (and NimScript) | Yes | | | -| NSIS | Yes | Yes | | -| Objective-C | Yes | | Only available on OSX (`xcrun clang`) | -| Objective-C | Yes | | Only available on OSX (`xcrun clang++`) | -| OCaml | Yes | | | -| Octave | Yes | Yes | | -| [Oz](https://mozart.github.io/) | Yes | Yes | | -| Pandoc Markdown | Yes | | Requires the panzer pandoc wrapper https://github.com/msprev/panzer and the pandoc-flavored-markdown language package in Atom https://atom.io/packages/language-pfm | -| Pascal | Yes | Yes | Requires [Free Pascal](https://www.freepascal.org/) | -| Perl | Yes | Yes | | -| Perl 6 | Yes | Yes | | -| PHP | Yes | Yes | | -| PostgreSQL | Yes | Yes | Requires the atom-language-pgsql package in Atom https://atom.io/packages/language-pgsql. Connects as user `$PGUSER` to database `$PGDATABASE`. Both default to the operating system's user name and both can be set in the process environment or in Atom's `init.coffee` script: `process.env.PGUSER = ⟨username⟩` and `process.env.PGDATABASE = ⟨database name⟩` | -| PowerShell | Yes | Yes | | -| Processing | Yes | | Runs through processing-java. | -| Prolog | Yes | | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and is halted after the first result is found. The output is produced by the `writeln/1` predicates. It requires swipl | -| PureScript | Yes | | Requires `pulp` to be in path. | -| Python | Yes | Yes | | -| R | Yes | Yes | | -| Racket | Yes | Yes | | -| Reason | Yes | Yes | | -| Ren'Py | Yes | No | Requires `renpy` to be in path. Runs project at root of current file.| -| Robot Framework | Yes | No | Requires `robot` to be in path. Output location depends on CWD behaviour which can be altered in settings. | -| RSpec | Yes | Yes | | -| Ruby | Yes | Yes | | -| Ruby on Rails | Yes | Yes | | -| Rust | Yes | | | -| Sage | Yes | Yes | | -| Sass/SCSS | Yes | | | -| Scala | Yes | Yes | | -| Scheme | Yes | Yes | | -| Shell Script | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | -| Standard ML | Yes | | | -| Stata | Yes | Yes | Runs through Stata. Note stata needs to be added to your system PATH for this to work. `Mac directions `_ . | -| Swift | Yes | | | -| Tcl | Yes | Yes | | -| TypeScript | Yes | Yes | Requires `ts-node` https://github.com/TypeStrong/ts-node | -| VBScript | Yes | Yes | | -| Zsh | Yes | Yes | The shell used is based on your default `$SHELL` environment variable | +| Grammar | File Based | Selection Based | Required Package | Required in [`PATH`] | Notes | +|:------------------------------------|:-----------|:----------------|:------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 1C (BSL) | Yes | | [language-1c-bsl] | [`oscript`] | | +| [Ansible] | Yes | | [language-ansible] | `ansible-playbook` | | +| [AutoHotKey] | Yes | Yes | [language-autohotkey] | `AutoHotKey.exe` | | +| [AppleScript] | Yes | Yes | [language-applescript] | `osascript` | | +| [Babel] [ES6] JS | Yes | Yes | [language-babel] | `node` | | +| Bash | Yes | Yes | | | Runs if your `SHELL` or `#!` line is `bash`. | +| [Bats] (Bash Automated Test System) | Yes | Yes | [language-bats] | `bats` | | +| Windows [Batch] (`cmd.exe`) | Yes | | [language-batch]/[file] | | | +| [Behat] | Yes | | [behat-atom] | `behat` | | +| [BuckleScript] | Yes | Yes | [bs-platform] | `bsc` | | +| C | Yes | Yes | | `xcrun clang`/`cc` | Available only on macOS and Linux. | +| C# | Yes | Yes | | `csc.exe` | | +| [C# Script] | Yes | Yes | | [`scriptcs`] | | +| C++ | Yes | Yes | | `xcrun clang++`/`g++` | Available only on macOS and Linux. Run with `-std=c++14`. | +| [Clojure] | Yes | Yes | | `lein exec` | Requires [Leiningen] with the [lein-exec] plugin. | +| [CoffeeScript] ([Literate]) | Yes | Yes | | `coffee` | Runs only selected code blocks in [literate] files. | +| [Crystal] | Yes | Yes | [language-crystal-actual] | `crystal` | | +| [Cucumber] ([Gherkin]) | Yes | | [language-gherkin] | `cucumber` | | +| [D] | Yes | Yes | [language-d] | `rdmd` | | +| [Dart] | Yes | Yes | [dartlang] | `dart` | | +| [DOT] ([Graphviz]) | Yes | Yes | [language-dot] | `dot` | | +| [Elixir] | Yes | Yes | [language-elixir] | `elixir` | | +| [Erlang] | | Yes | [language-erlang] | `erl` | Limited selection based runs only (see [#70]). | +| [F*] | Yes | | [atom-fstar] | `fstar` | | +| [F#] | Yes | | [language-fsharp] | `fsharpi`/`fsi.exe` | | +| [Fish] | Yes | Yes | [language-fish-shell] | `fish` | | +| [Forth] | Yes | | [language-forth] | `gforth` | | +| [Fortran] | Yes | | [language-fortran] | [`gfortran`] | | +| [Gnuplot] | Yes | | [language-gnuplot-atom] | `gnuplot` | | +| [Go] | Yes | | | `go` | | +| [Groovy] | Yes | Yes | [language-groovy] | `groovy` | | +| [Haskell] ([Literate][lit-hskl]) | Yes | Yes | [language-haskell] | `runhaskell`/[`ghc`] | | +| HTML | Yes | | | | Opens the current HTML file in your default browser. | +| [Hy] | Yes | Yes | [language-hy] | `hy.exe` | | +| [IcedCoffeeScript] | Yes | Yes | [language-iced-coffee-script] | `iced` | | +| [Inno Setup] | Yes | | [language-innosetup] | `ISCC.exe` | | +| [Idris] | Yes | | [language-idris] | `idris` | | +| [io] | Yes | Yes | [atom-language-io] | `io` | | +| Java | Yes | | | `*\jdk1.x.x_xx\bin` | Project directory should be the source directory; subfolders imply packaging. | +| Javascript | Yes | Yes | | `node` | | +| JavaScript for Automation ([JXA]) | Yes | Yes | [language-javascript-jxa] | `osascript -l JavaScript` | Available only on macOS. | +| [Jolie] | Yes | | [language-jolie] | `jolie` | | +| [Julia] | Yes | Yes | [language-julia] | `julia` | | +| [Kotlin] | Yes | Yes | [language-kotlin] | `kotlinc` | | +| [LAMMPS] | Yes | | [language-lammps] | `lammps` | Available only on macOS and Linux. | +| [LaTeX] | Yes | | [language-latex] | [`latexmk`] | | +| [LilyPond] | Yes | | [atlilypond] | `lilypond` | | +| [Lisp] | Yes | Yes | [language-lisp] | [`sbcl`] | Selection based runs are limited to a single line. | +| [LiveScript] | Yes | Yes | [language-livescript] | `lsc` | | +| [Lua] | Yes | Yes | [language-lua]\[[-wow]\] | `lua` | | +| [Make]file | Yes | Yes | | | | +| [MATLAB] | Yes | Yes | [language-matlab] | `matlab` | | +| [MIPS] | Yes | | [language-mips] | [`spim`] | | +| [MongoDB] | Yes | Yes | [language-mongodb] | `mongo` | | +| [MoonScript] | Yes | Yes | [language-moonscript] | `moon` | | +| [NCL] | Yes | Yes | [language-ncl] | `ncl` | Scripts must end with an `exit` command for file based runs. | +| [newLISP] | Yes | Yes | [language-newlisp] | `newlisp` | | +| [Nim]\[[Script][nimscript]\] | Yes | | [language-nim] | `nim` | | +| [NSIS] | Yes | Yes | [language-nsis] | `makensis` | | +| Objective-C[++] | Yes | | | `xcrun clang`[`++`] | Available on macOS only. | +| [OCaml] | Yes | | [language-ocaml] | `ocaml` | | +| [Octave] | Yes | Yes | [language-matlab] | `octave` | | +| [Oz] | Yes | Yes | [language-oz] | `ozc` | | +| [Pandoc] Markdown | Yes | | [language-pfm] | [`panzer`] | | +| [Pascal] | Yes | Yes | [language-pascal] | `fsc` | | +| Perl | Yes | Yes | | | | +| [Perl 6] | Yes | Yes | | `perl6` | | +| PHP | Yes | Yes | | | | +| [PostgreSQL] | Yes | Yes | [language-pgsql] | [`psql`] | Connects as user `PGUSER` to database `PGDATABASE`. Both default to your operating system's `USERNAME`, but can be set in the process environment or in Atom's [`init` file]: `process.env.PGUSER = {user name}` and `process.env.PGDATABASE = {database name}` | +| [PowerShell] | Yes | Yes | [language-powershell] | `powershell` | | +| [Processing] | Yes | | [processing-language] | `processing-java` | | +| [Prolog] | Yes | | [language-prolog] | `swipl` | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and exits after the first result is found. The output is produced by the `writeln/1` predicates. | +| [PureScript] | Yes | | [language-purescript] | `pulp` | | +| Python | Yes | Yes | | | | +| [R] | Yes | Yes | [language-r] | `Rscript` | | +| [Racket] | Yes | Yes | [language-racket] | `racket` | | +| [Reason] | Yes | Yes | [language-reason] | `rebuild` | | +| [Ren'Py] | Yes | No | [language-renpy] | `renpy` | Runs your project at the root of the current file. | +| [Robot Framework] | Yes | No | [language-robot-framework] | `robot` | The output location depends on the `CWD` behaviour which can be altered in settings. | +| [RSpec] | Yes | Yes | [language-rspec] | `rspec` | | +| Ruby | Yes | Yes | | | | +| Ruby on [Rails] | Yes | Yes | | | | +| [Rust] | Yes | | [language-rust] | `rustc` | | +| [Sage] | Yes | Yes | [language-sage] | `sage` | | +| [Sass]/SCSS | Yes | | | `sass` | | +| [Scala] | Yes | Yes | [language-scala] | `scala` | | +| [Scheme] | Yes | Yes | [langauge-scheme] | [`guile`] | | +| Shell Script | Yes | Yes | | `SHELL` | Runs according to your default `SHELL`, or `#!` line. | +| [Standard ML] | Yes | | [language-sml] | `sml` | | +| [Stata] | Yes | Yes | [language-stata] | `stata` | | +| [Swift] | Yes | | [language-swift] | `swift` | | +| [Tcl] | Yes | Yes | [language-tcltk] | `tclsh` | | +| [TypeScript] | Yes | Yes | | [`ts-node`] | | +| [VBScript] | Yes | Yes | [language-vbscript] | `cscript` | | +| [Zsh] | Yes | Yes | | | Runs if your `SHELL` or `#!` line is `zsh`. | + +[-wow]: https://atom.io/packages/language-lua-wow +[#70]: https://github.com/rgbkrk/atom-script/pull/70 +[`gfortran`]: https://gcc.gnu.org/wiki/GFortran +[`ghc`]: https://haskell.org/ghc +[`guile`]: https://gnu.org/software/guile +[`init` file]: http://flight-manual.atom.io/hacking-atom/sections/the-init-file +[`latexmk`]: https://ctan.org/pkg/latexmk +[`oscript`]: http://oscript.io +[`panzer`]: https://github.com/msprev/panzer#readme +[`PATH`]: https://en.wikipedia.org/wiki/PATH_(variable) +[`psql`]: https://postgresql.org/docs/current/static/app-psql.html +[`pulp`]: https://github.com/purescript-contrib/pulp#readme +[`sbcl`]: http://sbcl.org +[`scriptcs`]: http://scriptcs.net +[`spim`]: http://spimsimulator.sourceforge.net +[`ts-node`]: https://github.com/TypeStrong/ts-node#readme +[Ansible]: https://ansible.com +[AppleScript]: https://developer.apple.com/library/content/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/ScriptingOnOSX.html#//apple_ref/doc/uid/20000032-BABEBGCF +[atlilypond]: https://atom.io/packages/atlilypond +[atom-fstar]: https://github.com/FStarLang/atom-fstar#readme +[atom-language-io]: https://atom.io/packages/atom-language-io +[AutoHotKey]: https://autohotkey.com +[babel]: https://babeljs.io +[batch]: https://ss64.com/nt +[bats]: https://github.com/sstephenson/bats#bats-bash-automated-testing-system#readme +[behat-atom]: https://atom.io/packages/behat-atom +[behat]: http://docs.behat.org/en/v2.5/guides/6.cli.html +[bs-platform]: https://npm.im/package/bs-platform +[bucklescript]: https://bucklescript.github.io/bucklescript +[C# Script]: http://csscript.net +[clojure]: https://clojure.org +[coffeescript]: http://coffeescript.org +[crystal]: https://crystal-lang.org +[cucumber]: https://cucumber.io +[D]: https://dlang.org +[dart]: https://dartlang.org +[dartlang]: https://atom.io/packages/dartlang +[dot]: http://graphviz.org/content/dot-language +[elixir]: https://elixir-lang.org +[erlang]: https://erlang.org +[ES6]: https://babeljs.io/learn-es2015 +[F*]: https://fstar-lang.org +[F#]: http://fsharp.org +[file]: https://atom.io/packages/language-batchfile +[fish]: https://fishshell.com +[forth]: https://gnu.org/software/gforth +[fortran]: http://fortranwiki.org/fortran/show/Fortran +[gherkin]: https://cucumber.io/docs/reference#gherkin +[gnuplot]: http://gnuplot.info +[go]: https://golang.org +[graphviz]: http://graphviz.org +[groovy]: http://groovy-lang.org +[haskell]: https://haskell.org +[hy]: http://hylang.org +[icedcoffeescript]: http://maxtaco.github.io/coffee-script +[idris]: https://idris-lang.org +[inno setup]: http://jrsoftware.org/isinfo.php +[io]: http://iolanguage.org +[jolie]: http://jolie-lang.org +[julia]: https://julialang.org +[jxa]: https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html +[kotlin]: https://kotlinlang.org +[LAMMPS]: http://lammps.sandia.gov +[langauge-scheme]: https://atom.io/packages/language-scheme +[language-1c-bsl]: https://atom.io/packages/language-1c-bsl +[language-ansible]: https://atom.io/packages/language-ansible +[language-applescript]: https://atom.io/packages/language-applescript +[language-autohotkey]: https://atom.io/packages/language-autohotkey +[language-babel]: https://atom.io/packages/language-babel +[language-batch]: https://atom.io/packages/language-batch +[language-bats]: https://atom.io/packages/language-bats +[language-crystal-actual]: https://atom.io/packages/language-crystal-actual +[language-d]: https://atom.io/packages/language-d +[language-dot]: https://atom.io/packages/language-dot +[language-elixir]: https://atom.io/packages/language-elixir +[language-erlang]: https://atom.io/packages/language-erlang +[language-fish-shell]: https://atom.io/packages/language-fish-shell +[language-forth]: https://atom.io/packages/language-forth +[language-fortran]: https://atom.io/packages/language-fortran +[language-fsharp]: https://atom.io/packages/language-fsharp +[language-gherkin]: https://atom.io/packages/language-gherkin +[language-gnuplot-atom]: https://atom.io/packages/language-gnuplot-atom +[language-groovy]: https://atom.io/packages/language-groovy +[language-haskell]: https://atom.io/packages/language-haskell +[language-hy]: https://atom.io/packages/language-hy +[language-iced-coffee-script]: https://atom.io/packages/language-iced-coffee-script +[language-idris]: https://atom.io/packages/language-idris +[language-innosetup]: https://atom.io/packages/language-innosetup +[language-javascript-jxa]: https://atom.io/packages/language-javascript-jxa +[language-jolie]: https://atom.io/packages/language-jolie +[language-julia]: https://atom.io/packages/language-julia +[language-kotlin]: https://atom.io/packages/language-kotlin +[language-lammps]: https://atom.io/packages/language-lammps +[language-latex]: https://atom.io/packages/language-latex +[language-lisp]: https://atom.io/packages/language-lisp +[language-livescript]: https://atom.io/packages/language-livescript +[language-lua]: https://atom.io/packages/language-lua +[language-matlab]: https://atom.io/packages/language-matlab +[language-mips]: https://atom.io/packages/language-mips +[language-mongodb]: https://atom.io/packages/language-mongodb +[language-moonscript]: https://atom.io/packages/language-moonscript +[language-ncl]: https://atom.io/packages/language-ncl +[language-newlisp]: https://atom.io/packages/language-newlisp +[language-nim]: https://atom.io/packages/language-nim +[language-nsis]: https://atom.io/packages/language-nsis +[language-ocaml]: https://atom.io/packages/language-ocaml +[language-oz]: https://atom.io/packages/language-oz +[language-pascal]: https://atom.io/packages/language-pascal +[language-pfm]: https://atom.io/packages/language-pfm +[language-pgsql]: https://atom.io/packages/language-pgsql +[language-powershell]: https://atom.io/packages/language-powershell +[language-prolog]: https://atom.io/packages/language-prolog +[language-purescript]: https://atom.io/packages/language-purescript +[language-r]: https://atom.io/packages/language-r +[language-racket]: https://atom.io/packages/language-racket +[language-reason]: https://atom.io/packages/language-reason +[language-renpy]: https://atom.io/packages/language-renpy +[language-robot-framework]: https://atom.io/packages/language-robot-framework +[language-rspec]: https://atom.io/packages/language-rspec +[language-rust]: https://atom.io/packages/language-rust +[language-sage]: https://atom.io/packages/language-sage +[language-scala]: https://atom.io/packages/language-scala +[language-sml]: https://atom.io/packages/language-sml +[language-stata]: https://atom.io/packages/language-stata +[language-swift]: https://atom.io/packages/language-swift +[language-tcltk]: https://atom.io/packages/language-tcltk +[language-vbscript]: https://atom.io/packages/language-vbscript +[latex]: https://latex-project.org +[lein-exec]: https://github.com/kumarshantanu/lein-exec#readme +[leiningen]: https://leiningen.org +[lilypond]: http://lilypond.org +[lisp]: http://lisp-lang.org +[lit-hskl]: https://wiki.haskell.org/Literate_programming#Haskell_and_literate_programming +[literate]: http://coffeescript.org/#literate +[livescript]: http://livescript.net +[lua]: https://lua.org +[make]: https://gnu.org/software/make/manual/make +[MATLAB]: https://mathworks.com/products/matlab +[mips]: https://imgtec.com/mips +[mongodb]: https://mongodb.com +[moonscript]: https://moonscript.org +[NCL]: https://ncl.ucar.edu +[newlisp]: http://newlisp.org +[nim]: https://nim-lang.org +[nimscript]: https://nim-lang.org/0.11.3/nims.html +[NSIS]: http://nsis.sourceforge.net +[ocaml]: https://ocaml.org +[octave]: https://gnu.org/software/octave +[oz]: https://mozart.github.io +[pandoc]: https://pandoc.org +[perl 6]: https://perl6.org +[pascal]: https://freepascal.org +[PostgreSQL]: https://postgresql.org +[powershell]: https://docs.microsoft.com/powershell +[processing-language]: https://atom.io/packages/processing-language +[processing]: https://processing.org +[prolog]: http://swi-prolog.org +[purescript]: http://purescript.org +[R]: https://r-project.org +[racket]: https://racket-lang.org +[rails]: http://rubyonrails.org +[reason]: https://reasonml.github.io +[Ren'Py]: https://renpy.org +[robot framework]: http://robotframework.org +[rspec]: http://rspec.info +[rust]: https://rust-lang.org +[sage]: https://sagemath.org +[sass]: http://sass-lang.com +[scala]: https://scala-lang.org +[scheme]: http://scheme-reports.org +[Standard ML]: http://sml-family.org +[stata]: https://stata.com +[swift]: https://swift.org +[tcl]: https://tcl.tk +[typescript]: https://typescriptlang.org +[VBScript]: https://msdn.microsoft.com/library/t0aew7h6.aspx +[zsh]: http://zsh.org **NOTE**: Some grammars may require you to install [a custom language package](https://atom.io/search?utf8=✓&q=language). @@ -164,7 +338,7 @@ clipboard, allowing you to paste it into the editor. ### Command and shortcut reference -| Command | Mac OS X | Linux/Windows | Notes | +| Command | macOS | Linux/Windows | Notes | |:---------------------------|:------------------------------------|:----------------------------|:------------------------------------------------------------------------------| | Script: Run | cmd-i | shift-ctrl-b | If text is selected a "Selection Based" is used instead of a "File Based" run | | Script: Run by Line Number | shift-cmd-j | shift-ctrl-j | If text is selected the line number will be the last | From 2649fc16c2c65b6803e12538873172f5d9b98b96 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Sun, 6 Aug 2017 22:39:43 +0200 Subject: [PATCH 184/410] Add support for Free Pascal --- lib/grammars.coffee | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 4aeeb910..812b56dc 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -326,6 +326,17 @@ module.exports = "File Based": command: "bash" args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffixed-form -o /tmp/f.out && /tmp/f.out"] + + "Free Pascal": + "Selection Based": + command: "fsc" + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + [tmpFile] + "File Based": + command: "fsc" + args: (context) -> [context.filepath] Gherkin: "File Based": From d2aac22cc8cea6d9d6e45740d7f2267d930e6c54 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Mon, 7 Aug 2017 08:53:19 +0200 Subject: [PATCH 185/410] Add support for Free Pascal --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 16b80605..d81f884e 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ Currently supported grammars are: | Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | | Forth (via GForth) | Yes | | | | Fortran (via gfortran) | Yes | | +| Free Pascal | Yes | Yes | | | Gnuplot | Yes | | | | Go | Yes | | | | Groovy | Yes | Yes | | From 9ddb9d5fff34e1aa1d64ac089c288b813d814c40 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Mon, 7 Aug 2017 08:55:24 +0200 Subject: [PATCH 186/410] Modify Pascal table item MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Free Pascal is used as compiler, so I listed the language itself as ”Pascal” and mentioned the requirement for the Free Pascal compiler --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d81f884e..d4c858f9 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,6 @@ Currently supported grammars are: | Fish | Yes | Yes | Finally, a way to run code within Atom for the 90s | | Forth (via GForth) | Yes | | | | Fortran (via gfortran) | Yes | | -| Free Pascal | Yes | Yes | | | Gnuplot | Yes | | | | Go | Yes | | | | Groovy | Yes | Yes | | @@ -82,6 +81,7 @@ Currently supported grammars are: | Octave | Yes | Yes | | | [Oz](https://mozart.github.io/) | Yes | Yes | | | Pandoc Markdown | Yes | | Requires the panzer pandoc wrapper https://github.com/msprev/panzer and the pandoc-flavored-markdown language package in Atom https://atom.io/packages/language-pfm | +| Pascal | Yes | Yes | Requires [Free Pascal](https://www.freepascal.org/) | | Perl | Yes | Yes | | | Perl 6 | Yes | Yes | | | PHP | Yes | Yes | | From 8b3faaef397823580e1a2b6b2645abb1edfbd129 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 20 Sep 2017 01:57:14 +0100 Subject: [PATCH 187/410] Remove OS X workers from CI build matrix This is causing the CI to hang indefinitely. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8df26fab..ae395842 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ sudo: false os: - linux - - osx + #- osx env: global: From a7cdc385ba2296c6af198f59fec7289bfa86c469 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 20 Sep 2017 02:08:25 +0100 Subject: [PATCH 188/410] Improve support for CoffeeScript (#1426) Easily run the latest version [^2] of CoffeeScript. Uses the new `--transpile` feature and _babel-preset-env_ to automatically target the current version Node being run by Atom. --- examples/v2.coffee | 12 ++++++++++++ examples/v2.litcoffee | 21 +++++++++++++++++++++ lib/grammar-utils.js | 5 ----- lib/grammar-utils/coffee-script-compiler.js | 15 --------------- lib/grammars.coffee | 8 ++++---- package.json | 20 ++++++++++++++++++-- 6 files changed, 55 insertions(+), 26 deletions(-) create mode 100644 examples/v2.coffee create mode 100644 examples/v2.litcoffee delete mode 100644 lib/grammar-utils/coffee-script-compiler.js diff --git a/examples/v2.coffee b/examples/v2.coffee new file mode 100644 index 00000000..57d475be --- /dev/null +++ b/examples/v2.coffee @@ -0,0 +1,12 @@ +import {exec} from 'child_process' + +timeout = (s) => + new Promise (resolve) => + setTimeout resolve, s * 1000 # ms + +sleep = (s, message) => + console.log "Awaiting Promise…" # This selected line should run. + await timeout s + console.log message + +sleep 1, "Done." diff --git a/examples/v2.litcoffee b/examples/v2.litcoffee new file mode 100644 index 00000000..d727a8fa --- /dev/null +++ b/examples/v2.litcoffee @@ -0,0 +1,21 @@ +[_Literate_] CoffeeScript +========================= +This is a [_literate_] CoffeeScript file, written in Markdown. + +~~~ coffee + + import {exec} from 'child_process' + + timeout = (s) => + new Promise (resolve) => + setTimeout resolve, s * 1000 # ms + + sleep = (s, message) => + console.log "Awaiting Promise…" # This selected line should run. + await timeout s + console.log message + + sleep 1, "Done." +~~~ + +[_literate_]: http://coffeescript.org/#literate diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index e61521be..36399ddc 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -91,11 +91,6 @@ export default { // Returns an {Object} which assists in selecting the right project file for Nim code Nim: require('./grammar-utils/nim'), - // Public: Predetermine CoffeeScript compiler - // - // Returns an [array] of appropriate command line flags for the active CS compiler. - CScompiler: require('./grammar-utils/coffee-script-compiler'), - // Public: Get the D helper object // // Returns an {Object} which assists in creating temp files containing D code diff --git a/lib/grammar-utils/coffee-script-compiler.js b/lib/grammar-utils/coffee-script-compiler.js deleted file mode 100644 index ae4ec7cc..00000000 --- a/lib/grammar-utils/coffee-script-compiler.js +++ /dev/null @@ -1,15 +0,0 @@ -'use babel'; - -// Public: GrammarUtils.CScompiler - a module which predetermines the active -// CoffeeScript compiler and sets an [array] of appropriate command line flags -import { execSync } from 'child_process'; - -const args = ['-e']; -try { - const coffee = execSync('coffee -h'); // which coffee | xargs readlink' - if (coffee.toString().match(/--cli/)) { // -redux - args.push('--cli'); - } -} catch (error) { /* Don't throw */ } - -export default { args }; diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 812b56dc..a0136b47 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -199,18 +199,18 @@ module.exports = CoffeeScript: "Selection Based": command: "coffee" - args: (context) -> GrammarUtils.CScompiler.args.concat [context.getCode()] + args: (context) -> ['--transpile', '-e', context.getCode()] "File Based": command: "coffee" - args: (context) -> [context.filepath] + args: (context) -> ['-t', context.filepath] "CoffeeScript (Literate)": 'Selection Based': command: 'coffee' - args: (context) -> GrammarUtils.CScompiler.args.concat [context.getCode()] + args: (context) -> ['-t', '-e', context.getCode()] 'File Based': command: 'coffee' - args: (context) -> [context.filepath] + args: (context) -> ['-t', context.filepath] "Common Lisp": "File Based": diff --git a/package.json b/package.json index a5a010d2..a2e86d03 100644 --- a/package.json +++ b/package.json @@ -334,9 +334,13 @@ "ansi-to-html": "^0.4.2", "atom-message-panel": "1.2.7", "atom-space-pen-views": "^2.0.3", - "uuid": "^3.0.1", + "babel-preset-env": "^1.6.0", "strip-ansi": "^3.0.0", - "underscore": "^1.8.3" + "underscore": "^1.8.3", + "uuid": "^3.0.1" + }, + "optionalDependencies": { + "coffeescript": "^2" }, "devDependencies": { "babel-eslint": "^7.1.1", @@ -361,5 +365,17 @@ "scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix" + }, + "babel": { + "presets": [ + [ + "env", + { + "targets": { + "node": "current" + } + } + ] + ] } } From d1b0ff20875a94396314247ed13e3fcca7eeafa7 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 20 Sep 2017 04:10:08 +0100 Subject: [PATCH 189/410] Improve support for modern JavaScript (#1427) Also utilises _babel-preset-env_ to automatically target the current version of Node being run by Atom. --- examples/modern.js | 11 +++++++++++ lib/grammars.coffee | 8 ++++---- package.json | 1 + 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 examples/modern.js diff --git a/examples/modern.js b/examples/modern.js new file mode 100644 index 00000000..a94ed12a --- /dev/null +++ b/examples/modern.js @@ -0,0 +1,11 @@ +import {exec} from 'child_process' + +const timeout = s => new Promise(resolve => setTimeout(resolve, s * 1000)) // ms + +const sleep = async(s, message) => { + console.log("Awaiting Promise…") // This selected line should run. + await timeout(s) + return console.log(message) +} + +sleep(1, "Done.") diff --git a/lib/grammars.coffee b/lib/grammars.coffee index a0136b47..58c2f118 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -431,18 +431,18 @@ module.exports = JavaScript: "Selection Based": - command: "node" + command: "babel-node" args: (context) -> ['-e', context.getCode()] "File Based": - command: "node" + command: "babel-node" args: (context) -> [context.filepath] 'JavaScript with JSX': "Selection Based": - command: "node" + command: "babel-node" args: (context) -> ['-e', context.getCode()] "File Based": - command: "node" + command: "babel-node" args: (context) -> [context.filepath] "JavaScript for Automation (JXA)": diff --git a/package.json b/package.json index a2e86d03..fe271957 100644 --- a/package.json +++ b/package.json @@ -340,6 +340,7 @@ "uuid": "^3.0.1" }, "optionalDependencies": { + "babel-cli": "^6.26.0", "coffeescript": "^2" }, "devDependencies": { From e29dd4b3bb8412a4b6dc0fde4abbce6b0293826e Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 20 Sep 2017 01:57:14 +0100 Subject: [PATCH 190/410] Revert "Remove OS X workers from CI build matrix" This reverts commit 8b3faaef397823580e1a2b6b2645abb1edfbd129. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ae395842..8df26fab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ sudo: false os: - linux - #- osx + - osx env: global: From 0853fb6803d629ad9bcd343c41526a7eb809570c Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 20 Sep 2017 04:23:00 +0100 Subject: [PATCH 191/410] Prepare 3.16.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fe271957..c25888c5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.15.0", + "version": "3.16.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 5f52698986c871021b08c01bd71a68e04645718e Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Thu, 5 Oct 2017 19:17:47 +0100 Subject: [PATCH 192/410] Clean up grammars file This file is becoming unruly and difficult to maintain. This commit simplifies the code, reduces duplication and resolves a lot of inconsistency. Signed-off-by: Daniel Bayley --- lib/grammars.coffee | 1347 +++++++++++++++++++++---------------------- 1 file changed, 664 insertions(+), 683 deletions(-) diff --git a/lib/grammars.coffee b/lib/grammars.coffee index 58c2f118..5a53a4e6 100644 --- a/lib/grammars.coffee +++ b/lib/grammars.coffee @@ -1,976 +1,957 @@ # Maps Atom Grammar names to the command used by that language # As well as any special setup for arguments. -_ = require 'underscore' path = require 'path' -GrammarUtils = require '../lib/grammar-utils' -shell = require('electron').shell +{shell} = require 'electron' +_ = require 'underscore' +{OperatingSystem} = GrammarUtils = require '../lib/grammar-utils' + +os = OperatingSystem.platform() +windows = OperatingSystem.isWindows() module.exports = '1C (BSL)': 'File Based': - command: "oscript" - args: (context) -> ['-encoding=utf-8', context.filepath] + command: 'oscript' + args: ({filepath}) -> ['-encoding=utf-8', filepath] Ansible: - "File Based": - command: "ansible-playbook" - args: (context) -> [context.filepath] + 'File Based': + command: 'ansible-playbook' + args: ({filepath}) -> [filepath] AppleScript: 'Selection Based': command: 'osascript' - args: (context) -> ['-e', context.getCode()] + args: (context) -> ['-e', context.getCode()] 'File Based': command: 'osascript' - args: (context) -> [context.filepath] + args: ({filepath}) -> [filepath] AutoHotKey: - "File Based": - command: "AutoHotKey" - args: (context) -> [context.filepath] - "Selection Based": - command: "AutoHotKey" + 'Selection Based': + command: 'AutoHotKey' args: (context) -> - code = context.getCode(true) + code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] + return [tmpFile] + 'File Based': + command: 'AutoHotKey' + args: ({filepath}) -> [filepath] 'Babel ES6 JavaScript': - "Selection Based": - command: "babel-node" + 'Selection Based': + command: 'babel-node' args: (context) -> ['-e', context.getCode()] - "File Based": - command: "babel-node" + 'File Based': + command: 'babel-node' args: (context) -> [context.filepath] 'Bash Automated Test System (Bats)': - "File Based": - command: "bats" - args: (context) -> [context.filepath] - "Selection Based": + 'Selection Based': command: 'bats' args: (context) -> - code = context.getCode(true) + code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] + return [tmpFile] + 'File Based': + command: 'bats' + args: ({filepath}) -> [filepath] Batch: - "File Based": - command: "cmd.exe" - args: (context) -> ['/q', '/c', context.filepath] + 'File Based': + command: 'cmd.exe' + args: ({filepath}) -> ['/q', '/c', filepath] 'Behat Feature': - "File Based": - command: "behat" - args: (context) -> [context.filepath] - "Line Number Based": - command: "behat" + 'File Based': + command: 'behat' + args: ({filepath}) -> [filepath] + 'Line Number Based': + command: 'behat' args: (context) -> [context.fileColonLine()] BuckleScript: - "Selection Based": - command: "bsc" + 'Selection Based': + command: 'bsc' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - ['-c', tmpFile] - "File Based": - command: "bsc" - args: (context) -> ['-c', context.filepath] + return ['-c', tmpFile] + 'File Based': + command: 'bsc' + args: ({filepath}) -> ['-c', filepath] C: - "File Based": - command: "bash" - args: (context) -> - args = [] - if GrammarUtils.OperatingSystem.isDarwin() - args = ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '" + context.filepath + "' -o /tmp/c.out && /tmp/c.out"] - else if GrammarUtils.OperatingSystem.isLinux() - args = ["-c", "cc -Wall -include stdio.h '" + context.filepath + "' -o /tmp/c.out && /tmp/c.out"] - return args - "Selection Based": - command: "bash" + 'File Based': + command: 'bash' + args: ({filepath}) -> + args = switch os + when 'darwin' + "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" + when 'linux' + "cc -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" + return ['-c', args] + + 'Selection Based': + command: 'bash' args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".c") - args = [] - if GrammarUtils.OperatingSystem.isDarwin() - args = ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '" + tmpFile + "' -o /tmp/c.out && /tmp/c.out"] - else if GrammarUtils.OperatingSystem.isLinux() - args = ["-c", "cc -Wall -include stdio.h '" + tmpFile + "' -o /tmp/c.out && /tmp/c.out"] - return args + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.c') + args = switch os + when 'darwin' + "xcrun clang -fcolor-diagnostics -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" + when 'linux' + "cc -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" + return ['-c', args] 'C#': - "File Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" - args: (context) -> - progname = context.filename.replace /\.cs$/, "" - args = [] - if GrammarUtils.OperatingSystem.isWindows() - args = ["/c csc #{context.filepath} && #{progname}.exe"] - else - args = ['-c', "csc #{context.filepath} && mono #{progname}.exe"] - return args - "Selection Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + 'Selection Based': + command: if windows then 'cmd' else 'bash' args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".cs") - progname = tmpFile.replace /\.cs$/, "" - args = [] - if GrammarUtils.OperatingSystem.isWindows() - args = ["/c csc /out:#{progname}.exe #{tmpFile} && #{progname}.exe"] - else - args = ['-c', "csc /out:#{progname}.exe #{tmpFile} && mono #{progname}.exe"] - return args + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.cs') + progname = tmpFile.replace /\.cs$/, '' + if windows + return ["/c csc /out:#{progname}.exe #{tmpFile} && #{progname}.exe"] + else ['-c', "csc /out:#{progname}.exe #{tmpFile} && mono #{progname}.exe"] + + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath, filename}) -> + progname = filename.replace /\.cs$/, '' + if windows + return ["/c csc #{filepath} && #{progname}.exe"] + else ['-c', "csc '#{filepath}' && mono #{progname}.exe"] 'C# Script File': - "File Based": - command: "scriptcs" - args: (context) -> ['-script', context.filepath] - "Selection Based": - command: "scriptcs" + 'Selection Based': + command: 'scriptcs' args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".csx") - ['-script', tmpFile] + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.csx') + return ['-script', tmpFile] + 'File Based': + command: 'scriptcs' + args: ({filepath}) -> ['-script', filepath] 'C++': - if GrammarUtils.OperatingSystem.isDarwin() - "Selection Based": - command: "bash" - args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") - ["-c", "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] - "File Based": - command: "bash" - args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] - else if GrammarUtils.OperatingSystem.isLinux() - "Selection Based": - command: "bash" - args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") - ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] - "File Based": - command: "bash" - args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] - else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().split(".").slice -1 >= '14399' - "File Based": - command: "bash" - args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] + 'Selection Based': + command: 'bash' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.cpp') + args = switch os + when 'darwin' + "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + when 'linux' + "g++ -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + return ['-c', args] + + 'File Based': + command: 'bash' + args: ({filepath}) -> + args = switch os + when 'darwin' + "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + when 'linux' + "g++ -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + when 'win32' + if GrammarUtils.OperatingSystem.release().split('.').slice -1 >= '14399' + filepath = path.posix.join.apply(path.posix, [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1))).replace(':', '') + "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + return ['-c', args] 'C++14': - if GrammarUtils.OperatingSystem.isDarwin() - "Selection Based": - command: "bash" - args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") - ["-c", "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] - "File Based": - command: "bash" - args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] - else if GrammarUtils.OperatingSystem.isLinux() - "Selection Based": - command: "bash" - args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") - ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + tmpFile + "' -o /tmp/cpp.out && /tmp/cpp.out"] - "File Based": - command: "bash" - args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '" + context.filepath + "' -o /tmp/cpp.out && /tmp/cpp.out"] - else if GrammarUtils.OperatingSystem.isWindows() and GrammarUtils.OperatingSystem.release().split(".").slice -1 >= '14399' - "File Based": - command: "bash" - args: (context) -> ["-c", "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/" + path.posix.join.apply(path.posix, [].concat([context.filepath.split(path.win32.sep)[0].toLowerCase()], context.filepath.split(path.win32.sep).slice(1))).replace(":", "") + "' -o /tmp/cpp.out && /tmp/cpp.out"] + 'Selection Based': + command: 'bash' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.cpp') + args = switch os + when 'darwin' + "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + when 'linux' + "g++ -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + return ['-c', args] + + 'File Based': + command: 'bash' + args: ({filepath}) -> + args = switch os + when 'darwin' + "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + when 'linux' + "g++ -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + when 'win32' + if GrammarUtils.OperatingSystem.release().split('.').slice -1 >= '14399' + filepath = path.posix.join.apply(path.posix, [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1))).replace(':', '') + "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + return ['-c', args] Clojure: - "Selection Based": - command: "lein" - args: (context) -> ['exec', '-e', context.getCode()] - "File Based": - command: "lein" - args: (context) -> ['exec', context.filepath] + 'Selection Based': + command: 'lein' + args: (context) -> ['exec', '-e', context.getCode()] + 'File Based': + command: 'lein' + args: ({filepath}) -> ['exec', filepath] CoffeeScript: - "Selection Based": - command: "coffee" + 'Selection Based': + command: 'coffee' args: (context) -> ['--transpile', '-e', context.getCode()] - "File Based": - command: "coffee" - args: (context) -> ['-t', context.filepath] + 'File Based': + command: 'coffee' + args: ({filepath}) -> ['-t', filepath] - "CoffeeScript (Literate)": + 'CoffeeScript (Literate)': 'Selection Based': command: 'coffee' args: (context) -> ['-t', '-e', context.getCode()] 'File Based': command: 'coffee' - args: (context) -> ['-t', context.filepath] + args: ({filepath}) -> ['-t', filepath] - "Common Lisp": - "File Based": - command: "clisp" - args: (context) -> [context.filepath] + 'Common Lisp': + 'File Based': + command: 'clisp' + args: ({filepath}) -> [filepath] Crystal: - "Selection Based": - command: "crystal" - args: (context) -> ['eval', context.getCode()] - "File Based": - command: "crystal" - args: (context) -> [context.filepath] + 'Selection Based': + command: 'crystal' + args: (context) -> ['eval', context.getCode()] + 'File Based': + command: 'crystal' + args: ({filepath}) -> [filepath] D: - "Selection Based": - command: "rdmd" - args: (context) -> - code = context.getCode(true) + 'Selection Based': + command: 'rdmd' + args: (context) -> + code = context.getCode() tmpFile = GrammarUtils.D.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "rdmd" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'rdmd' + args: ({filepath}) -> [filepath] Dart: - "Selection Based": - command: "dart" + 'Selection Based': + command: 'dart' args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".dart") - [tmpFile] - "File Based": - command: "dart" - args: (context) -> [context.filepath] + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.dart') + return [tmpFile] + 'File Based': + command: 'dart' + args: ({filepath}) -> [filepath] - "Graphviz (DOT)": - "Selection Based": - command: "dot" - args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") - ['-Tpng', tmpFile, '-o', tmpFile + '.png'] - "File Based": - command: "dot" - args: (context) -> ['-Tpng', context.filepath, '-o', context.filepath + '.png'] DOT: - "Selection Based": - command: "dot" + 'Selection Based': + command: 'dot' args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') ['-Tpng', tmpFile, '-o', tmpFile + '.png'] - "File Based": - command: "dot" - args: (context) -> ['-Tpng', context.filepath, '-o', context.filepath + '.png'] + 'File Based': + command: 'dot' + args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] Elixir: - "Selection Based": - command: "elixir" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "elixir" - args: (context) -> ['-r', context.filepath] + 'Selection Based': + command: 'elixir' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'elixir' + args: ({filepath}) -> ['-r', filepath] Erlang: - "Selection Based": - command: "erl" - args: (context) -> ['-noshell', '-eval', "#{context.getCode()}, init:stop()."] - - 'F#': - "File Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "fsi" else "fsharpi" - args: (context) -> ['--exec', context.filepath] + 'Selection Based': + command: 'erl' + args: (context) -> ['-noshell', '-eval', "#{context.getCode()}, init:stop()."] 'F*': - "File Based": - command: "fstar" - args: (context) -> [context.filepath] + 'File Based': + command: 'fstar' + args: ({filepath}) -> [filepath] + + 'F#': + 'File Based': + command: if windows then 'fsi' else 'fsharpi' + args: ({filepath}) -> ['--exec', filepath] Fable: - "Selection Based": - command: "fable" + 'Selection Based': + command: 'fable' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "fable" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'fable' + args: ({filepath}) -> [filepath] Forth: - "File Based": - command: "gforth" - args: (context) -> [context.filepath] + 'File Based': + command: 'gforth' + args: ({filepath}) -> [filepath] - "Fortran - Fixed Form": - "File Based": - command: "bash" - args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffixed-form -o /tmp/f.out && /tmp/f.out"] - - "Fortran - Free Form": - "File Based": - command: "bash" - args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] - - "Fortran - Modern": - "File Based": - command: "bash" - args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] - - "Fortran - Punchcard": - "File Based": - command: "bash" - args: (context) -> ['-c', "gfortran '" + context.filepath + "' -ffixed-form -o /tmp/f.out && /tmp/f.out"] - - "Free Pascal": - "Selection Based": - command: "fsc" + 'Fortran - Fixed Form': + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out"] + + 'Fortran - Free Form': + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] + + 'Fortran - Modern': + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] + + 'Fortran - Punchcard': + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out"] + + 'Free Pascal': + 'Selection Based': + command: 'fsc' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "fsc" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'fsc' + args: ({filepath}) -> [filepath] Gherkin: - "File Based": - command: "cucumber" - args: (context) -> ['--color', context.filepath] - "Line Number Based": - command: "cucumber" + 'File Based': + command: 'cucumber' + args: ({filepath}) -> ['--color', filepath] + 'Line Number Based': + command: 'cucumber' args: (context) -> ['--color', context.fileColonLine()] gnuplot: - "File Based": - command: "gnuplot" - args: (context) -> ['-p', context.filepath] + 'File Based': + command: 'gnuplot' workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() + args: ({filepath}) -> ['-p', filepath] Go: - "File Based": - command: "go" - args: (context) -> - if context.filepath.match(/_test.go/) then ['test', '' ] - else ['run', context.filepath] + 'File Based': + command: 'go' workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() + args: ({filepath}) -> + if filepath.match(/_test.go/) then ['test', ''] + else ['run', filepath] + + 'Graphviz (DOT)': + 'Selection Based': + command: 'dot' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') + return ['-Tpng', tmpFile, '-o', tmpFile + '.png'] + 'File Based': + command: 'dot' + args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] Groovy: - "Selection Based": - command: "groovy" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "groovy" - args: (context) -> [context.filepath] + 'Selection Based': + command: 'groovy' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'groovy' + args: ({filepath}) -> [filepath] Haskell: - "File Based": - command: "runhaskell" - args: (context) -> [context.filepath] - "Selection Based": - command: "ghc" - args: (context) -> ['-e', context.getCode()] + 'Selection Based': + command: 'ghc' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'runhaskell' + args: ({filepath}) -> [filepath] + + HTML: + 'File Based': + command: 'echo' + args: ({filepath}) -> + uri = 'file://' + filepath + shell.openExternal(uri) + return ['HTML file opened at:', uri] Hy: - "File Based": - command: "hy" - args: (context) -> [context.filepath] - "Selection Based": - command: "hy" + 'Selection Based': + command: 'hy' args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".hy") - [tmpFile] + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.hy') + return [tmpFile] + 'File Based': + command: 'hy' + args: ({filepath}) -> [filepath] IcedCoffeeScript: - "Selection Based": - command: "iced" + 'Selection Based': + command: 'iced' args: (context) -> ['-e', context.getCode()] - "File Based": - command: "iced" - args: (context) -> [context.filepath] + 'File Based': + command: 'iced' + args: ({filepath}) -> [filepath] Idris: - "File Based": - command: "idris" - args: (context) -> [context.filepath, '-o', path.basename(context.filepath, path.extname(context.filepath))] + 'File Based': + command: 'idris' + args: ({filepath}) -> [filepath, '-o', path.basename(filepath, path.extname(filepath))] InnoSetup: - "File Based": - command: "ISCC.exe" - args: (context) -> ['/Q', context.filepath] + 'File Based': + command: 'ISCC.exe' + args: ({filepath}) -> ['/Q', filepath] ioLanguage: - "Selection Based": - command: "io" + 'Selection Based': + command: 'io' args: (context) -> [context.getCode()] - "File Based": - command: "io" - args: (context) -> ['-e', context.filepath] + 'File Based': + command: 'io' + args: ({filepath}) -> ['-e', filepath] Java: - "File Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" + 'File Based': + command: if windows then 'cmd' else 'bash' args: (context) -> className = GrammarUtils.Java.getClassName context classPackages = GrammarUtils.Java.getClassPackage context sourcePath = GrammarUtils.Java.getProjectPath context - - args = [] - if GrammarUtils.OperatingSystem.isWindows() - args = ["/c javac -Xlint #{context.filename} && java #{className}"] - else - args = ['-c', "javac -sourcepath #{sourcePath} -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] - - return args + if windows + return ["/c javac -Xlint '#{context.filename}' && java #{className}"] + else ['-c', "javac -sourcepath #{sourcePath} -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] JavaScript: - "Selection Based": - command: "babel-node" + 'Selection Based': + command: 'babel-node' args: (context) -> ['-e', context.getCode()] - "File Based": - command: "babel-node" - args: (context) -> [context.filepath] + 'File Based': + command: 'babel-node' + args: ({filepath}) -> [filepath] + + 'JavaScript for Automation (JXA)': + 'Selection Based': + command: 'osascript' + args: (context) -> ['-l', 'JavaScript', '-e', context.getCode()] + 'File Based': + command: 'osascript' + args: ({filepath}) -> ['-l', 'JavaScript', filepath] 'JavaScript with JSX': - "Selection Based": - command: "babel-node" + 'Selection Based': + command: 'babel-node' args: (context) -> ['-e', context.getCode()] - "File Based": - command: "babel-node" - args: (context) -> [context.filepath] - - "JavaScript for Automation (JXA)": - "Selection Based": - command: "osascript" - args: (context) -> ['-l', 'JavaScript', '-e', context.getCode()] - "File Based": - command: "osascript" - args: (context) -> ['-l', 'JavaScript', context.filepath] + 'File Based': + command: 'babel-node' + args: ({filepath}) -> [filepath] Jolie: - "File Based": - command: "jolie" - args: (context) -> [context.filepath] + 'File Based': + command: 'jolie' + args: ({filepath}) -> [filepath] Julia: - "Selection Based": - command: "julia" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "julia" - args: (context) -> [context.filepath] + 'Selection Based': + command: 'julia' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'julia' + args: ({filepath}) -> [filepath] Kotlin: - "Selection Based": - command: "bash" - args: (context) -> - code = context.getCode(true) - tmpFile = GrammarUtils.createTempFileWithCode(code, ".kt") - jarName = tmpFile.replace /\.kt$/, ".jar" - args = ['-c', "kotlinc #{tmpFile} -include-runtime -d #{jarName} && java -jar #{jarName}"] - return args - "File Based": - command: "bash" + 'Selection Based': + command: 'bash' args: (context) -> - jarName = context.filename.replace /\.kt$/, ".jar" - args = ['-c', "kotlinc #{context.filepath} -include-runtime -d /tmp/#{jarName} && java -jar /tmp/#{jarName}"] - return args + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.kt') + jarName = tmpFile.replace /\.kt$/, '.jar' + return ['-c', "kotlinc #{tmpFile} -include-runtime -d #{jarName} && java -jar #{jarName}"] + 'File Based': + command: 'bash' + args: ({filepath, filename}) -> + jarName = filename.replace /\.kt$/, '.jar' + return ['-c', "kotlinc '#{filepath}' -include-runtime -d /tmp/#{jarName} && java -jar /tmp/#{jarName}"] LAMMPS: - if GrammarUtils.OperatingSystem.isDarwin() || GrammarUtils.OperatingSystem.isLinux() - "File Based": - command: "lammps" - args: (context) -> ['-log', 'none', '-in', context.filepath] + if os in ['darwin', 'linux'] + 'File Based': + command: 'lammps' + args: ({filepath}) -> ['-log', 'none', '-in', filepath] LaTeX: - "File Based": - command: "latexmk" - args: (context) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', context.filepath] + 'File Based': + command: 'latexmk' + args: ({filepath}) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', filepath] 'LaTeX Beamer': - "File Based": - command: "latexmk" - args: (context) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', context.filepath] + 'File Based': + command: 'latexmk' + args: ({filepath}) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', filepath] LilyPond: - "File Based": - command: "lilypond" - args: (context) -> [context.filepath] + 'File Based': + command: 'lilypond' + args: ({filepath}) -> [filepath] Lisp: - "Selection Based": - command: "sbcl" + 'Selection Based': + command: 'sbcl' args: (context) -> statements = _.flatten(_.map(GrammarUtils.Lisp.splitStatements(context.getCode()), (statement) -> ['--eval', statement])) - args = _.union ['--noinform', '--disable-debugger', '--non-interactive', '--quit'], statements - return args - "File Based": - command: "sbcl" - args: (context) -> ['--noinform', '--script', context.filepath] + return _.union ['--noinform', '--disable-debugger', '--non-interactive', '--quit'], statements + 'File Based': + command: 'sbcl' + args: ({filepath}) -> ['--noinform', '--script', filepath] 'Literate Haskell': - "File Based": - command: "runhaskell" - args: (context) -> [context.filepath] + 'File Based': + command: 'runhaskell' + args: ({filepath}) -> [filepath] LiveScript: - "Selection Based": - command: "lsc" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "lsc" - args: (context) -> [context.filepath] + 'Selection Based': + command: 'lsc' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'lsc' + args: ({filepath}) -> [filepath] Lua: - "Selection Based": - command: "lua" + 'Selection Based': + command: 'lua' args: (context) -> - code = context.getCode(true) + code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "lua" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'lua' + args: ({filepath}) -> [filepath] 'Lua (WoW)': - "Selection Based": - command: "lua" + 'Selection Based': + command: 'lua' args: (context) -> - code = context.getCode(true) + code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "lua" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'lua' + args: ({filepath}) -> [filepath] + + MagicPython: + 'Selection Based': + command: 'python' + args: (context) -> ['-u', '-c', context.getCode()] + 'File Based': + command: 'python' + args: ({filepath}) -> ['-u', filepath] Makefile: - "Selection Based": - command: "bash" + 'Selection Based': + command: 'bash' args: (context) -> ['-c', context.getCode()] - "File Based": - command: "make" - args: (context) -> ['-f', context.filepath] - - MagicPython: - "Selection Based": - command: "python" - args: (context) -> ['-u', '-c', context.getCode()] - "File Based": - command: "python" - args: (context) -> ['-u', context.filepath] + 'File Based': + command: 'make' + args: ({filepath}) -> ['-f', filepath] MATLAB: - "Selection Based": - command: "matlab" + 'Selection Based': + command: 'matlab' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) - ['-nodesktop','-nosplash','-r',"try, run('" + tmpFile + "');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] - "File Based": - command: "matlab" - args: (context) -> ['-nodesktop','-nosplash','-r',"try run('" + context.filepath + "');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] + return ['-nodesktop', '-nosplash', '-r', "try, run('#{tmpFile}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] + 'File Based': + command: 'matlab' + args: ({filepath}) -> ['-nodesktop', '-nosplash', '-r', "try run('#{filepath}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] 'MIPS Assembler': - "File Based": - command: "spim" - args: (context) -> ['-f', context.filepath] - - MoonScript: - "Selection Based": - command: "moon" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "moon" - args: (context) -> [context.filepath] + 'File Based': + command: 'spim' + args: ({filepath}) -> ['-f', filepath] 'mongoDB (JavaScript)': - "Selection Based": - command: "mongo" + 'Selection Based': + command: 'mongo' args: (context) -> ['--eval', context.getCode()] - "File Based": - command: "mongo" - args: (context) -> [context.filepath] + 'File Based': + command: 'mongo' + args: ({filepath}) -> [filepath] + + MoonScript: + 'Selection Based': + command: 'moon' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'moon' + args: ({filepath}) -> [filepath] NCL: - "Selection Based": - command: "ncl" + 'Selection Based': + command: 'ncl' args: (context) -> - code = context.getCode(true) - code = code + """ - - exit""" + code = context.getCode() + '\n\nexit' tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "ncl" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'ncl' + args: ({filepath}) -> [filepath] newLISP: - "Selection Based": - command: "newlisp" + 'Selection Based': + command: 'newlisp' args: (context) -> ['-e', context.getCode()] - "File Based": - command: "newlisp" - args: (context) -> [context.filepath] + 'File Based': + command: 'newlisp' + args: ({filepath}) -> [filepath] Nim: - "File Based": - command: "bash" - args: (context) -> - file = GrammarUtils.Nim.findNimProjectFile(context.filepath) - path = GrammarUtils.Nim.projectDir(context.filepath) - ['-c', 'cd "' + path + '" && nim c --hints:off --parallelBuild:1 -r "' + file + '" 2>&1'] + 'File Based': + command: 'bash' + args: ({filepath}) -> + file = GrammarUtils.Nim.findNimProjectFile(filepath) + path = GrammarUtils.Nim.projectDir(filepath) + return ['-c', "cd '#{path}' && nim c --hints:off --parallelBuild:1 -r '#{file}' 2>&1"] NSIS: - "Selection Based": - command: "makensis" + 'Selection Based': + command: 'makensis' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "makensis" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'makensis' + args: ({filepath}) -> [filepath] 'Objective-C': - if GrammarUtils.OperatingSystem.isDarwin() - "File Based": - command: "bash" - args: (context) -> ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h -framework Cocoa " + context.filepath + " -o /tmp/objc-c.out && /tmp/objc-c.out"] + if os is 'darwin' + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h -framework Cocoa '#{filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out"] 'Objective-C++': - if GrammarUtils.OperatingSystem.isDarwin() - "File Based": - command: "bash" - args: (context) -> ['-c', "xcrun clang++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream -framework Cocoa " + context.filepath + " -o /tmp/objc-cpp.out && /tmp/objc-cpp.out"] + if os is 'darwin' + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "xcrun clang++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream -framework Cocoa '#{filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out"] OCaml: - "File Based": - command: "ocaml" - args: (context) -> [context.filepath] + 'File Based': + command: 'ocaml' + args: ({filepath}) -> [filepath] Octave: - "Selection Based": - command: "octave" + 'Selection Based': + command: 'octave' args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), '--eval', context.getCode()] - "File Based": - command: "octave" - args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), context.filepath] + 'File Based': + command: 'octave' + args: ({filepath}) -> ['-p', filepath.replace(/[^\/]*$/, ''), filepath] Oz: - "Selection Based": - command: "ozc" + 'Selection Based': + command: 'ozc' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - ['-c', tmpFile] - "File Based": - command: "ozc" - args: (context) -> ['-c', context.filepath] + return ['-c', tmpFile] + 'File Based': + command: 'ozc' + args: ({filepath}) -> ['-c', filepath] 'Pandoc Markdown': - "File Based": - command: "panzer" - args: (context) -> [context.filepath, "--output=" + context.filepath + ".pdf"] + 'File Based': + command: 'panzer' + args: ({filepath}) -> [filepath, "--output='#{filepath}.pdf'"] Perl: - "Selection Based": - command: "perl" + 'Selection Based': + command: 'perl' args: (context) -> code = context.getCode() - file = GrammarUtils.Perl.createTempFileWithCode(code) - [file] - "File Based": - command: "perl" - args: (context) -> [context.filepath] + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'perl' + args: ({filepath}) -> [filepath] - "Perl 6": - "Selection Based": - command: "perl6" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "perl6" - args: (context) -> [context.filepath] + 'Perl 6': + 'Selection Based': + command: 'perl6' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'perl6' + args: ({filepath}) -> [filepath] - "Perl 6 FE": - "Selection Based": - command: "perl6" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "perl6" - args: (context) -> [context.filepath] + 'Perl 6 FE': + 'Selection Based': + command: 'perl6' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'perl6' + args: ({filepath}) -> [filepath] PHP: - "Selection Based": - command: "php" + 'Selection Based': + command: 'php' args: (context) -> code = context.getCode() - file = GrammarUtils.PHP.createTempFileWithCode(code) - [file] - "File Based": - command: "php" - args: (context) -> [context.filepath] + tmpFile = GrammarUtils.PHP.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'php' + args: ({filepath}) -> [filepath] PowerShell: - "Selection Based": - command: "powershell" + 'Selection Based': + command: 'powershell' args: (context) -> [context.getCode()] - "File Based": - command: "powershell" - args: (context) -> [context.filepath.replace /\ /g, "` "] + 'File Based': + command: 'powershell' + args: ({filepath}) -> [filepath.replace /\ /g, '` '] Processing: - "File Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" - args: (context) -> - if GrammarUtils.OperatingSystem.isWindows() - return ['/c processing-java --sketch='+context.filepath.replace("\\"+context.filename,"")+' --run'] - else - return ['-c', 'processing-java --sketch='+context.filepath.replace("/"+context.filename,"")+' --run'] - + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath, filename}) -> + if windows + return ['/c processing-java --sketch=' + filepath.replace("\\#{filename}", '') + ' --run'] + else ['-c', 'processing-java --sketch=' + filepath.replace("/#{filename}", '') + ' --run'] Prolog: - "File Based": - command: "bash" - args: (context) -> ['-c', 'cd \"' + context.filepath.replace(/[^\/]*$/, '') + '\"; swipl -f \"' + context.filepath + '\" -t main --quiet'] + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "cd '" + filepath.replace(/[^\/]*$/, '') + "'; swipl -f '#{filepath}' -t main --quiet"] PureScript: - "File Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" - args: (context) -> - if GrammarUtils.OperatingSystem.isWindows() - ['/c cd "' + context.filepath.replace(/[^\/]*$/, '') + '" && pulp run'] - else - ['-c', 'cd "' + context.filepath.replace(/[^\/]*$/, '') + '" && pulp run'] + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath}) -> + filepath = filepath.replace(/[^\/]*$/, '') + command = "cd '#{filepath}' && pulp run" + if windows then ["/c #{command}"] else ['-c', command] Python: - "Selection Based": - command: "python" - args: (context) -> ['-u', '-c', context.getCode()] - "File Based": - command: "python" - args: (context) -> ['-u', context.filepath] + 'Selection Based': + command: 'python' + args: (context) -> ['-u', '-c', context.getCode()] + 'File Based': + command: 'python' + args: ({filepath}) -> ['-u', filepath] R: - "Selection Based": - command: "Rscript" + 'Selection Based': + command: 'Rscript' args: (context) -> code = context.getCode() - file = GrammarUtils.R.createTempFileWithCode(code) - [file] - "File Based": - command: "Rscript" - args: (context) -> [context.filepath] + tmpFile = GrammarUtils.R.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'Rscript' + args: ({filepath}) -> [filepath] Racket: - "Selection Based": - command: "racket" + 'Selection Based': + command: 'racket' args: (context) -> ['-e', context.getCode()] - "File Based": - command: "racket" - args: (context) -> [context.filepath] + 'File Based': + command: 'racket' + args: ({filepath}) -> [filepath] RANT: - "Selection Based": - command: "RantConsole.exe" + 'Selection Based': + command: 'RantConsole.exe' args: (context) -> - code = context.getCode(true) + code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - ['-file', tmpFile] - "File Based": - command: "RantConsole.exe" - args: (context) -> ['-file', context.filepath] + return ['-file', tmpFile] + 'File Based': + command: 'RantConsole.exe' + args: ({filepath}) -> ['-file', filepath] Reason: - "File Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" - args: (context) -> - progname = context.filename.replace /\.re$/, "" - args = [] - if GrammarUtils.OperatingSystem.isWindows() - args = ["/c rebuild #{progname}.native && #{progname}.native"] - else - args = ['-c', "rebuild '#{progname}.native' && '#{progname}.native'"] - return args + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filename}) -> + progname = filename.replace /\.re$/, '' + command = "rebuild '#{progname}.native' && '#{progname}.native'" + if windows then ["/c #{command}"] else ['-c', command] "Ren'Py": - "File Based": - command: "renpy" - args: (context) -> [context.filepath.substr(0, context.filepath.lastIndexOf("/game"))] + 'File Based': + command: 'renpy' + args: ({filepath}) -> [filepath.substr(0, filepath.lastIndexOf('/game'))] 'Robot Framework': - "File Based": + 'File Based': command: 'robot' - args: (context) -> [context.filepath] + args: ({filepath}) -> [filepath] RSpec: - "Selection Based": - command: "ruby" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "rspec" - args: (context) -> ['--tty', '--color', context.filepath] - "Line Number Based": - command: "rspec" + 'Selection Based': + command: 'ruby' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'rspec' + args: ({filepath}) -> ['--tty', '--color', filepath] + 'Line Number Based': + command: 'rspec' args: (context) -> ['--tty', '--color', context.fileColonLine()] Ruby: - "Selection Based": - command: "ruby" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "ruby" - args: (context) -> [context.filepath] + 'Selection Based': + command: 'ruby' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'ruby' + args: ({filepath}) -> [filepath] 'Ruby on Rails': - "Selection Based": - command: "rails" - args: (context) -> ['runner', context.getCode()] - "File Based": - command: "rails" - args: (context) -> ['runner', context.filepath] + 'Selection Based': + command: 'rails' + args: (context) -> ['runner', context.getCode()] + 'File Based': + command: 'rails' + args: ({filepath}) -> ['runner', filepath] Rust: - "File Based": - command: if GrammarUtils.OperatingSystem.isWindows() then "cmd" else "bash" - args: (context) -> - progname = context.filename.replace /\.rs$/, "" - args = [] - if GrammarUtils.OperatingSystem.isWindows() - args = ["/c rustc #{context.filepath} && #{progname}.exe"] - else - args = ['-c', "rustc '#{context.filepath}' -o /tmp/rs.out && /tmp/rs.out"] - return args + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath, filename}) -> + progname = filename.replace /\.rs$/, '' + if windows + return ["/c rustc #{filepath} && #{progname}.exe"] + else ['-c', "rustc '#{filepath}' -o /tmp/rs.out && /tmp/rs.out"] Sage: - "Selection Based": - command: "sage" + 'Selection Based': + command: 'sage' args: (context) -> ['-c', context.getCode()] - "File Based": - command: "sage" - args: (context) -> [context.filepath] + 'File Based': + command: 'sage' + args: ({filepath}) -> [filepath] Sass: - "File Based": - command: "sass" - args: (context) -> [context.filepath] + 'File Based': + command: 'sass' + args: ({filepath}) -> [filepath] Scala: - "Selection Based": - command: "scala" - args: (context) -> ['-e', context.getCode()] - "File Based": - command: "scala" - args: (context) -> [context.filepath] + 'Selection Based': + command: 'scala' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'scala' + args: ({filepath}) -> [filepath] Scheme: - "Selection Based": - command: "guile" - args: (context) -> ['-c', context.getCode()] - "File Based": - command: "guile" - args: (context) -> [context.filepath] + 'Selection Based': + command: 'guile' + args: (context) -> ['-c', context.getCode()] + 'File Based': + command: 'guile' + args: ({filepath}) -> [filepath] SCSS: - "File Based": - command: "sass" - args: (context) -> [context.filepath] + 'File Based': + command: 'sass' + args: ({filepath}) -> [filepath] - "Shell Script": - "Selection Based": + 'Shell Script': + 'Selection Based': command: process.env.SHELL - args: (context) -> ['-c', context.getCode()] - "File Based": + args: (context) -> ['-c', context.getCode()] + 'File Based': command: process.env.SHELL - args: (context) -> [context.filepath] + args: ({filepath}) -> [filepath] - "Shell Script (Fish)": - "Selection Based": - command: "fish" - args: (context) -> ['-c', context.getCode()] - "File Based": - command: "fish" - args: (context) -> [context.filepath] + 'Shell Script (Fish)': + 'Selection Based': + command: 'fish' + args: (context) -> ['-c', context.getCode()] + 'File Based': + command: 'fish' + args: ({filepath}) -> [filepath] + + SQL: + 'Selection Based': + command: 'echo' + args: -> ["SQL requires setting 'Script: Run Options' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information."] + 'File Based': + command: 'echo' + args: -> ["SQL requires setting 'Script: Run Options' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information."] - "SQL": - "Selection Based": - command: "echo" - args: (context) -> ['SQL requires setting \'Script: Run Options\' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information.'] - "File Based": - command: "echo" - args: (context) -> ['SQL requires setting \'Script: Run Options\' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information.'] - - "SQL (PostgreSQL)": - "Selection Based": - command: "psql" + 'SQL (PostgreSQL)': + 'Selection Based': + command: 'psql' args: (context) -> ['-c', context.getCode()] - "File Based": - command: "psql" - args: (context) -> ['-f', context.filepath] + 'File Based': + command: 'psql' + args: ({filepath}) -> ['-f', filepath] - "Standard ML": - "File Based": - command: "sml" - args: (context) -> [context.filepath] + 'Standard ML': + 'File Based': + command: 'sml' + args: ({filepath}) -> [filepath] Stata: - "Selection Based": - command: "stata" - args: (context) -> ['do', context.getCode()] - "File Based": - command: "stata" - args: (context) -> ['do', context.filepath] + 'Selection Based': + command: 'stata' + args: (context) -> ['do', context.getCode()] + 'File Based': + command: 'stata' + args: ({filepath}) -> ['do', filepath] Swift: - "File Based": - command: "swift" - args: (context) -> [context.filepath] + 'File Based': + command: 'swift' + args: ({filepath}) -> [filepath] Tcl: - "Selection Based": - command: "tclsh" + 'Selection Based': + command: 'tclsh' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) - [tmpFile] - "File Based": - command: "tclsh" - args: (context) -> [context.filepath] + return [tmpFile] + 'File Based': + command: 'tclsh' + args: ({filepath}) -> [filepath] Turing: - "File Based": - command: "turing" - args: (context) -> ['-run', context.filepath] + 'File Based': + command: 'turing' + args: ({filepath}) -> ['-run', filepath] TypeScript: - "Selection Based": - command: "ts-node" + 'Selection Based': + command: 'ts-node' args: (context) -> ['-e', context.getCode()] - "File Based": - command: "ts-node" - args: (context) -> [context.filepath] + 'File Based': + command: 'ts-node' + args: ({filepath}) -> [filepath] VBScript: 'Selection Based': command: 'cscript' args: (context) -> code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, ".vbs") - ['//NOLOGO',tmpFile] + tmpFile = GrammarUtils.createTempFileWithCode(code, '.vbs') + return ['//NOLOGO', tmpFile] 'File Based': command: 'cscript' - args: (context) -> ['//NOLOGO', context.filepath] - - HTML: - "File Based": - command: 'echo' - args: (context) -> - uri = 'file://' + context.filepath - shell.openExternal(uri) - ['HTML file opened at:', uri] + args: ({filepath}) -> ['//NOLOGO', filepath] From dc1d5df9f1eb4c071cbdf15f7bd7fa85e4ffc4fc Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Thu, 5 Oct 2017 22:55:28 +0100 Subject: [PATCH 193/410] Restructure grammars Break up grammars file into separate groups, further reducing duplication, in an effort to make contributing easier.Break up grammars file into separate groups, further reducing duplication, in an effort to make contributing easier. --- lib/code-context-builder.js | 2 +- lib/command-context.js | 2 +- lib/grammars.coffee | 957 ------------------------------- lib/grammars.js | 45 ++ lib/grammars/apple.coffee | 17 + lib/grammars/c.coffee | 100 ++++ lib/grammars/coffeescript.coffee | 29 + lib/grammars/database.coffee | 32 ++ lib/grammars/doc.coffee | 60 ++ lib/grammars/fortran.coffee | 12 + lib/grammars/haskell.coffee | 11 + lib/grammars/index.coffee | 315 ++++++++++ lib/grammars/java.coffee | 39 ++ lib/grammars/javascript.js | 70 +++ lib/grammars/lisp.coffee | 36 ++ lib/grammars/lua.coffee | 24 + lib/grammars/ml.coffee | 30 + lib/grammars/perl.coffee | 24 + lib/grammars/php.coffee | 25 + lib/grammars/python.coffee | 19 + lib/grammars/ruby.coffee | 33 ++ lib/grammars/shell.coffee | 46 ++ lib/grammars/windows.coffee | 43 ++ spec/grammars-spec.js | 8 +- 24 files changed, 1017 insertions(+), 962 deletions(-) delete mode 100644 lib/grammars.coffee create mode 100644 lib/grammars.js create mode 100644 lib/grammars/apple.coffee create mode 100644 lib/grammars/c.coffee create mode 100644 lib/grammars/coffeescript.coffee create mode 100644 lib/grammars/database.coffee create mode 100644 lib/grammars/doc.coffee create mode 100644 lib/grammars/fortran.coffee create mode 100644 lib/grammars/haskell.coffee create mode 100644 lib/grammars/index.coffee create mode 100644 lib/grammars/java.coffee create mode 100644 lib/grammars/javascript.js create mode 100644 lib/grammars/lisp.coffee create mode 100644 lib/grammars/lua.coffee create mode 100644 lib/grammars/ml.coffee create mode 100644 lib/grammars/perl.coffee create mode 100644 lib/grammars/php.coffee create mode 100644 lib/grammars/python.coffee create mode 100644 lib/grammars/ruby.coffee create mode 100644 lib/grammars/shell.coffee create mode 100644 lib/grammars/windows.coffee diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index 3b8d8121..c0bb8260 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -3,7 +3,7 @@ import { Emitter } from 'atom'; import CodeContext from './code-context'; -import grammarMap from './grammars.coffee'; +import grammarMap from './grammars'; export default class CodeContextBuilder { constructor(emitter = new Emitter()) { diff --git a/lib/command-context.js b/lib/command-context.js index a5b64647..49820760 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -1,6 +1,6 @@ 'use babel'; -import grammarMap from './grammars.coffee'; +import grammarMap from './grammars'; export default class CommandContext { constructor() { diff --git a/lib/grammars.coffee b/lib/grammars.coffee deleted file mode 100644 index 5a53a4e6..00000000 --- a/lib/grammars.coffee +++ /dev/null @@ -1,957 +0,0 @@ -# Maps Atom Grammar names to the command used by that language -# As well as any special setup for arguments. - -path = require 'path' -{shell} = require 'electron' -_ = require 'underscore' -{OperatingSystem} = GrammarUtils = require '../lib/grammar-utils' - -os = OperatingSystem.platform() -windows = OperatingSystem.isWindows() - -module.exports = - '1C (BSL)': - 'File Based': - command: 'oscript' - args: ({filepath}) -> ['-encoding=utf-8', filepath] - - Ansible: - 'File Based': - command: 'ansible-playbook' - args: ({filepath}) -> [filepath] - - AppleScript: - 'Selection Based': - command: 'osascript' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'osascript' - args: ({filepath}) -> [filepath] - - AutoHotKey: - 'Selection Based': - command: 'AutoHotKey' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'AutoHotKey' - args: ({filepath}) -> [filepath] - - 'Babel ES6 JavaScript': - 'Selection Based': - command: 'babel-node' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'babel-node' - args: (context) -> [context.filepath] - - 'Bash Automated Test System (Bats)': - 'Selection Based': - command: 'bats' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'bats' - args: ({filepath}) -> [filepath] - - Batch: - 'File Based': - command: 'cmd.exe' - args: ({filepath}) -> ['/q', '/c', filepath] - - 'Behat Feature': - 'File Based': - command: 'behat' - args: ({filepath}) -> [filepath] - 'Line Number Based': - command: 'behat' - args: (context) -> [context.fileColonLine()] - - BuckleScript: - 'Selection Based': - command: 'bsc' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return ['-c', tmpFile] - 'File Based': - command: 'bsc' - args: ({filepath}) -> ['-c', filepath] - - C: - 'File Based': - command: 'bash' - args: ({filepath}) -> - args = switch os - when 'darwin' - "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" - when 'linux' - "cc -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" - return ['-c', args] - - 'Selection Based': - command: 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.c') - args = switch os - when 'darwin' - "xcrun clang -fcolor-diagnostics -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" - when 'linux' - "cc -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" - return ['-c', args] - - 'C#': - 'Selection Based': - command: if windows then 'cmd' else 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.cs') - progname = tmpFile.replace /\.cs$/, '' - if windows - return ["/c csc /out:#{progname}.exe #{tmpFile} && #{progname}.exe"] - else ['-c', "csc /out:#{progname}.exe #{tmpFile} && mono #{progname}.exe"] - - 'File Based': - command: if windows then 'cmd' else 'bash' - args: ({filepath, filename}) -> - progname = filename.replace /\.cs$/, '' - if windows - return ["/c csc #{filepath} && #{progname}.exe"] - else ['-c', "csc '#{filepath}' && mono #{progname}.exe"] - - 'C# Script File': - 'Selection Based': - command: 'scriptcs' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.csx') - return ['-script', tmpFile] - 'File Based': - command: 'scriptcs' - args: ({filepath}) -> ['-script', filepath] - - 'C++': - 'Selection Based': - command: 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.cpp') - args = switch os - when 'darwin' - "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" - when 'linux' - "g++ -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" - return ['-c', args] - - 'File Based': - command: 'bash' - args: ({filepath}) -> - args = switch os - when 'darwin' - "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - when 'linux' - "g++ -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - when 'win32' - if GrammarUtils.OperatingSystem.release().split('.').slice -1 >= '14399' - filepath = path.posix.join.apply(path.posix, [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1))).replace(':', '') - "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - return ['-c', args] - - 'C++14': - 'Selection Based': - command: 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.cpp') - args = switch os - when 'darwin' - "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" - when 'linux' - "g++ -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" - return ['-c', args] - - 'File Based': - command: 'bash' - args: ({filepath}) -> - args = switch os - when 'darwin' - "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - when 'linux' - "g++ -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - when 'win32' - if GrammarUtils.OperatingSystem.release().split('.').slice -1 >= '14399' - filepath = path.posix.join.apply(path.posix, [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1))).replace(':', '') - "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - return ['-c', args] - - Clojure: - 'Selection Based': - command: 'lein' - args: (context) -> ['exec', '-e', context.getCode()] - 'File Based': - command: 'lein' - args: ({filepath}) -> ['exec', filepath] - - CoffeeScript: - 'Selection Based': - command: 'coffee' - args: (context) -> ['--transpile', '-e', context.getCode()] - 'File Based': - command: 'coffee' - args: ({filepath}) -> ['-t', filepath] - - 'CoffeeScript (Literate)': - 'Selection Based': - command: 'coffee' - args: (context) -> ['-t', '-e', context.getCode()] - 'File Based': - command: 'coffee' - args: ({filepath}) -> ['-t', filepath] - - 'Common Lisp': - 'File Based': - command: 'clisp' - args: ({filepath}) -> [filepath] - - Crystal: - 'Selection Based': - command: 'crystal' - args: (context) -> ['eval', context.getCode()] - 'File Based': - command: 'crystal' - args: ({filepath}) -> [filepath] - - D: - 'Selection Based': - command: 'rdmd' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.D.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'rdmd' - args: ({filepath}) -> [filepath] - - Dart: - 'Selection Based': - command: 'dart' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.dart') - return [tmpFile] - 'File Based': - command: 'dart' - args: ({filepath}) -> [filepath] - - DOT: - 'Selection Based': - command: 'dot' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') - ['-Tpng', tmpFile, '-o', tmpFile + '.png'] - 'File Based': - command: 'dot' - args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] - - Elixir: - 'Selection Based': - command: 'elixir' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'elixir' - args: ({filepath}) -> ['-r', filepath] - - Erlang: - 'Selection Based': - command: 'erl' - args: (context) -> ['-noshell', '-eval', "#{context.getCode()}, init:stop()."] - - 'F*': - 'File Based': - command: 'fstar' - args: ({filepath}) -> [filepath] - - 'F#': - 'File Based': - command: if windows then 'fsi' else 'fsharpi' - args: ({filepath}) -> ['--exec', filepath] - - Fable: - 'Selection Based': - command: 'fable' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'fable' - args: ({filepath}) -> [filepath] - - Forth: - 'File Based': - command: 'gforth' - args: ({filepath}) -> [filepath] - - 'Fortran - Fixed Form': - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out"] - - 'Fortran - Free Form': - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] - - 'Fortran - Modern': - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] - - 'Fortran - Punchcard': - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out"] - - 'Free Pascal': - 'Selection Based': - command: 'fsc' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'fsc' - args: ({filepath}) -> [filepath] - - Gherkin: - 'File Based': - command: 'cucumber' - args: ({filepath}) -> ['--color', filepath] - 'Line Number Based': - command: 'cucumber' - args: (context) -> ['--color', context.fileColonLine()] - - gnuplot: - 'File Based': - command: 'gnuplot' - workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() - args: ({filepath}) -> ['-p', filepath] - - Go: - 'File Based': - command: 'go' - workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() - args: ({filepath}) -> - if filepath.match(/_test.go/) then ['test', ''] - else ['run', filepath] - - 'Graphviz (DOT)': - 'Selection Based': - command: 'dot' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') - return ['-Tpng', tmpFile, '-o', tmpFile + '.png'] - 'File Based': - command: 'dot' - args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] - - Groovy: - 'Selection Based': - command: 'groovy' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'groovy' - args: ({filepath}) -> [filepath] - - Haskell: - 'Selection Based': - command: 'ghc' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'runhaskell' - args: ({filepath}) -> [filepath] - - HTML: - 'File Based': - command: 'echo' - args: ({filepath}) -> - uri = 'file://' + filepath - shell.openExternal(uri) - return ['HTML file opened at:', uri] - - Hy: - 'Selection Based': - command: 'hy' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.hy') - return [tmpFile] - 'File Based': - command: 'hy' - args: ({filepath}) -> [filepath] - - IcedCoffeeScript: - 'Selection Based': - command: 'iced' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'iced' - args: ({filepath}) -> [filepath] - - Idris: - 'File Based': - command: 'idris' - args: ({filepath}) -> [filepath, '-o', path.basename(filepath, path.extname(filepath))] - - InnoSetup: - 'File Based': - command: 'ISCC.exe' - args: ({filepath}) -> ['/Q', filepath] - - ioLanguage: - 'Selection Based': - command: 'io' - args: (context) -> [context.getCode()] - 'File Based': - command: 'io' - args: ({filepath}) -> ['-e', filepath] - - Java: - 'File Based': - command: if windows then 'cmd' else 'bash' - args: (context) -> - className = GrammarUtils.Java.getClassName context - classPackages = GrammarUtils.Java.getClassPackage context - sourcePath = GrammarUtils.Java.getProjectPath context - if windows - return ["/c javac -Xlint '#{context.filename}' && java #{className}"] - else ['-c', "javac -sourcepath #{sourcePath} -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] - - JavaScript: - 'Selection Based': - command: 'babel-node' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'babel-node' - args: ({filepath}) -> [filepath] - - 'JavaScript for Automation (JXA)': - 'Selection Based': - command: 'osascript' - args: (context) -> ['-l', 'JavaScript', '-e', context.getCode()] - 'File Based': - command: 'osascript' - args: ({filepath}) -> ['-l', 'JavaScript', filepath] - - 'JavaScript with JSX': - 'Selection Based': - command: 'babel-node' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'babel-node' - args: ({filepath}) -> [filepath] - - Jolie: - 'File Based': - command: 'jolie' - args: ({filepath}) -> [filepath] - - Julia: - 'Selection Based': - command: 'julia' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'julia' - args: ({filepath}) -> [filepath] - - Kotlin: - 'Selection Based': - command: 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.kt') - jarName = tmpFile.replace /\.kt$/, '.jar' - return ['-c', "kotlinc #{tmpFile} -include-runtime -d #{jarName} && java -jar #{jarName}"] - 'File Based': - command: 'bash' - args: ({filepath, filename}) -> - jarName = filename.replace /\.kt$/, '.jar' - return ['-c', "kotlinc '#{filepath}' -include-runtime -d /tmp/#{jarName} && java -jar /tmp/#{jarName}"] - - LAMMPS: - if os in ['darwin', 'linux'] - 'File Based': - command: 'lammps' - args: ({filepath}) -> ['-log', 'none', '-in', filepath] - - LaTeX: - 'File Based': - command: 'latexmk' - args: ({filepath}) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', filepath] - - 'LaTeX Beamer': - 'File Based': - command: 'latexmk' - args: ({filepath}) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', filepath] - - LilyPond: - 'File Based': - command: 'lilypond' - args: ({filepath}) -> [filepath] - - Lisp: - 'Selection Based': - command: 'sbcl' - args: (context) -> - statements = _.flatten(_.map(GrammarUtils.Lisp.splitStatements(context.getCode()), (statement) -> ['--eval', statement])) - return _.union ['--noinform', '--disable-debugger', '--non-interactive', '--quit'], statements - 'File Based': - command: 'sbcl' - args: ({filepath}) -> ['--noinform', '--script', filepath] - - 'Literate Haskell': - 'File Based': - command: 'runhaskell' - args: ({filepath}) -> [filepath] - - LiveScript: - 'Selection Based': - command: 'lsc' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'lsc' - args: ({filepath}) -> [filepath] - - Lua: - 'Selection Based': - command: 'lua' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'lua' - args: ({filepath}) -> [filepath] - - 'Lua (WoW)': - 'Selection Based': - command: 'lua' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'lua' - args: ({filepath}) -> [filepath] - - MagicPython: - 'Selection Based': - command: 'python' - args: (context) -> ['-u', '-c', context.getCode()] - 'File Based': - command: 'python' - args: ({filepath}) -> ['-u', filepath] - - Makefile: - 'Selection Based': - command: 'bash' - args: (context) -> ['-c', context.getCode()] - 'File Based': - command: 'make' - args: ({filepath}) -> ['-f', filepath] - - MATLAB: - 'Selection Based': - command: 'matlab' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) - return ['-nodesktop', '-nosplash', '-r', "try, run('#{tmpFile}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] - 'File Based': - command: 'matlab' - args: ({filepath}) -> ['-nodesktop', '-nosplash', '-r', "try run('#{filepath}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] - - 'MIPS Assembler': - 'File Based': - command: 'spim' - args: ({filepath}) -> ['-f', filepath] - - 'mongoDB (JavaScript)': - 'Selection Based': - command: 'mongo' - args: (context) -> ['--eval', context.getCode()] - 'File Based': - command: 'mongo' - args: ({filepath}) -> [filepath] - - MoonScript: - 'Selection Based': - command: 'moon' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'moon' - args: ({filepath}) -> [filepath] - - NCL: - 'Selection Based': - command: 'ncl' - args: (context) -> - code = context.getCode() + '\n\nexit' - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'ncl' - args: ({filepath}) -> [filepath] - - newLISP: - 'Selection Based': - command: 'newlisp' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'newlisp' - args: ({filepath}) -> [filepath] - - Nim: - 'File Based': - command: 'bash' - args: ({filepath}) -> - file = GrammarUtils.Nim.findNimProjectFile(filepath) - path = GrammarUtils.Nim.projectDir(filepath) - return ['-c', "cd '#{path}' && nim c --hints:off --parallelBuild:1 -r '#{file}' 2>&1"] - - NSIS: - 'Selection Based': - command: 'makensis' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'makensis' - args: ({filepath}) -> [filepath] - - 'Objective-C': - if os is 'darwin' - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h -framework Cocoa '#{filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out"] - - 'Objective-C++': - if os is 'darwin' - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "xcrun clang++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream -framework Cocoa '#{filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out"] - - OCaml: - 'File Based': - command: 'ocaml' - args: ({filepath}) -> [filepath] - - Octave: - 'Selection Based': - command: 'octave' - args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), '--eval', context.getCode()] - 'File Based': - command: 'octave' - args: ({filepath}) -> ['-p', filepath.replace(/[^\/]*$/, ''), filepath] - - Oz: - 'Selection Based': - command: 'ozc' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return ['-c', tmpFile] - 'File Based': - command: 'ozc' - args: ({filepath}) -> ['-c', filepath] - - 'Pandoc Markdown': - 'File Based': - command: 'panzer' - args: ({filepath}) -> [filepath, "--output='#{filepath}.pdf'"] - - Perl: - 'Selection Based': - command: 'perl' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'perl' - args: ({filepath}) -> [filepath] - - 'Perl 6': - 'Selection Based': - command: 'perl6' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'perl6' - args: ({filepath}) -> [filepath] - - 'Perl 6 FE': - 'Selection Based': - command: 'perl6' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'perl6' - args: ({filepath}) -> [filepath] - - PHP: - 'Selection Based': - command: 'php' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.PHP.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'php' - args: ({filepath}) -> [filepath] - - PowerShell: - 'Selection Based': - command: 'powershell' - args: (context) -> [context.getCode()] - 'File Based': - command: 'powershell' - args: ({filepath}) -> [filepath.replace /\ /g, '` '] - - Processing: - 'File Based': - command: if windows then 'cmd' else 'bash' - args: ({filepath, filename}) -> - if windows - return ['/c processing-java --sketch=' + filepath.replace("\\#{filename}", '') + ' --run'] - else ['-c', 'processing-java --sketch=' + filepath.replace("/#{filename}", '') + ' --run'] - - Prolog: - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "cd '" + filepath.replace(/[^\/]*$/, '') + "'; swipl -f '#{filepath}' -t main --quiet"] - - PureScript: - 'File Based': - command: if windows then 'cmd' else 'bash' - args: ({filepath}) -> - filepath = filepath.replace(/[^\/]*$/, '') - command = "cd '#{filepath}' && pulp run" - if windows then ["/c #{command}"] else ['-c', command] - - Python: - 'Selection Based': - command: 'python' - args: (context) -> ['-u', '-c', context.getCode()] - 'File Based': - command: 'python' - args: ({filepath}) -> ['-u', filepath] - - R: - 'Selection Based': - command: 'Rscript' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.R.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'Rscript' - args: ({filepath}) -> [filepath] - - Racket: - 'Selection Based': - command: 'racket' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'racket' - args: ({filepath}) -> [filepath] - - RANT: - 'Selection Based': - command: 'RantConsole.exe' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return ['-file', tmpFile] - 'File Based': - command: 'RantConsole.exe' - args: ({filepath}) -> ['-file', filepath] - - Reason: - 'File Based': - command: if windows then 'cmd' else 'bash' - args: ({filename}) -> - progname = filename.replace /\.re$/, '' - command = "rebuild '#{progname}.native' && '#{progname}.native'" - if windows then ["/c #{command}"] else ['-c', command] - - "Ren'Py": - 'File Based': - command: 'renpy' - args: ({filepath}) -> [filepath.substr(0, filepath.lastIndexOf('/game'))] - - 'Robot Framework': - 'File Based': - command: 'robot' - args: ({filepath}) -> [filepath] - - RSpec: - 'Selection Based': - command: 'ruby' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'rspec' - args: ({filepath}) -> ['--tty', '--color', filepath] - 'Line Number Based': - command: 'rspec' - args: (context) -> ['--tty', '--color', context.fileColonLine()] - - Ruby: - 'Selection Based': - command: 'ruby' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'ruby' - args: ({filepath}) -> [filepath] - - 'Ruby on Rails': - 'Selection Based': - command: 'rails' - args: (context) -> ['runner', context.getCode()] - 'File Based': - command: 'rails' - args: ({filepath}) -> ['runner', filepath] - - Rust: - 'File Based': - command: if windows then 'cmd' else 'bash' - args: ({filepath, filename}) -> - progname = filename.replace /\.rs$/, '' - if windows - return ["/c rustc #{filepath} && #{progname}.exe"] - else ['-c', "rustc '#{filepath}' -o /tmp/rs.out && /tmp/rs.out"] - - Sage: - 'Selection Based': - command: 'sage' - args: (context) -> ['-c', context.getCode()] - 'File Based': - command: 'sage' - args: ({filepath}) -> [filepath] - - Sass: - 'File Based': - command: 'sass' - args: ({filepath}) -> [filepath] - - Scala: - 'Selection Based': - command: 'scala' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'scala' - args: ({filepath}) -> [filepath] - - Scheme: - 'Selection Based': - command: 'guile' - args: (context) -> ['-c', context.getCode()] - 'File Based': - command: 'guile' - args: ({filepath}) -> [filepath] - - SCSS: - 'File Based': - command: 'sass' - args: ({filepath}) -> [filepath] - - 'Shell Script': - 'Selection Based': - command: process.env.SHELL - args: (context) -> ['-c', context.getCode()] - 'File Based': - command: process.env.SHELL - args: ({filepath}) -> [filepath] - - 'Shell Script (Fish)': - 'Selection Based': - command: 'fish' - args: (context) -> ['-c', context.getCode()] - 'File Based': - command: 'fish' - args: ({filepath}) -> [filepath] - - SQL: - 'Selection Based': - command: 'echo' - args: -> ["SQL requires setting 'Script: Run Options' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information."] - 'File Based': - command: 'echo' - args: -> ["SQL requires setting 'Script: Run Options' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information."] - - 'SQL (PostgreSQL)': - 'Selection Based': - command: 'psql' - args: (context) -> ['-c', context.getCode()] - 'File Based': - command: 'psql' - args: ({filepath}) -> ['-f', filepath] - - 'Standard ML': - 'File Based': - command: 'sml' - args: ({filepath}) -> [filepath] - - Stata: - 'Selection Based': - command: 'stata' - args: (context) -> ['do', context.getCode()] - 'File Based': - command: 'stata' - args: ({filepath}) -> ['do', filepath] - - Swift: - 'File Based': - command: 'swift' - args: ({filepath}) -> [filepath] - - Tcl: - 'Selection Based': - command: 'tclsh' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'tclsh' - args: ({filepath}) -> [filepath] - - Turing: - 'File Based': - command: 'turing' - args: ({filepath}) -> ['-run', filepath] - - TypeScript: - 'Selection Based': - command: 'ts-node' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'ts-node' - args: ({filepath}) -> [filepath] - - VBScript: - 'Selection Based': - command: 'cscript' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.vbs') - return ['//NOLOGO', tmpFile] - 'File Based': - command: 'cscript' - args: ({filepath}) -> ['//NOLOGO', filepath] diff --git a/lib/grammars.js b/lib/grammars.js new file mode 100644 index 00000000..6b23e671 --- /dev/null +++ b/lib/grammars.js @@ -0,0 +1,45 @@ +'use babel'; + +import grammarMap from './grammars/index.coffee'; + +import apple from './grammars/apple.coffee'; +import c from './grammars/c.coffee'; +import coffeescript from './grammars/coffeescript.coffee'; +import database from './grammars/database.coffee'; +import doc from './grammars/doc.coffee'; +import fortran from './grammars/fortran.coffee'; +import haskell from './grammars/haskell.coffee'; +import java from './grammars/java.coffee'; +import js from './grammars/javascript'; +import lisp from './grammars/lisp.coffee'; +import lua from './grammars/lua.coffee'; +import ml from './grammars/ml.coffee'; +import perl from './grammars/perl.coffee'; +import php from './grammars/php.coffee'; +import python from './grammars/python.coffee'; +import ruby from './grammars/ruby.coffee'; +import shell from './grammars/shell.coffee'; +import windows from './grammars/windows.coffee'; + +export default { + ...grammarMap, + + ...apple, + ...c, + ...coffeescript, + ...database, + ...doc, + ...fortran, + ...haskell, + ...java, + ...js, + ...lisp, + ...lua, + ...ml, + ...perl, + ...php, + ...python, + ...ruby, + ...shell, + ...windows, +}; diff --git a/lib/grammars/apple.coffee b/lib/grammars/apple.coffee new file mode 100644 index 00000000..49d29dcd --- /dev/null +++ b/lib/grammars/apple.coffee @@ -0,0 +1,17 @@ +#{OperatingSystem} = require '../grammar-utils' + +module.exports = #if OperatingSystem.isDarwin() + + AppleScript: + 'Selection Based': + command: 'osascript' + args: (context) -> ['-e', context.getCode()] + + 'File Based': + command: 'osascript' + args: ({filepath}) -> [filepath] + + Swift: + 'File Based': + command: 'swift' + args: ({filepath}) -> [filepath] diff --git a/lib/grammars/c.coffee b/lib/grammars/c.coffee new file mode 100644 index 00000000..30316eaa --- /dev/null +++ b/lib/grammars/c.coffee @@ -0,0 +1,100 @@ +path = require 'path' +{OperatingSystem} = GrammarUtils = require '../grammar-utils' + +os = OperatingSystem.platform() +windows = OperatingSystem.isWindows() + +exports.C = + 'File Based': + command: 'bash' + args: ({filepath}) -> + args = switch os + when 'darwin' + "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" + when 'linux' + "cc -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" + return ['-c', args] + + 'Selection Based': + command: 'bash' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.c') + args = switch os + when 'darwin' + "xcrun clang -fcolor-diagnostics -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" + when 'linux' + "cc -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" + return ['-c', args] + +exports['C#'] = + 'Selection Based': + command: if windows then 'cmd' else 'bash' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.cs') + progname = tmpFile.replace /\.cs$/, '' + if windows + return ["/c csc /out:#{progname}.exe #{tmpFile} && #{progname}.exe"] + else ['-c', "csc /out:#{progname}.exe #{tmpFile} && mono #{progname}.exe"] + + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath, filename}) -> + progname = filename.replace /\.cs$/, '' + if windows + return ["/c csc #{filepath} && #{progname}.exe"] + else ['-c', "csc '#{filepath}' && mono #{progname}.exe"] + +exports['C# Script File'] = + + 'Selection Based': + command: 'scriptcs' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.csx') + return ['-script', tmpFile] + 'File Based': + command: 'scriptcs' + args: ({filepath}) -> ['-script', filepath] + +exports['C++'] = + 'Selection Based': + command: 'bash' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.cpp') + args = switch os + when 'darwin' + "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + when 'linux' + "g++ -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + return ['-c', args] + + 'File Based': + command: 'bash' + args: ({filepath}) -> + args = switch os + when 'darwin' + "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + when 'linux' + "g++ -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + when 'win32' + if GrammarUtils.OperatingSystem.release().split('.').slice -1 >= '14399' + filepath = path.posix.join.apply(path.posix, [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1))).replace(':', '') + "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + return ['-c', args] + +exports['C++14'] = exports['C++'] + +exports['Objective-C'] = + if GrammarUtils.OperatingSystem.isDarwin() + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h -framework Cocoa '#{filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out"] + +exports['Objective-C++'] = + if GrammarUtils.OperatingSystem.isDarwin() + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "xcrun clang++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream -framework Cocoa '#{filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out"] diff --git a/lib/grammars/coffeescript.coffee b/lib/grammars/coffeescript.coffee new file mode 100644 index 00000000..6bb243f9 --- /dev/null +++ b/lib/grammars/coffeescript.coffee @@ -0,0 +1,29 @@ +module.exports = + + CoffeeScript: + 'Selection Based': + command: 'coffee' + args: (context) -> ['--transpile', '-e', context.getCode()] + + 'File Based': + command: 'coffee' + args: ({filepath}) -> ['-t', filepath] + + 'CoffeeScript (Literate)': + + 'Selection Based': + command: 'coffee' + args: (context) -> ['-t', '-e', context.getCode()] + + 'File Based': + command: 'coffee' + args: ({filepath}) -> ['-t', filepath] + + IcedCoffeeScript: + 'Selection Based': + command: 'iced' + args: (context) -> ['-e', context.getCode()] + + 'File Based': + command: 'iced' + args: ({filepath}) -> [filepath] diff --git a/lib/grammars/database.coffee b/lib/grammars/database.coffee new file mode 100644 index 00000000..aa4c2e30 --- /dev/null +++ b/lib/grammars/database.coffee @@ -0,0 +1,32 @@ +message = "SQL requires setting 'Script: Run Options' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information." + +module.exports = + + 'mongoDB (JavaScript)': + + 'Selection Based': + command: 'mongo' + args: (context) -> ['--eval', context.getCode()] + + 'File Based': + command: 'mongo' + args: ({filepath}) -> [filepath] + + SQL: + 'Selection Based': + command: 'echo' + args: -> [message] + + 'File Based': + command: 'echo' + args: -> [message] + + 'SQL (PostgreSQL)': + + 'Selection Based': + command: 'psql' + args: (context) -> ['-c', context.getCode()] + + 'File Based': + command: 'psql' + args: ({filepath}) -> ['-f', filepath] diff --git a/lib/grammars/doc.coffee b/lib/grammars/doc.coffee new file mode 100644 index 00000000..2b988f63 --- /dev/null +++ b/lib/grammars/doc.coffee @@ -0,0 +1,60 @@ +{shell} = require 'electron' +GrammarUtils = require '../grammar-utils' + +exports.DOT = + 'Selection Based': + command: 'dot' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') + ['-Tpng', tmpFile, '-o', tmpFile + '.png'] + + 'File Based': + command: 'dot' + args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] + +exports.gnuplot = + 'File Based': + command: 'gnuplot' + workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() + args: ({filepath}) -> ['-p', filepath] + +exports['Graphviz (DOT)'] = + + 'Selection Based': + command: 'dot' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') + return ['-Tpng', tmpFile, '-o', tmpFile + '.png'] + + 'File Based': + command: 'dot' + args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] + +exports.HTML = + 'File Based': + command: 'echo' + args: ({filepath}) -> + uri = 'file://' + filepath + shell.openExternal(uri) + return ['HTML file opened at:', uri] + +exports.LaTeX = + 'File Based': + command: 'latexmk' + args: ({filepath}) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', filepath] + +exports['LaTeX Beamer'] = exports.LaTeX + +exports['Pandoc Markdown'] = + 'File Based': + command: 'panzer' + args: ({filepath}) -> [filepath, "--output='#{filepath}.pdf'"] + +exports.Sass = + 'File Based': + command: 'sass' + args: ({filepath}) -> [filepath] + +exports.SCSS = exports.Sass diff --git a/lib/grammars/fortran.coffee b/lib/grammars/fortran.coffee new file mode 100644 index 00000000..74fe557a --- /dev/null +++ b/lib/grammars/fortran.coffee @@ -0,0 +1,12 @@ +exports['Fortran - Fixed Form'] = + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out"] + +exports['Fortran - Free Form'] = + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] + +exports['Fortran - Modern'] = exports['Fortran - Free Form'] +exports['Fortran - Punchcard'] = exports['Fortran - Fixed Form'] diff --git a/lib/grammars/haskell.coffee b/lib/grammars/haskell.coffee new file mode 100644 index 00000000..ace95ab9 --- /dev/null +++ b/lib/grammars/haskell.coffee @@ -0,0 +1,11 @@ +exports.Haskell = + 'Selection Based': + command: 'ghc' + args: (context) -> ['-e', context.getCode()] + + 'File Based': + command: 'runhaskell' + args: ({filepath}) -> [filepath] + +exports['Literate Haskell'] = + 'File Based': exports.Haskell['File Based'] diff --git a/lib/grammars/index.coffee b/lib/grammars/index.coffee new file mode 100644 index 00000000..f09c171a --- /dev/null +++ b/lib/grammars/index.coffee @@ -0,0 +1,315 @@ +# Maps Atom Grammar names to the command used by that language +# As well as any special setup for arguments. + +path = require 'path' +{OperatingSystem} = GrammarUtils = require '../grammar-utils' + +os = OperatingSystem.platform() +windows = OperatingSystem.isWindows() + +module.exports = + '1C (BSL)': + 'File Based': + command: 'oscript' + args: ({filepath}) -> ['-encoding=utf-8', filepath] + + Ansible: + 'File Based': + command: 'ansible-playbook' + args: ({filepath}) -> [filepath] + + Clojure: + 'Selection Based': + command: 'lein' + args: (context) -> ['exec', '-e', context.getCode()] + 'File Based': + command: 'lein' + args: ({filepath}) -> ['exec', filepath] + + Crystal: + 'Selection Based': + command: 'crystal' + args: (context) -> ['eval', context.getCode()] + 'File Based': + command: 'crystal' + args: ({filepath}) -> [filepath] + + D: + 'Selection Based': + command: 'rdmd' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.D.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'rdmd' + args: ({filepath}) -> [filepath] + + Elixir: + 'Selection Based': + command: 'elixir' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'elixir' + args: ({filepath}) -> ['-r', filepath] + + Erlang: + 'Selection Based': + command: 'erl' + args: (context) -> ['-noshell', '-eval', "#{context.getCode()}, init:stop()."] + + 'F*': + 'File Based': + command: 'fstar' + args: ({filepath}) -> [filepath] + + 'F#': + 'File Based': + command: if windows then 'fsi' else 'fsharpi' + args: ({filepath}) -> ['--exec', filepath] + + Forth: + 'File Based': + command: 'gforth' + args: ({filepath}) -> [filepath] + + Gherkin: + 'File Based': + command: 'cucumber' + args: ({filepath}) -> ['--color', filepath] + 'Line Number Based': + command: 'cucumber' + args: (context) -> ['--color', context.fileColonLine()] + + Go: + 'File Based': + command: 'go' + workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() + args: ({filepath}) -> + if filepath.match(/_test.go/) then ['test', ''] + else ['run', filepath] + + Groovy: + 'Selection Based': + command: 'groovy' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'groovy' + args: ({filepath}) -> [filepath] + + Hy: + 'Selection Based': + command: 'hy' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.hy') + return [tmpFile] + 'File Based': + command: 'hy' + args: ({filepath}) -> [filepath] + + Idris: + 'File Based': + command: 'idris' + args: ({filepath}) -> [filepath, '-o', path.basename(filepath, path.extname(filepath))] + + InnoSetup: + 'File Based': + command: 'ISCC.exe' + args: ({filepath}) -> ['/Q', filepath] + + ioLanguage: + 'Selection Based': + command: 'io' + args: (context) -> [context.getCode()] + 'File Based': + command: 'io' + args: ({filepath}) -> ['-e', filepath] + + Jolie: + 'File Based': + command: 'jolie' + args: ({filepath}) -> [filepath] + + Julia: + 'Selection Based': + command: 'julia' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'julia' + args: ({filepath}) -> [filepath] + + LAMMPS: + if os in ['darwin', 'linux'] + 'File Based': + command: 'lammps' + args: ({filepath}) -> ['-log', 'none', '-in', filepath] + + LilyPond: + 'File Based': + command: 'lilypond' + args: ({filepath}) -> [filepath] + + LiveScript: + 'Selection Based': + command: 'lsc' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'lsc' + args: ({filepath}) -> [filepath] + + Makefile: + 'Selection Based': + command: 'bash' + args: (context) -> ['-c', context.getCode()] + 'File Based': + command: 'make' + args: ({filepath}) -> ['-f', filepath] + + MATLAB: + 'Selection Based': + command: 'matlab' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) + return ['-nodesktop', '-nosplash', '-r', "try, run('#{tmpFile}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] + 'File Based': + command: 'matlab' + args: ({filepath}) -> ['-nodesktop', '-nosplash', '-r', "try run('#{filepath}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] + + 'MIPS Assembler': + 'File Based': + command: 'spim' + args: ({filepath}) -> ['-f', filepath] + + NCL: + 'Selection Based': + command: 'ncl' + args: (context) -> + code = context.getCode() + '\n\nexit' + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'ncl' + args: ({filepath}) -> [filepath] + + Nim: + 'File Based': + command: 'bash' + args: ({filepath}) -> + file = GrammarUtils.Nim.findNimProjectFile(filepath) + path = GrammarUtils.Nim.projectDir(filepath) + return ['-c', "cd '#{path}' && nim c --hints:off --parallelBuild:1 -r '#{file}' 2>&1"] + + NSIS: + 'Selection Based': + command: 'makensis' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'makensis' + args: ({filepath}) -> [filepath] + + Octave: + 'Selection Based': + command: 'octave' + args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), '--eval', context.getCode()] + 'File Based': + command: 'octave' + args: ({filepath}) -> ['-p', filepath.replace(/[^\/]*$/, ''), filepath] + + Oz: + 'Selection Based': + command: 'ozc' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return ['-c', tmpFile] + 'File Based': + command: 'ozc' + args: ({filepath}) -> ['-c', filepath] + + Pascal: + 'Selection Based': + command: 'fsc' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'fsc' + args: ({filepath}) -> [filepath] + + Prolog: + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "cd '" + filepath.replace(/[^\/]*$/, '') + "'; swipl -f '#{filepath}' -t main --quiet"] + + PureScript: + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath}) -> + filepath = filepath.replace(/[^\/]*$/, '') + command = "cd '#{filepath}' && pulp run" + if windows then ["/c #{command}"] else ['-c', command] + + R: + 'Selection Based': + command: 'Rscript' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.R.createTempFileWithCode(code) + return [tmpFile] + 'File Based': + command: 'Rscript' + args: ({filepath}) -> [filepath] + + Racket: + 'Selection Based': + command: 'racket' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'racket' + args: ({filepath}) -> [filepath] + + "Ren'Py": + 'File Based': + command: 'renpy' + args: ({filepath}) -> [filepath.substr(0, filepath.lastIndexOf('/game'))] + + 'Robot Framework': + 'File Based': + command: 'robot' + args: ({filepath}) -> [filepath] + + Rust: + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath, filename}) -> + progname = filename.replace /\.rs$/, '' + if windows + return ["/c rustc #{filepath} && #{progname}.exe"] + else ['-c', "rustc '#{filepath}' -o /tmp/rs.out && /tmp/rs.out"] + + Scala: + 'Selection Based': + command: 'scala' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'scala' + args: ({filepath}) -> [filepath] + + Stata: + 'Selection Based': + command: 'stata' + args: (context) -> ['do', context.getCode()] + 'File Based': + command: 'stata' + args: ({filepath}) -> ['do', filepath] + + Turing: + 'File Based': + command: 'turing' + args: ({filepath}) -> ['-run', filepath] diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee new file mode 100644 index 00000000..144003da --- /dev/null +++ b/lib/grammars/java.coffee @@ -0,0 +1,39 @@ +GrammarUtils = require '../grammar-utils' + +windows = GrammarUtils.OperatingSystem.isWindows() + +module.exports = + + Java: + 'File Based': + command: if windows then 'cmd' else 'bash' + args: (context) -> + className = GrammarUtils.Java.getClassName context + classPackages = GrammarUtils.Java.getClassPackage context + sourcePath = GrammarUtils.Java.getProjectPath context + if windows + return ["/c javac -Xlint '#{context.filename}' && java #{className}"] + else ['-c', "javac -sourcepath #{sourcePath} -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] + + Kotlin: + 'Selection Based': + command: 'bash' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.kt') + jarName = tmpFile.replace /\.kt$/, '.jar' + return ['-c', "kotlinc #{tmpFile} -include-runtime -d #{jarName} && java -jar #{jarName}"] + + 'File Based': + command: 'bash' + args: ({filepath, filename}) -> + jarName = filename.replace /\.kt$/, '.jar' + return ['-c', "kotlinc '#{filepath}' -include-runtime -d /tmp/#{jarName} && java -jar /tmp/#{jarName}"] + + Processing: + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filepath, filename}) -> + if windows + return ['/c processing-java --sketch=' + filepath.replace("\\#{filename}", '') + ' --run'] + else ['-c', 'processing-java --sketch=' + filepath.replace("/#{filename}", '') + ' --run'] diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js new file mode 100644 index 00000000..a6b9928c --- /dev/null +++ b/lib/grammars/javascript.js @@ -0,0 +1,70 @@ +'use babel'; + +import GrammarUtils from '../grammar-utils'; + +export default { + 'Babel ES6 JavaScript': { + 'Selection Based': { + command: 'babel-node', + args: context => ['-e', context.getCode()], + }, + 'File Based': { + command: 'babel-node', + args: context => [context.filepath], + }, + }, + Dart: { + 'Selection Based': { + command: 'dart', + args: (context) => { + const code = context.getCode(); + const tmpFile = GrammarUtils.createTempFileWithCode(code, '.dart'); + return [tmpFile]; + }, + }, + 'File Based': { + command: 'dart', + args: ({ filepath }) => [filepath], + }, + }, + JavaScript: { + 'Selection Based': { + command: 'babel-node', + args: context => ['-e', context.getCode()], + }, + 'File Based': { + command: 'babel-node', + args: ({ filepath }) => [filepath], + }, + }, + 'JavaScript for Automation (JXA)': { + 'Selection Based': { + command: 'osascript', + args: context => ['-l', 'JavaScript', '-e', context.getCode()], + }, + 'File Based': { + command: 'osascript', + args: ({ filepath }) => ['-l', 'JavaScript', filepath], + }, + }, + 'JavaScript with JSX': { + 'Selection Based': { + command: 'babel-node', + args: context => ['-e', context.getCode()], + }, + 'File Based': { + command: 'babel-node', + args: ({ filepath }) => [filepath], + }, + }, + TypeScript: { + 'Selection Based': { + command: 'ts-node', + args: context => ['-e', context.getCode()], + }, + 'File Based': { + command: 'ts-node', + args: ({ filepath }) => [filepath], + }, + }, +}; diff --git a/lib/grammars/lisp.coffee b/lib/grammars/lisp.coffee new file mode 100644 index 00000000..b00fe5fd --- /dev/null +++ b/lib/grammars/lisp.coffee @@ -0,0 +1,36 @@ +_ = require 'underscore' +GrammarUtils = require '../grammar-utils' + +module.exports = + + 'Common Lisp': + 'File Based': + command: 'clisp' + args: ({filepath}) -> [filepath] + + Lisp: + 'Selection Based': + command: 'sbcl' + args: (context) -> + statements = _.flatten(_.map(GrammarUtils.Lisp.splitStatements(context.getCode()), (statement) -> ['--eval', statement])) + return _.union ['--noinform', '--disable-debugger', '--non-interactive', '--quit'], statements + + 'File Based': + command: 'sbcl' + args: ({filepath}) -> ['--noinform', '--script', filepath] + + newLISP: + 'Selection Based': + command: 'newlisp' + args: (context) -> ['-e', context.getCode()] + 'File Based': + command: 'newlisp' + args: ({filepath}) -> [filepath] + + Scheme: + 'Selection Based': + command: 'guile' + args: (context) -> ['-c', context.getCode()] + 'File Based': + command: 'guile' + args: ({filepath}) -> [filepath] diff --git a/lib/grammars/lua.coffee b/lib/grammars/lua.coffee new file mode 100644 index 00000000..0ef07f45 --- /dev/null +++ b/lib/grammars/lua.coffee @@ -0,0 +1,24 @@ +GrammarUtils = require '../grammar-utils' + +exports.Lua = + 'Selection Based': + command: 'lua' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'lua' + args: ({filepath}) -> [filepath] + +exports['Lua (WoW)'] = exports.Lua + +exports.MoonScript = + 'Selection Based': + command: 'moon' + args: (context) -> ['-e', context.getCode()] + + 'File Based': + command: 'moon' + args: ({filepath}) -> [filepath] diff --git a/lib/grammars/ml.coffee b/lib/grammars/ml.coffee new file mode 100644 index 00000000..52973f6e --- /dev/null +++ b/lib/grammars/ml.coffee @@ -0,0 +1,30 @@ +GrammarUtils = require '../grammar-utils' + +windows = GrammarUtils.OperatingSystem.isWindows() + +module.exports = + + BuckleScript: + 'Selection Based': + command: 'bsc' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return ['-c', tmpFile] + + 'File Based': + command: 'bsc' + args: ({filepath}) -> ['-c', filepath] + + OCaml: + 'File Based': + command: 'ocaml' + args: ({filepath}) -> [filepath] + + Reason: + 'File Based': + command: if windows then 'cmd' else 'bash' + args: ({filename}) -> + progname = filename.replace /\.re$/, '' + command = "rebuild '#{progname}.native' && '#{progname}.native'" + if windows then ["/c #{command}"] else ['-c', command] diff --git a/lib/grammars/perl.coffee b/lib/grammars/perl.coffee new file mode 100644 index 00000000..585c127b --- /dev/null +++ b/lib/grammars/perl.coffee @@ -0,0 +1,24 @@ +GrammarUtils = require '../grammar-utils' + +exports.Perl = + 'Selection Based': + command: 'perl' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'perl' + args: ({filepath}) -> [filepath] + +exports['Perl 6'] = + 'Selection Based': + command: 'perl6' + args: (context) -> ['-e', context.getCode()] + + 'File Based': + command: 'perl6' + args: ({filepath}) -> [filepath] + +exports['Perl 6 FE'] = exports['Perl 6'] diff --git a/lib/grammars/php.coffee b/lib/grammars/php.coffee new file mode 100644 index 00000000..21d65823 --- /dev/null +++ b/lib/grammars/php.coffee @@ -0,0 +1,25 @@ +GrammarUtils = require '../grammar-utils' + +module.exports = + + 'Behat Feature': + + 'File Based': + command: 'behat' + args: ({filepath}) -> [filepath] + + 'Line Number Based': + command: 'behat' + args: (context) -> [context.fileColonLine()] + + PHP: + 'Selection Based': + command: 'php' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.PHP.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'php' + args: ({filepath}) -> [filepath] diff --git a/lib/grammars/python.coffee b/lib/grammars/python.coffee new file mode 100644 index 00000000..e1f116e6 --- /dev/null +++ b/lib/grammars/python.coffee @@ -0,0 +1,19 @@ +exports.Python = + 'Selection Based': + command: 'python' + args: (context) -> ['-u', '-c', context.getCode()] + + 'File Based': + command: 'python' + args: ({filepath}) -> ['-u', filepath] + +exports.MagicPython = exports.Python + +exports.Sage = + 'Selection Based': + command: 'sage' + args: (context) -> ['-c', context.getCode()] + + 'File Based': + command: 'sage' + args: ({filepath}) -> [filepath] diff --git a/lib/grammars/ruby.coffee b/lib/grammars/ruby.coffee new file mode 100644 index 00000000..b8b2e4ef --- /dev/null +++ b/lib/grammars/ruby.coffee @@ -0,0 +1,33 @@ +module.exports = + + RSpec: + 'Selection Based': + command: 'ruby' + args: (context) -> ['-e', context.getCode()] + + 'File Based': + command: 'rspec' + args: ({filepath}) -> ['--tty', '--color', filepath] + + 'Line Number Based': + command: 'rspec' + args: (context) -> ['--tty', '--color', context.fileColonLine()] + + Ruby: + 'Selection Based': + command: 'ruby' + args: (context) -> ['-e', context.getCode()] + + 'File Based': + command: 'ruby' + args: ({filepath}) -> [filepath] + + 'Ruby on Rails': + + 'Selection Based': + command: 'rails' + args: (context) -> ['runner', context.getCode()] + + 'File Based': + command: 'rails' + args: ({filepath}) -> ['runner', filepath] diff --git a/lib/grammars/shell.coffee b/lib/grammars/shell.coffee new file mode 100644 index 00000000..216196d1 --- /dev/null +++ b/lib/grammars/shell.coffee @@ -0,0 +1,46 @@ +GrammarUtils = require '../grammar-utils' + +module.exports = + + 'Bash Automated Test System (Bats)': + + 'Selection Based': + command: 'bats' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'bats' + args: ({filepath}) -> [filepath] + + 'Shell Script': + 'Selection Based': + command: process.env.SHELL + args: (context) -> ['-c', context.getCode()] + + 'File Based': + command: process.env.SHELL + args: ({filepath}) -> [filepath] + + 'Shell Script (Fish)': + 'Selection Based': + command: 'fish' + args: (context) -> ['-c', context.getCode()] + + 'File Based': + command: 'fish' + args: ({filepath}) -> [filepath] + + Tcl: + 'Selection Based': + command: 'tclsh' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'tclsh' + args: ({filepath}) -> [filepath] diff --git a/lib/grammars/windows.coffee b/lib/grammars/windows.coffee new file mode 100644 index 00000000..7965fa8a --- /dev/null +++ b/lib/grammars/windows.coffee @@ -0,0 +1,43 @@ +GrammarUtils = require '../grammar-utils' + +#if GrammarUtils.OperatingSystem.isWindows() + +exports.AutoHotKey = + 'Selection Based': + command: 'AutoHotKey' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'AutoHotKey' + args: ({filepath}) -> [filepath] + +exports.Batch = + 'File Based': + command: 'cmd.exe' + args: ({filepath}) -> ['/q', '/c', filepath] + +exports['Batch File'] = exports.Batch + +exports.PowerShell = + 'Selection Based': + command: 'powershell' + args: (context) -> [context.getCode()] + + 'File Based': + command: 'powershell' + args: ({filepath}) -> [filepath.replace /\ /g, '` '] + +exports.VBScript = + 'Selection Based': + command: 'cscript' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.vbs') + return ['//NOLOGO', tmpFile] + + 'File Based': + command: 'cscript' + args: ({filepath}) -> ['//NOLOGO', filepath] diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 01fc408b..d7ca9705 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -3,7 +3,7 @@ /* eslint-disable no-unused-vars, global-require, no-undef */ import CodeContext from '../lib/code-context'; import OperatingSystem from '../lib/grammar-utils/operating-system'; -import grammarMap from '../lib/grammars.coffee'; +import grammarMap from '../lib/grammars'; describe('grammarMap', () => { beforeEach(() => { @@ -30,8 +30,10 @@ describe('grammarMap', () => { beforeEach(() => { this.originalPlatform = OperatingSystem.platform; this.reloadGrammar = () => { - delete require.cache[require.resolve('../lib/grammars.coffee')]; - this.grammarMap = require('../lib/grammars.coffee'); + delete require.cache[require.resolve('../lib/grammars')]; + delete require.cache[require.resolve('../lib/grammars/index')]; + delete require.cache[require.resolve('../lib/grammars/c')]; + this.grammarMap = require('../lib/grammars'); }; }); From 3c5cccabab0090b0177784ed007e8f9b065c263f Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 10 Oct 2017 16:12:46 +0100 Subject: [PATCH 194/410] Fix CoffeeScript run Always run in the context of this package, to utilise the preconfigured Babel setup, but without altering the CWD. Builds on #1426. --- examples/v2.litcoffee | 2 +- lib/grammars/coffeescript.coffee | 46 +++++++++++++++++--------------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/examples/v2.litcoffee b/examples/v2.litcoffee index d727a8fa..573538ec 100644 --- a/examples/v2.litcoffee +++ b/examples/v2.litcoffee @@ -11,7 +11,7 @@ This is a [_literate_] CoffeeScript file, written in Markdown. setTimeout resolve, s * 1000 # ms sleep = (s, message) => - console.log "Awaiting Promise…" # This selected line should run. + console.log "Awaiting Promise…" # This [whole] selected line should run. await timeout s console.log message diff --git a/lib/grammars/coffeescript.coffee b/lib/grammars/coffeescript.coffee index 6bb243f9..aff24256 100644 --- a/lib/grammars/coffeescript.coffee +++ b/lib/grammars/coffeescript.coffee @@ -1,29 +1,31 @@ -module.exports = +path = require 'path' +GrammarUtils = require '../grammar-utils' - CoffeeScript: - 'Selection Based': - command: 'coffee' - args: (context) -> ['--transpile', '-e', context.getCode()] +bin = path.join __dirname, '../..', 'node_modules', '.bin' +coffee = path.join bin, 'coffee' +babel = path.join bin, 'babel' - 'File Based': - command: 'coffee' - args: ({filepath}) -> ['-t', filepath] +args = ({filepath}) -> ['-c', "'#{coffee}' -p '#{filepath}'|'#{babel}' --filename '#{bin}'| node"] - 'CoffeeScript (Literate)': +exports.CoffeeScript = + 'Selection Based': + command: 'bash' + args: (context) -> + {scopeName} = atom.workspace.getActiveTextEditor()?.getGrammar() + lit = if scopeName?.includes 'lit' then 'lit' else '' + code = context.getCode() + filepath = GrammarUtils.createTempFileWithCode(code, ".#{lit}coffee") + return args({filepath}) - 'Selection Based': - command: 'coffee' - args: (context) -> ['-t', '-e', context.getCode()] + 'File Based': { command: 'bash', args } - 'File Based': - command: 'coffee' - args: ({filepath}) -> ['-t', filepath] +exports['CoffeeScript (Literate)'] = exports.CoffeeScript - IcedCoffeeScript: - 'Selection Based': - command: 'iced' - args: (context) -> ['-e', context.getCode()] +exports.IcedCoffeeScript = + 'Selection Based': + command: 'iced' + args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'iced' - args: ({filepath}) -> [filepath] + 'File Based': + command: 'iced' + args: ({filepath}) -> [filepath] From fc84ded7dad08466923071e6d6e4370aa6a36789 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 10 Oct 2017 16:22:52 +0100 Subject: [PATCH 195/410] Fix JavaScript runs Always run in the context of this package, to utilise the preconfigured Babel setup, but without altering the CWD. Builds on #1427 and fixes #1436. --- lib/grammars/javascript.js | 101 ++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 57 deletions(-) diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index a6b9928c..6f2b43b6 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -1,70 +1,57 @@ 'use babel'; +import path from 'path'; import GrammarUtils from '../grammar-utils'; -export default { - 'Babel ES6 JavaScript': { - 'Selection Based': { - command: 'babel-node', - args: context => ['-e', context.getCode()], - }, - 'File Based': { - command: 'babel-node', - args: context => [context.filepath], +const babel = path.join(__dirname, '../..', 'node_modules', '.bin', 'babel'); + +const args = ({ filepath }) => ['-c', `${babel} --filename '${babel}' < '${filepath}'| node`]; + +exports.Dart = { + 'Selection Based': { + command: 'dart', + args: (context) => { + const code = context.getCode(); + const tmpFile = GrammarUtils.createTempFileWithCode(code, '.dart'); + return [tmpFile]; }, }, - Dart: { - 'Selection Based': { - command: 'dart', - args: (context) => { - const code = context.getCode(); - const tmpFile = GrammarUtils.createTempFileWithCode(code, '.dart'); - return [tmpFile]; - }, - }, - 'File Based': { - command: 'dart', - args: ({ filepath }) => [filepath], - }, + 'File Based': { + command: 'dart', + args: ({ filepath }) => [filepath], }, - JavaScript: { - 'Selection Based': { - command: 'babel-node', - args: context => ['-e', context.getCode()], - }, - 'File Based': { - command: 'babel-node', - args: ({ filepath }) => [filepath], +}; +exports.JavaScript = { + 'Selection Based': { + command: 'bash', + args: (context) => { + const code = context.getCode(); + const filepath = GrammarUtils.createTempFileWithCode(code, '.js'); + return args({ filepath }); }, }, - 'JavaScript for Automation (JXA)': { - 'Selection Based': { - command: 'osascript', - args: context => ['-l', 'JavaScript', '-e', context.getCode()], - }, - 'File Based': { - command: 'osascript', - args: ({ filepath }) => ['-l', 'JavaScript', filepath], - }, + 'File Based': { command: 'bash', args }, +}; +exports['Babel ES6 JavaScript'] = exports.JavaScript; +exports['JavaScript with JSX'] = exports.JavaScript; + +exports['JavaScript for Automation (JXA)'] = { + 'Selection Based': { + command: 'osascript', + args: context => ['-l', 'JavaScript', '-e', context.getCode()], }, - 'JavaScript with JSX': { - 'Selection Based': { - command: 'babel-node', - args: context => ['-e', context.getCode()], - }, - 'File Based': { - command: 'babel-node', - args: ({ filepath }) => [filepath], - }, + 'File Based': { + command: 'osascript', + args: ({ filepath }) => ['-l', 'JavaScript', filepath], }, - TypeScript: { - 'Selection Based': { - command: 'ts-node', - args: context => ['-e', context.getCode()], - }, - 'File Based': { - command: 'ts-node', - args: ({ filepath }) => [filepath], - }, +}; +exports.TypeScript = { + 'Selection Based': { + command: 'ts-node', + args: context => ['-e', context.getCode()], + }, + 'File Based': { + command: 'ts-node', + args: ({ filepath }) => [filepath], }, }; From c409192a49e30b42b6c0553c5b346ce3a7879a8b Mon Sep 17 00:00:00 2001 From: Deiwin Sarjas Date: Tue, 10 Oct 2017 19:37:45 +0300 Subject: [PATCH 196/410] Fix and improve quote support in Run Options (#1424) * Fix using quotes in Run Options Currently, whenever Command Arguments or Program Arguments contain quotes in the Run Options dialog, then the script blows up with a "Uncaught TypeError: Cannot read property 'concat' of undefined". Commit 668057c ("Make linter happy and fix convert errors", 2016-12-05) changed `(matches != null) ? matches : []` to `!matches ? matches : []`, which reverses the original meaning. This only causes errors when the string contains quotes, because there's an early return in this function. Fixes #1339. * Test argument splitting PR #742, that changed the logic from the simple "split on space" logic to the current version, mentions these cases as the ones that were tested with this implementation. Add tests to guarantee behavior remains the same for these cases. * Allow using nested quotes and parentheses in Run Options These changes allow using the expression shown in the added test, which allows running racket scripts. This usage differs from the default racket behavior, because this also outputs the return value of the script. The change to `matches` creation uses a regex backreference and the lazy (non-greedy) quantifier to only match outer quotes. So whereas the current version would've matched both `"{FILE_ACTIVE}"` and `'(load "{FILE_ACTIVE}")'`, then the new version only matches the outer quotes. The following code then broke with the previous version, trying to match and replace both of these overlapping instances. The `args.replace` change was necessary, because otherwise the argument was used as regex, and any parentheses and other regex operators were not being escaped. Using simple substring replacing instead avoids the need to escape special characters. The last change avoids removing all quotes from the arguments and instead only replaces matching quotes that are at the beginning and end of the argument. I'm not sure if the "strips quotes from argument values" cases were actually useful in any situation or the behavior was simply incidental. Currently removed support for that behavior. If this behavior turns out to be necessary, then separate handling should be added for it. * Simplify and improve argument splitting logic Instead of multiple back and forth replacements, this uses a single regex to find the arguments and simply adds them together while looping over the provided text. As far as I can tell, this now behaves exactly like most shells do. Except for escaped quotes. This does not support escaping quotes. This re-adds support for the "strips quotes from argument values" tests that was removed in the previous commit c4c48cb ("Allow using nested quotes and parentheses in Run Options", 2017-09-17). --- lib/script-options-view.js | 64 ++++++++++++------------------ spec/script-options-view-spec.js | 67 ++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 40 deletions(-) create mode 100644 spec/script-options-view-spec.js diff --git a/lib/script-options-view.js b/lib/script-options-view.js index a85871b9..158a52ba 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -87,55 +87,39 @@ export default class ScriptOptionsView extends View { this.panel.hide(); } - splitArgs(element) { - let args = element.get(0).getModel().getText().trim(); - - if (args.indexOf('"') === -1 && args.indexOf("'") === -1) { - // no escaping, just split - return (args.split(' ').filter(item => item !== '').map(item => item)); - } - - const replaces = {}; - - const regexps = [/"[^"]*"/ig, /'[^']*'/ig]; - - let matches; - // find strings in arguments - regexps.forEach((regex) => { - matches = (!matches ? matches : []).concat((args.match(regex)) || []); - }); - - // format replacement as bash comment to avoid replacing valid input - matches.forEach((match) => { - replaces[`\`#match${Object.keys(replaces).length + 1}\``] = match; - }); - - // replace strings - for (const match in replaces) { - const part = replaces[match]; - args = args.replace(new RegExp(part, 'g'), match); - } - const split = (args.split(' ').filter(item => item !== '').map(item => item)); - - const replacer = (argument) => { - for (const match in replaces) { - const replacement = replaces[match]; - argument = argument.replace(match, replacement); + static splitArgs(argText) { + const text = argText.trim(); + const argSubstringRegex = /([^'"\s]+)|((["'])(.*?)\3)/g; + const args = []; + let lastMatchEndPosition = -1; + let match = argSubstringRegex.exec(text); + while (match !== null) { + const matchWithoutQuotes = match[1] || match[4]; + // Combine current result with last match, if last match ended where this + // one begins. + if (lastMatchEndPosition === match.index) { + args[args.length - 1] += matchWithoutQuotes; + } else { + args.push(matchWithoutQuotes); } - return argument; - }; - // restore strings, strip quotes - return split.map(argument => replacer(argument).replace(/"|'/g, '')); + lastMatchEndPosition = argSubstringRegex.lastIndex; + match = argSubstringRegex.exec(text); + } + return args; } getOptions() { return { workingDirectory: this.inputCwd.get(0).getModel().getText(), cmd: this.inputCommand.get(0).getModel().getText(), - cmdArgs: this.splitArgs(this.inputCommandArgs), + cmdArgs: this.constructor.splitArgs( + this.inputCommandArgs.get(0).getModel().getText(), + ), env: this.inputEnv.get(0).getModel().getText(), - scriptArgs: this.splitArgs(this.inputScriptArgs), + scriptArgs: this.constructor.splitArgs( + this.inputScriptArgs.get(0).getModel().getText(), + ), }; } diff --git a/spec/script-options-view-spec.js b/spec/script-options-view-spec.js new file mode 100644 index 00000000..552b77c1 --- /dev/null +++ b/spec/script-options-view-spec.js @@ -0,0 +1,67 @@ +'use babel'; + +/* eslint-disable no-underscore-dangle */ +import ScriptOptionsView from '../lib/script-options-view'; + +describe('ScriptOptionsView', () => { + describe('splitArgs', () => { + [{ + text: '', + expectedArgs: [], + description: 'returns an empty array for empty string', + }, { + text: ' \t\n', + expectedArgs: [], + description: 'returns an empty array for just whitespace', + }, { + text: 'arg1 arg2', + expectedArgs: ['arg1', 'arg2'], + description: 'splits arguments on whitespace', + }, { + text: 'arg1=val1 arg2', + expectedArgs: ['arg1=val1', 'arg2'], + description: 'keeps argument values', + }, { + text: '"foo bar" arg2', + expectedArgs: ['foo bar', 'arg2'], + description: 'does not split quoted arguments on whitespace', + }, { + text: '\'foo bar\' arg2', + expectedArgs: ['foo bar', 'arg2'], + description: 'recognizes single quotes', + }, { + text: '"foo bar" "another string"', + expectedArgs: ['foo bar', 'another string'], + description: 'handles multiple quoted arguments', + }, { + text: '\'foo bar\' \'another string\'', + expectedArgs: ['foo bar', 'another string'], + description: 'handles multiple single quoted arguments', + }, { + text: '"foo bar" \'another string\'', + expectedArgs: ['foo bar', 'another string'], + description: 'handles multiple quoted arguments, with mixed single and double quotes', + }, { + text: 'arg1="foo bar"', + expectedArgs: ['arg1=foo bar'], + description: 'strips quotes from argument values', + }, { + text: 'arg1=\'foo bar\'', + expectedArgs: ['arg1=foo bar'], + description: 'strips single quotes from argument values', + }, { + text: '-e \'(load "{FILE_ACTIVE}")\'', + expectedArgs: ['-e', '(load "{FILE_ACTIVE}")'], + description: 'keeps nested quotes intact', + }, { + text: 'we"ird way to inc"l"ude spaces in arg"s', + expectedArgs: ['weird way to include spaces in args'], + description: 'supports multiple top level quotes', + }].forEach(({ text, expectedArgs, description }) => { + it(description, () => { + const args = ScriptOptionsView.splitArgs(text); + expect(args).toEqual(expectedArgs); + }); + }); + }); +}); From a4b4d5191886d1e51f5035c7d1b6f174230d466b Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 10 Oct 2017 18:13:54 +0100 Subject: [PATCH 197/410] Prepare 3.17.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c25888c5..808c313b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.16.0", + "version": "3.17.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 586090f1c9886a652709647d93083e3f286eaf8c Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 10 Oct 2017 18:21:09 +0100 Subject: [PATCH 198/410] Fix potential path to babel issue Fix potential issue when the ATOM_HOME path contains spaces. --- lib/grammars/javascript.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index 6f2b43b6..154e7e68 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -5,7 +5,7 @@ import GrammarUtils from '../grammar-utils'; const babel = path.join(__dirname, '../..', 'node_modules', '.bin', 'babel'); -const args = ({ filepath }) => ['-c', `${babel} --filename '${babel}' < '${filepath}'| node`]; +const args = ({ filepath }) => ['-c', `'${babel}' --filename '${babel}' < '${filepath}'| node`]; exports.Dart = { 'Selection Based': { From ce003f56dd04ccd22e331f8e2f113848ac3a241d Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 11 Oct 2017 02:02:18 +0100 Subject: [PATCH 199/410] Prepare 3.17.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 808c313b..d185d45e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.17.0", + "version": "3.17.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 202b6a3e5fe9e9a098377df74d8f972426f9bc11 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Fri, 13 Oct 2017 02:46:34 +0100 Subject: [PATCH 200/410] Improve support for Windows (#1451) --- lib/grammar-utils.js | 11 +++++ lib/grammars/c.coffee | 77 ++++++++++++++++++-------------- lib/grammars/coffeescript.coffee | 14 +++--- lib/grammars/fortran.coffee | 23 ++++++---- lib/grammars/index.coffee | 55 ++++++++++++----------- lib/grammars/java.coffee | 40 ++++++++--------- lib/grammars/javascript.js | 12 ++--- lib/grammars/ml.coffee | 12 ++--- 8 files changed, 140 insertions(+), 104 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 36399ddc..07f05425 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -50,6 +50,17 @@ export default { } }, + // Public: Returns cmd or bash, depending on the current OS + command: os.platform() === 'win32' ? 'cmd' : 'bash', + + // Public: Format args for cmd or bash, depending on the current OS + formatArgs(command) { + if (os.platform() === 'win32') { + return [`/c ${command.replace(/['"]/g, '')}`]; + } + return ['-c', command]; + }, + /* eslint-disable global-require */ // Public: Get the Java helper object // diff --git a/lib/grammars/c.coffee b/lib/grammars/c.coffee index 30316eaa..ed2d5c40 100644 --- a/lib/grammars/c.coffee +++ b/lib/grammars/c.coffee @@ -1,18 +1,28 @@ path = require 'path' -{OperatingSystem} = GrammarUtils = require '../grammar-utils' +{OperatingSystem, command} = GrammarUtils = require '../grammar-utils' os = OperatingSystem.platform() windows = OperatingSystem.isWindows() +options = '-Wall -include stdio.h' + +args = ({filepath}) -> + args = switch os + when 'darwin' + "xcrun clang #{options} -fcolor-diagnostics '#{filepath}' -o /tmp/c.out && /tmp/c.out" + when 'linux' + "cc #{options} '#{filepath}' -o /tmp/c.out && /tmp/c.out" + return ['-c', args] + exports.C = 'File Based': command: 'bash' args: ({filepath}) -> args = switch os when 'darwin' - "xcrun clang -fcolor-diagnostics -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" + "xcrun clang #{options} -fcolor-diagnostics '#{filepath}' -o /tmp/c.out && /tmp/c.out" when 'linux' - "cc -Wall -include stdio.h '#{filepath}' -o /tmp/c.out && /tmp/c.out" + "cc #{options} '#{filepath}' -o /tmp/c.out && /tmp/c.out" return ['-c', args] 'Selection Based': @@ -22,30 +32,30 @@ exports.C = tmpFile = GrammarUtils.createTempFileWithCode(code, '.c') args = switch os when 'darwin' - "xcrun clang -fcolor-diagnostics -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" + "xcrun clang #{options} -fcolor-diagnostics #{tmpFile} -o /tmp/c.out && /tmp/c.out" when 'linux' - "cc -Wall -include stdio.h #{tmpFile} -o /tmp/c.out && /tmp/c.out" + "cc #{options} #{tmpFile} -o /tmp/c.out && /tmp/c.out" return ['-c', args] exports['C#'] = - 'Selection Based': - command: if windows then 'cmd' else 'bash' + 'Selection Based': { + command args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code, '.cs') - progname = tmpFile.replace /\.cs$/, '' + exe = tmpFile.replace /\.cs$/, '.exe' if windows - return ["/c csc /out:#{progname}.exe #{tmpFile} && #{progname}.exe"] - else ['-c', "csc /out:#{progname}.exe #{tmpFile} && mono #{progname}.exe"] - - 'File Based': - command: if windows then 'cmd' else 'bash' + return ["/c csc /out:#{exe} #{tmpFile} && #{exe}"] + else ['-c', "csc /out:#{exe} #{tmpFile} && mono #{exe}"] + } + 'File Based': { + command args: ({filepath, filename}) -> - progname = filename.replace /\.cs$/, '' + exe = filename.replace /\.cs$/, '.exe' if windows - return ["/c csc #{filepath} && #{progname}.exe"] - else ['-c', "csc '#{filepath}' && mono #{progname}.exe"] - + return ["/c csc #{filepath} && #{exe}"] + else ['-c', "csc '#{filepath}' && mono #{exe}"] + } exports['C# Script File'] = 'Selection Based': @@ -66,35 +76,34 @@ exports['C++'] = tmpFile = GrammarUtils.createTempFileWithCode(code, '.cpp') args = switch os when 'darwin' - "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + "xcrun clang++ -std=c++14 #{options} -fcolor-diagnostics -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" when 'linux' - "g++ -std=c++14 -Wall -include stdio.h -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" + "g++ #{options} -std=c++14 -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" return ['-c', args] - 'File Based': - command: 'bash' + 'File Based': { + command args: ({filepath}) -> args = switch os when 'darwin' - "xcrun clang++ -fcolor-diagnostics -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + "xcrun clang++ -std=c++14 #{options} -fcolor-diagnostics -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" when 'linux' - "g++ -std=c++14 -Wall -include stdio.h -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" + "g++ -std=c++14 #{options} -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" when 'win32' if GrammarUtils.OperatingSystem.release().split('.').slice -1 >= '14399' filepath = path.posix.join.apply(path.posix, [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1))).replace(':', '') - "g++ -std=c++14 -Wall -include stdio.h -include iostream '/mnt/#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - return ['-c', args] - + "g++ -std=c++14 #{options} -include iostream /mnt/#{filepath} -o /tmp/cpp.out && /tmp/cpp.out" + return GrammarUtils.formatArgs(args) + } exports['C++14'] = exports['C++'] -exports['Objective-C'] = - if GrammarUtils.OperatingSystem.isDarwin() +if os is 'darwin' + exports['Objective-C'] = 'File Based': command: 'bash' - args: ({filepath}) -> ['-c', "xcrun clang -fcolor-diagnostics -Wall -include stdio.h -framework Cocoa '#{filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out"] + args: ({filepath}) -> ['-c', "xcrun clang #{options} -fcolor-diagnostics -framework Cocoa '#{filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out"] -exports['Objective-C++'] = - if GrammarUtils.OperatingSystem.isDarwin() - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "xcrun clang++ -fcolor-diagnostics -Wc++11-extensions -Wall -include stdio.h -include iostream -framework Cocoa '#{filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out"] + exports['Objective-C++'] = + 'File Based': + command: 'bash' + args: ({filepath}) -> ['-c', "xcrun clang++ -Wc++11-extensions #{options} -fcolor-diagnostics -include iostream -framework Cocoa '#{filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out"] diff --git a/lib/grammars/coffeescript.coffee b/lib/grammars/coffeescript.coffee index aff24256..d14be11e 100644 --- a/lib/grammars/coffeescript.coffee +++ b/lib/grammars/coffeescript.coffee @@ -1,23 +1,25 @@ path = require 'path' -GrammarUtils = require '../grammar-utils' +{command} = GrammarUtils = require '../grammar-utils' bin = path.join __dirname, '../..', 'node_modules', '.bin' coffee = path.join bin, 'coffee' babel = path.join bin, 'babel' -args = ({filepath}) -> ['-c', "'#{coffee}' -p '#{filepath}'|'#{babel}' --filename '#{bin}'| node"] +args = ({filepath}) -> + cmd = "'#{coffee}' -p '#{filepath}'|'#{babel}' --filename '#{bin}'| node" + return GrammarUtils.formatArgs(cmd) exports.CoffeeScript = - 'Selection Based': - command: 'bash' + 'Selection Based': { + command args: (context) -> {scopeName} = atom.workspace.getActiveTextEditor()?.getGrammar() lit = if scopeName?.includes 'lit' then 'lit' else '' code = context.getCode() filepath = GrammarUtils.createTempFileWithCode(code, ".#{lit}coffee") return args({filepath}) - - 'File Based': { command: 'bash', args } + } + 'File Based': { command, args } exports['CoffeeScript (Literate)'] = exports.CoffeeScript diff --git a/lib/grammars/fortran.coffee b/lib/grammars/fortran.coffee index 74fe557a..0858cddf 100644 --- a/lib/grammars/fortran.coffee +++ b/lib/grammars/fortran.coffee @@ -1,12 +1,19 @@ -exports['Fortran - Fixed Form'] = - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out"] +path = require 'path' +{command} = GrammarUtils = require '../grammar-utils' +exports['Fortran - Fixed Form'] = + 'File Based': { + command + args: ({filepath}) -> + cmd = "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out" + return GrammarUtils.formatArgs(cmd) + } exports['Fortran - Free Form'] = - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out"] - + 'File Based': { + command + args: ({filepath}) -> + cmd = "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out" + return GrammarUtils.formatArgs(cmd) + } exports['Fortran - Modern'] = exports['Fortran - Free Form'] exports['Fortran - Punchcard'] = exports['Fortran - Fixed Form'] diff --git a/lib/grammars/index.coffee b/lib/grammars/index.coffee index f09c171a..5878699e 100644 --- a/lib/grammars/index.coffee +++ b/lib/grammars/index.coffee @@ -2,7 +2,7 @@ # As well as any special setup for arguments. path = require 'path' -{OperatingSystem} = GrammarUtils = require '../grammar-utils' +{OperatingSystem, command} = GrammarUtils = require '../grammar-utils' os = OperatingSystem.platform() windows = OperatingSystem.isWindows() @@ -162,6 +162,7 @@ module.exports = 'Selection Based': command: 'bash' args: (context) -> ['-c', context.getCode()] + 'File Based': command: 'make' args: ({filepath}) -> ['-f', filepath] @@ -172,10 +173,10 @@ module.exports = args: (context) -> code = context.getCode() tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) - return ['-nodesktop', '-nosplash', '-r', "try, run('#{tmpFile}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] + return ['-nodesktop', '-nosplash', '-r', "try, run('#{tmpFile}'); while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] 'File Based': command: 'matlab' - args: ({filepath}) -> ['-nodesktop', '-nosplash', '-r', "try run('#{filepath}');while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] + args: ({filepath}) -> ['-nodesktop', '-nosplash', '-r', "try run('#{filepath}'); while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] 'MIPS Assembler': 'File Based': @@ -194,13 +195,14 @@ module.exports = args: ({filepath}) -> [filepath] Nim: - 'File Based': - command: 'bash' + 'File Based': { + command args: ({filepath}) -> file = GrammarUtils.Nim.findNimProjectFile(filepath) - path = GrammarUtils.Nim.projectDir(filepath) - return ['-c', "cd '#{path}' && nim c --hints:off --parallelBuild:1 -r '#{file}' 2>&1"] - + dir = GrammarUtils.Nim.projectDir(filepath) + commands = "cd '#{dir}' && nim c --hints:off --parallelBuild:1 -r '#{file}' 2>&1" + return GrammarUtils.formatArgs(commands) + } NSIS: 'Selection Based': command: 'makensis' @@ -215,10 +217,12 @@ module.exports = Octave: 'Selection Based': command: 'octave' - args: (context) -> ['-p', context.filepath.replace(/[^\/]*$/, ''), '--eval', context.getCode()] + args: (context) -> + dir = path.dirname(context.filepath) + return ['-p', path.dirname(context.filepath), '--eval', context.getCode()] 'File Based': command: 'octave' - args: ({filepath}) -> ['-p', filepath.replace(/[^\/]*$/, ''), filepath] + args: ({filepath}) -> ['-p', path.dirname(filepath), filepath] Oz: 'Selection Based': @@ -243,18 +247,20 @@ module.exports = args: ({filepath}) -> [filepath] Prolog: - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "cd '" + filepath.replace(/[^\/]*$/, '') + "'; swipl -f '#{filepath}' -t main --quiet"] - + 'File Based': { + command + args: ({filepath}) -> + dir = path.dirname(filepath) + commands = "cd '#{dir}'; swipl -f '#{filepath}' -t main --quiet" + return GrammarUtils.formatArgs(commands) + } PureScript: - 'File Based': - command: if windows then 'cmd' else 'bash' + 'File Based': { + command args: ({filepath}) -> - filepath = filepath.replace(/[^\/]*$/, '') - command = "cd '#{filepath}' && pulp run" - if windows then ["/c #{command}"] else ['-c', command] - + dir = path.dirname(filepath) + return GrammarUtils.formatArgs("cd '#{dir}' && pulp run") + } R: 'Selection Based': command: 'Rscript' @@ -285,14 +291,13 @@ module.exports = args: ({filepath}) -> [filepath] Rust: - 'File Based': - command: if windows then 'cmd' else 'bash' + 'File Based': { + command args: ({filepath, filename}) -> - progname = filename.replace /\.rs$/, '' if windows - return ["/c rustc #{filepath} && #{progname}.exe"] + return ["/c rustc #{filepath} && #{filename[..-4]}.exe"] else ['-c', "rustc '#{filepath}' -o /tmp/rs.out && /tmp/rs.out"] - + } Scala: 'Selection Based': command: 'scala' diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee index 144003da..e6c5e3b7 100644 --- a/lib/grammars/java.coffee +++ b/lib/grammars/java.coffee @@ -1,39 +1,39 @@ -GrammarUtils = require '../grammar-utils' +path = require 'path' +{command} = GrammarUtils = require '../grammar-utils' windows = GrammarUtils.OperatingSystem.isWindows() +args = (filepath, jar) -> + jar = (jar ? path.basename(filepath)).replace /\.kt$/, '.jar' + cmd = "kotlinc '#{filepath}' -include-runtime -d #{jar} && java -jar #{jar}" + return GrammarUtils.formatArgs(cmd) + module.exports = Java: 'File Based': - command: if windows then 'cmd' else 'bash' + command: 'bash' args: (context) -> className = GrammarUtils.Java.getClassName context classPackages = GrammarUtils.Java.getClassPackage context sourcePath = GrammarUtils.Java.getProjectPath context if windows - return ["/c javac -Xlint '#{context.filename}' && java #{className}"] - else ['-c', "javac -sourcepath #{sourcePath} -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] + return ["/c javac -Xlint #{context.filename} && java #{className}"] + else ['-c', "javac -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] Kotlin: - 'Selection Based': - command: 'bash' + 'Selection Based': { + command args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code, '.kt') - jarName = tmpFile.replace /\.kt$/, '.jar' - return ['-c', "kotlinc #{tmpFile} -include-runtime -d #{jarName} && java -jar #{jarName}"] - - 'File Based': - command: 'bash' - args: ({filepath, filename}) -> - jarName = filename.replace /\.kt$/, '.jar' - return ['-c', "kotlinc '#{filepath}' -include-runtime -d /tmp/#{jarName} && java -jar /tmp/#{jarName}"] - + return args(tmpFile) + } + 'File Based': { + command + args: ({filepath, filename}) -> args(filepath, "/tmp/#{filename}") + } Processing: 'File Based': - command: if windows then 'cmd' else 'bash' - args: ({filepath, filename}) -> - if windows - return ['/c processing-java --sketch=' + filepath.replace("\\#{filename}", '') + ' --run'] - else ['-c', 'processing-java --sketch=' + filepath.replace("/#{filename}", '') + ' --run'] + command: 'processing-java' + args: ({filepath}) -> ["--sketch='#{path.dirname(filepath)}'", '--run'] diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index 154e7e68..25b06c3e 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -1,12 +1,14 @@ 'use babel'; import path from 'path'; -import GrammarUtils from '../grammar-utils'; +import GrammarUtils, { command } from '../grammar-utils'; const babel = path.join(__dirname, '../..', 'node_modules', '.bin', 'babel'); -const args = ({ filepath }) => ['-c', `'${babel}' --filename '${babel}' < '${filepath}'| node`]; - +const args = ({ filepath }) => { + const cmd = `'${babel}' --filename '${babel}' < '${filepath}'| node`; + return GrammarUtils.formatArgs(cmd); +}; exports.Dart = { 'Selection Based': { command: 'dart', @@ -23,14 +25,14 @@ exports.Dart = { }; exports.JavaScript = { 'Selection Based': { - command: 'bash', + command, args: (context) => { const code = context.getCode(); const filepath = GrammarUtils.createTempFileWithCode(code, '.js'); return args({ filepath }); }, }, - 'File Based': { command: 'bash', args }, + 'File Based': { command, args }, }; exports['Babel ES6 JavaScript'] = exports.JavaScript; exports['JavaScript with JSX'] = exports.JavaScript; diff --git a/lib/grammars/ml.coffee b/lib/grammars/ml.coffee index 52973f6e..708c3523 100644 --- a/lib/grammars/ml.coffee +++ b/lib/grammars/ml.coffee @@ -1,4 +1,4 @@ -GrammarUtils = require '../grammar-utils' +{command} = GrammarUtils = require '../grammar-utils' windows = GrammarUtils.OperatingSystem.isWindows() @@ -22,9 +22,9 @@ module.exports = args: ({filepath}) -> [filepath] Reason: - 'File Based': - command: if windows then 'cmd' else 'bash' + 'File Based': { + command args: ({filename}) -> - progname = filename.replace /\.re$/, '' - command = "rebuild '#{progname}.native' && '#{progname}.native'" - if windows then ["/c #{command}"] else ['-c', command] + file = filename.replace /\.re$/, '.native' + GrammarUtils.formatArgs("rebuild '#{file}' && '#{file}'") + } From 76e9ee78cffd3fa69730808c512909a045803829 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Fri, 13 Oct 2017 02:59:40 +0100 Subject: [PATCH 201/410] Fix README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2d28899f..d97421c5 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Currently supported grammars are: | [C# Script] | Yes | Yes | | [`scriptcs`] | | | C++ | Yes | Yes | | `xcrun clang++`/`g++` | Available only on macOS and Linux. Run with `-std=c++14`. | | [Clojure] | Yes | Yes | | `lein exec` | Requires [Leiningen] with the [lein-exec] plugin. | -| [CoffeeScript] ([Literate]) | Yes | Yes | | `coffee` | Runs only selected code blocks in [literate] files. | +| [CoffeeScript] ([Literate]) | Yes | Yes | | `coffee` | | | [Crystal] | Yes | Yes | [language-crystal-actual] | `crystal` | | | [Cucumber] ([Gherkin]) | Yes | | [language-gherkin] | `cucumber` | | | [D] | Yes | Yes | [language-d] | `rdmd` | | @@ -52,7 +52,7 @@ Currently supported grammars are: | [io] | Yes | Yes | [atom-language-io] | `io` | | | Java | Yes | | | `*\jdk1.x.x_xx\bin` | Project directory should be the source directory; subfolders imply packaging. | | Javascript | Yes | Yes | | `node` | | -| JavaScript for Automation ([JXA]) | Yes | Yes | [language-javascript-jxa] | `osascript -l JavaScript` | Available only on macOS. | +| JavaScript for Automation ([JXA]) | Yes | Yes | [language-javascript-jxa] | `osascript -l JavaScript` | Available on macOS only. | | [Jolie] | Yes | | [language-jolie] | `jolie` | | | [Julia] | Yes | Yes | [language-julia] | `julia` | | | [Kotlin] | Yes | Yes | [language-kotlin] | `kotlinc` | | From 8f7829a58d1d9085da0e6c13aee3537f272f2506 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Fri, 13 Oct 2017 03:00:28 +0100 Subject: [PATCH 202/410] Prepare 3.17.2 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d185d45e..c1755505 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.17.1", + "version": "3.17.2", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From b0d9b50819aff04d595e3a37d8d7ff50dfa4f051 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 17 Oct 2017 14:48:17 +0100 Subject: [PATCH 203/410] Fix Java run on Windows --- lib/grammars/java.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee index e6c5e3b7..a1ffa23a 100644 --- a/lib/grammars/java.coffee +++ b/lib/grammars/java.coffee @@ -11,8 +11,8 @@ args = (filepath, jar) -> module.exports = Java: - 'File Based': - command: 'bash' + 'File Based': { + command args: (context) -> className = GrammarUtils.Java.getClassName context classPackages = GrammarUtils.Java.getClassPackage context @@ -20,7 +20,7 @@ module.exports = if windows return ["/c javac -Xlint #{context.filename} && java #{className}"] else ['-c', "javac -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] - + } Kotlin: 'Selection Based': { command From ebf87ac5d4df096ec470811deb4d238786e43134 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Tue, 17 Oct 2017 14:49:45 +0100 Subject: [PATCH 204/410] Prepare 3.17.3 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c1755505..5f410271 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.17.2", + "version": "3.17.3", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 48de9bdc893bdb1355f2a319764a651752b72f2a Mon Sep 17 00:00:00 2001 From: Yana Agun Siswanto Date: Fri, 3 Nov 2017 01:03:15 +0700 Subject: [PATCH 205/410] Fix pascal Change pascal compiler to `fpc` instead of `fsc` --- README.md | 2 +- lib/grammars/index.coffee | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d97421c5..e8e4b29a 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Currently supported grammars are: | [Octave] | Yes | Yes | [language-matlab] | `octave` | | | [Oz] | Yes | Yes | [language-oz] | `ozc` | | | [Pandoc] Markdown | Yes | | [language-pfm] | [`panzer`] | | -| [Pascal] | Yes | Yes | [language-pascal] | `fsc` | | +| [Pascal] | Yes | Yes | [language-pascal] | `fpc` | | | Perl | Yes | Yes | | | | | [Perl 6] | Yes | Yes | | `perl6` | | | PHP | Yes | Yes | | | | diff --git a/lib/grammars/index.coffee b/lib/grammars/index.coffee index 5878699e..ac2806ca 100644 --- a/lib/grammars/index.coffee +++ b/lib/grammars/index.coffee @@ -237,13 +237,13 @@ module.exports = Pascal: 'Selection Based': - command: 'fsc' + command: 'fpc' args: (context) -> code = context.getCode() tmpFile = GrammarUtils.createTempFileWithCode(code) return [tmpFile] 'File Based': - command: 'fsc' + command: 'fpc' args: ({filepath}) -> [filepath] Prolog: From 9cc3f4c868c77d023fdb31d9dc72eee4b6b65beb Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 19 Nov 2017 20:12:11 +0900 Subject: [PATCH 206/410] Add support for POV-Ray Now supports Windows, and added an example file. --- README.md | 3 +++ examples/hello.pov | 3 +++ lib/grammars/index.coffee | 8 ++++++++ 3 files changed, 14 insertions(+) create mode 100644 examples/hello.pov diff --git a/README.md b/README.md index d97421c5..4cb67bed 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ Currently supported grammars are: | [Perl 6] | Yes | Yes | | `perl6` | | | PHP | Yes | Yes | | | | | [PostgreSQL] | Yes | Yes | [language-pgsql] | [`psql`] | Connects as user `PGUSER` to database `PGDATABASE`. Both default to your operating system's `USERNAME`, but can be set in the process environment or in Atom's [`init` file]: `process.env.PGUSER = {user name}` and `process.env.PGDATABASE = {database name}` | +| [POV-Ray] | Yes | | [atom-language-povray] | `povengine`/`povray` | | | [PowerShell] | Yes | Yes | [language-powershell] | `powershell` | | | [Processing] | Yes | | [processing-language] | `processing-java` | | | [Prolog] | Yes | | [language-prolog] | `swipl` | Scripts must contain a rule with the head `main` (e.g.`main:- parent(X,lucas),writeln(X).`). The script is executed with the goal `main` and exits after the first result is found. The output is produced by the `writeln/1` predicates. | @@ -129,6 +130,7 @@ Currently supported grammars are: [atlilypond]: https://atom.io/packages/atlilypond [atom-fstar]: https://github.com/FStarLang/atom-fstar#readme [atom-language-io]: https://atom.io/packages/atom-language-io +[atom-language-povray]: https://atom.io/packages/atom-language-povray [AutoHotKey]: https://autohotkey.com [babel]: https://babeljs.io [batch]: https://ss64.com/nt @@ -261,6 +263,7 @@ Currently supported grammars are: [perl 6]: https://perl6.org [pascal]: https://freepascal.org [PostgreSQL]: https://postgresql.org +[POV-Ray]: http://www.povray.org/ [powershell]: https://docs.microsoft.com/powershell [processing-language]: https://atom.io/packages/processing-language [processing]: https://processing.org diff --git a/examples/hello.pov b/examples/hello.pov new file mode 100644 index 00000000..fe24ffbd --- /dev/null +++ b/examples/hello.pov @@ -0,0 +1,3 @@ +background{rgb<1,1,1>} +sphere{<0,0,1>,0.2} + diff --git a/lib/grammars/index.coffee b/lib/grammars/index.coffee index 5878699e..f60f6401 100644 --- a/lib/grammars/index.coffee +++ b/lib/grammars/index.coffee @@ -246,6 +246,14 @@ module.exports = command: 'fsc' args: ({filepath}) -> [filepath] + Povray: + 'File Based': { + command + args: ({filepath}) -> + commands = if windows then 'pvengine /EXIT /RENDER ' else 'povray ' + return GrammarUtils.formatArgs(commands+filepath) + } + Prolog: 'File Based': { command From 3fcfb5eafaa80e1501603518e77796c227ac50ea Mon Sep 17 00:00:00 2001 From: chwdy <1059126322@qq.com> Date: Wed, 6 Dec 2017 18:53:56 -0500 Subject: [PATCH 207/410] change command encoding to support Chinese display --- lib/grammars/java.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee index a1ffa23a..93827d73 100644 --- a/lib/grammars/java.coffee +++ b/lib/grammars/java.coffee @@ -19,7 +19,7 @@ module.exports = sourcePath = GrammarUtils.Java.getProjectPath context if windows return ["/c javac -Xlint #{context.filename} && java #{className}"] - else ['-c', "javac -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -cp /tmp #{classPackages}#{className}"] + else ['-c', "javac -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp #{classPackages}#{className}"] } Kotlin: 'Selection Based': { From dc2fd479c77e006e034cf5ebb6df452f373d4622 Mon Sep 17 00:00:00 2001 From: chwdy <1059126322@qq.com> Date: Wed, 13 Dec 2017 18:25:44 -0500 Subject: [PATCH 208/410] Update java.coffee --- lib/grammars/java.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee index 93827d73..e9e335f4 100644 --- a/lib/grammars/java.coffee +++ b/lib/grammars/java.coffee @@ -19,7 +19,7 @@ module.exports = sourcePath = GrammarUtils.Java.getProjectPath context if windows return ["/c javac -Xlint #{context.filename} && java #{className}"] - else ['-c', "javac -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp #{classPackages}#{className}"] + else ['-c', "javac -J-Dfile.encoding=UTF-8 -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp #{classPackages}#{className}"] } Kotlin: 'Selection Based': { From 1a93414b3bfb2bac4768a511d02517b5f79cb717 Mon Sep 17 00:00:00 2001 From: Tommaso Previero Date: Mon, 18 Dec 2017 21:19:22 +0100 Subject: [PATCH 209/410] Add integration for sml --- .gitignore | 2 ++ examples/helloworld.sml | 3 +++ lib/grammars/ml.coffee | 15 +++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 examples/helloworld.sml diff --git a/.gitignore b/.gitignore index d35820bc..48460394 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ npm-debug.log node_modules examples/test/ .sass-cache/ +.idea +*.iml \ No newline at end of file diff --git a/examples/helloworld.sml b/examples/helloworld.sml new file mode 100644 index 00000000..04bf2818 --- /dev/null +++ b/examples/helloworld.sml @@ -0,0 +1,3 @@ + +(* My Hello World program *) +print "Hello World!" \ No newline at end of file diff --git a/lib/grammars/ml.coffee b/lib/grammars/ml.coffee index 708c3523..b1a333a0 100644 --- a/lib/grammars/ml.coffee +++ b/lib/grammars/ml.coffee @@ -1,4 +1,5 @@ {command} = GrammarUtils = require '../grammar-utils' +path = require 'path' windows = GrammarUtils.OperatingSystem.isWindows() @@ -28,3 +29,17 @@ module.exports = file = filename.replace /\.re$/, '.native' GrammarUtils.formatArgs("rebuild '#{file}' && '#{file}'") } + + 'Standard ML': + 'File Based': { + command: 'sml' + args: ({filename}) -> return [filename]; + } + + 'Selection Based': { + command: 'sml' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.sml') + return [tmpFile] + } From 4c3ad1ea9afedb15118f53270789c772448282d2 Mon Sep 17 00:00:00 2001 From: Tommaso Previero Date: Mon, 18 Dec 2017 21:32:48 +0100 Subject: [PATCH 210/410] Remove ignores from .gitignore --- .gitignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitignore b/.gitignore index 48460394..d35820bc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,3 @@ npm-debug.log node_modules examples/test/ .sass-cache/ -.idea -*.iml \ No newline at end of file From bb93c92524a169f636c7132276b0c792f8148747 Mon Sep 17 00:00:00 2001 From: Tommaso Previero Date: Mon, 18 Dec 2017 21:34:16 +0100 Subject: [PATCH 211/410] Remove unused import --- lib/grammars/ml.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/grammars/ml.coffee b/lib/grammars/ml.coffee index b1a333a0..1973cb8b 100644 --- a/lib/grammars/ml.coffee +++ b/lib/grammars/ml.coffee @@ -1,5 +1,4 @@ {command} = GrammarUtils = require '../grammar-utils' -path = require 'path' windows = GrammarUtils.OperatingSystem.isWindows() From 94d24ce864ab385dce6e838333eee00021be5e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Golin=CC=81ski?= Date: Sat, 6 Jan 2018 19:47:00 +0100 Subject: [PATCH 212/410] Fixes #1499 --- lib/grammars/java.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee index a1ffa23a..cfe3a13b 100644 --- a/lib/grammars/java.coffee +++ b/lib/grammars/java.coffee @@ -36,4 +36,4 @@ module.exports = Processing: 'File Based': command: 'processing-java' - args: ({filepath}) -> ["--sketch='#{path.dirname(filepath)}'", '--run'] + args: ({filepath}) -> ["--sketch=#{path.dirname(filepath)}", "--run"] From 57a10fc37426c3d3550eba2fae2f26bff9db8fe4 Mon Sep 17 00:00:00 2001 From: Longbiao CHEN Date: Wed, 10 Jan 2018 21:08:42 +0100 Subject: [PATCH 213/410] Update package.json upgrade dependency "atom-message-panel" version to "1.3.0" to enable opening script output panel on the right. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f410271..efdc3f51 100644 --- a/package.json +++ b/package.json @@ -332,7 +332,7 @@ }, "dependencies": { "ansi-to-html": "^0.4.2", - "atom-message-panel": "1.2.7", + "atom-message-panel": "1.3.0", "atom-space-pen-views": "^2.0.3", "babel-preset-env": "^1.6.0", "strip-ansi": "^3.0.0", From d224ee96c3d3f4c2014149f55db51d55bf0e6be2 Mon Sep 17 00:00:00 2001 From: Joffrey Paret <34059676+jparet@users.noreply.github.com> Date: Wed, 31 Jan 2018 22:07:16 +0100 Subject: [PATCH 214/410] Overdrive the default args with the customed ones This update will solve all the python -u issues. For example, you can run python -m unittest now without the -u arg and the filepath. --- lib/runner.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/runner.js b/lib/runner.js index f291fc89..47ed0379 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -149,7 +149,21 @@ export default class Runner { } args(codeContext, extraArgs) { - let args = (this.scriptOptions.cmdArgs.concat(extraArgs)).concat(this.scriptOptions.scriptArgs); + // extraArgs = default command args from: + // - the grammars/.coffee file + + // cmdArgs = customed command args from: + // - a user's profil + // - the 'Configure Run Options' panel + let cmdArgs = this.scriptOptions.cmdArgs; + + // Let's overdrive the default args with the customed ones + let args = (cmdArgs.length) ? cmdArgs : extraArgs; + + // Do not forget to concat the script args after the command args + let scriptArgs = this.scriptOptions.scriptArgs; + args = args.concat(scriptArgs); + const projectPath = this.getProjectPath || ''; args = (args.map(arg => this.fillVarsInArg(arg, codeContext, projectPath))); From a2bcc07cf48b454b25503404397ce1a612324311 Mon Sep 17 00:00:00 2001 From: Joffrey Paret <34059676+jparet@users.noreply.github.com> Date: Wed, 31 Jan 2018 22:27:10 +0100 Subject: [PATCH 215/410] minor update Changing some 'let' declarations to 'const' ones for the TRAVIS CI builder. --- lib/runner.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/runner.js b/lib/runner.js index 47ed0379..b53f7b23 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -155,13 +155,13 @@ export default class Runner { // cmdArgs = customed command args from: // - a user's profil // - the 'Configure Run Options' panel - let cmdArgs = this.scriptOptions.cmdArgs; + const cmdArgs = this.scriptOptions.cmdArgs; // Let's overdrive the default args with the customed ones let args = (cmdArgs.length) ? cmdArgs : extraArgs; // Do not forget to concat the script args after the command args - let scriptArgs = this.scriptOptions.scriptArgs; + const scriptArgs = this.scriptOptions.scriptArgs; args = args.concat(scriptArgs); const projectPath = this.getProjectPath || ''; From e0253bf98be9e7094d620b7a319e72a25d389338 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 30 May 2018 20:26:33 +0100 Subject: [PATCH 216/410] Add new Bash scope to shell script grammars --- lib/grammars/shell.coffee | 87 +++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/lib/grammars/shell.coffee b/lib/grammars/shell.coffee index 216196d1..cfc03398 100644 --- a/lib/grammars/shell.coffee +++ b/lib/grammars/shell.coffee @@ -1,46 +1,45 @@ GrammarUtils = require '../grammar-utils' -module.exports = - - 'Bash Automated Test System (Bats)': - - 'Selection Based': - command: 'bats' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'bats' - args: ({filepath}) -> [filepath] - - 'Shell Script': - 'Selection Based': - command: process.env.SHELL - args: (context) -> ['-c', context.getCode()] - - 'File Based': - command: process.env.SHELL - args: ({filepath}) -> [filepath] - - 'Shell Script (Fish)': - 'Selection Based': - command: 'fish' - args: (context) -> ['-c', context.getCode()] - - 'File Based': - command: 'fish' - args: ({filepath}) -> [filepath] - - Tcl: - 'Selection Based': - command: 'tclsh' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'tclsh' - args: ({filepath}) -> [filepath] +exports['Bash Automated Test System (Bats)'] = + 'Selection Based': + command: 'bats' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'bats' + args: ({filepath}) -> [filepath] + +exports.Bash = + 'Selection Based': + command: process.env.SHELL + args: (context) -> ['-c', context.getCode()] + + 'File Based': + command: process.env.SHELL + args: ({filepath}) -> [filepath] + +exports['Shell Script'] = exports.Bash + +exports['Shell Script (Fish)'] = + 'Selection Based': + command: 'fish' + args: (context) -> ['-c', context.getCode()] + + 'File Based': + command: 'fish' + args: ({filepath}) -> [filepath] + +exports.Tcl = + 'Selection Based': + command: 'tclsh' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + + 'File Based': + command: 'tclsh' + args: ({filepath}) -> [filepath] From 3a2a21e7f636372bbbfa043933e85eb9270ee3cf Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 30 May 2018 21:45:57 +0100 Subject: [PATCH 217/410] Prepare 3.18.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f410271..d528c6e9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.17.3", + "version": "3.18.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 96bdbd1a9c11c481a63a49e2a216f1debd7c88e8 Mon Sep 17 00:00:00 2001 From: Daniel Bayley Date: Wed, 30 May 2018 21:48:46 +0100 Subject: [PATCH 218/410] Prepare 3.18.1 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d528c6e9..afb007ee 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.18.0", + "version": "3.18.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 9d5f0e22e95efd4f98de1afb47138e5dc784ccdf Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Mon, 11 Jun 2018 16:16:57 -0700 Subject: [PATCH 219/410] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c2f1bef3..ed7738a5 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ **Run code in Atom!** +:warning: [We need maintainers and developers to keep atom script from growing stagnant! Please see #1550 for background](https://github.com/rgbkrk/atom-script/issues/1550) :warning: + Run scripts based on file name, a selection of code, or by line number. ![](https://cloud.githubusercontent.com/assets/1694055/3226201/c458acbc-f067-11e3-84a0-da27fe334f5e.gif) From b61fa70b166ac22bff6f8b08d32417be6ea90e9b Mon Sep 17 00:00:00 2001 From: Justin Chadwell Date: Fri, 5 Oct 2018 23:14:52 +0100 Subject: [PATCH 220/410] Add support for NASM assembly --- README.md | 4 ++++ examples/{hello.asm => hello.mips.asm} | 0 examples/hello.nasm.asm | 17 +++++++++++++++++ lib/grammar-utils/operating-system.js | 4 ++++ lib/grammars/index.coffee | 24 ++++++++++++++++++++++++ 5 files changed, 49 insertions(+) rename examples/{hello.asm => hello.mips.asm} (100%) create mode 100644 examples/hello.nasm.asm diff --git a/README.md b/README.md index ed7738a5..d1fdcdec 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Currently supported grammars are: | Grammar | File Based | Selection Based | Required Package | Required in [`PATH`] | Notes | |:------------------------------------|:-----------|:----------------|:------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Assembly (NASM) | Yes | Yes | [language-x86-64-assembly] | [`nasm`], [`binutils`] | | | 1C (BSL) | Yes | | [language-1c-bsl] | [`oscript`] | | | [Ansible] | Yes | | [language-ansible] | `ansible-playbook` | | | [AutoHotKey] | Yes | Yes | [language-autohotkey] | `AutoHotKey.exe` | | @@ -113,11 +114,13 @@ Currently supported grammars are: [-wow]: https://atom.io/packages/language-lua-wow [#70]: https://github.com/rgbkrk/atom-script/pull/70 +[`binutils`]: https://www.gnu.org/software/binutils/ [`gfortran`]: https://gcc.gnu.org/wiki/GFortran [`ghc`]: https://haskell.org/ghc [`guile`]: https://gnu.org/software/guile [`init` file]: http://flight-manual.atom.io/hacking-atom/sections/the-init-file [`latexmk`]: https://ctan.org/pkg/latexmk +[`nasm`]: https://nasm.us/ [`oscript`]: http://oscript.io [`panzer`]: https://github.com/msprev/panzer#readme [`PATH`]: https://en.wikipedia.org/wiki/PATH_(variable) @@ -239,6 +242,7 @@ Currently supported grammars are: [language-swift]: https://atom.io/packages/language-swift [language-tcltk]: https://atom.io/packages/language-tcltk [language-vbscript]: https://atom.io/packages/language-vbscript +[language-x86-64-assembly]: https://atom.io/packages/language-x86-64-assembly [latex]: https://latex-project.org [lein-exec]: https://github.com/kumarshantanu/lein-exec#readme [leiningen]: https://leiningen.org diff --git a/examples/hello.asm b/examples/hello.mips.asm similarity index 100% rename from examples/hello.asm rename to examples/hello.mips.asm diff --git a/examples/hello.nasm.asm b/examples/hello.nasm.asm new file mode 100644 index 00000000..3be07bd2 --- /dev/null +++ b/examples/hello.nasm.asm @@ -0,0 +1,17 @@ +section .data + str: db 'Hello, World!', 10 + strlen: equ $ - str + +section .text +global _start + +_start: + mov eax, 4 ; write system call + mov ebx, 1 ; STDOUT + mov ecx, str ; string + mov edx, strlen ; length + int 80h ; system call + + mov eax, 1 ; exit system call + mov ebx, 0 ; error code 0 + int 80h ; system call diff --git a/lib/grammar-utils/operating-system.js b/lib/grammar-utils/operating-system.js index 31d82c8b..5d2f0c2b 100644 --- a/lib/grammar-utils/operating-system.js +++ b/lib/grammar-utils/operating-system.js @@ -21,6 +21,10 @@ export default { return os.platform(); }, + architecture() { + return os.arch(); + }, + release() { return os.release(); }, diff --git a/lib/grammars/index.coffee b/lib/grammars/index.coffee index 088622ed..701b8876 100644 --- a/lib/grammars/index.coffee +++ b/lib/grammars/index.coffee @@ -5,6 +5,7 @@ path = require 'path' {OperatingSystem, command} = GrammarUtils = require '../grammar-utils' os = OperatingSystem.platform() +arch = OperatingSystem.architecture() windows = OperatingSystem.isWindows() module.exports = @@ -326,3 +327,26 @@ module.exports = 'File Based': command: 'turing' args: ({filepath}) -> ['-run', filepath] + + "x86 and x86_64 Assembly": + 'File Based': + command: 'bash' + args: ({filepath}) -> + args = switch arch + when 'x32' + "nasm -f elf '#{filepath}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" + when 'x64' + "nasm -f elf64 '#{filepath}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" + return ['-c', args] + + 'Selection Based': + command: 'bash' + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code, '.asm') + args = switch arch + when 'x32' + "nasm -f elf '#{tmpFile}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" + when 'x64' + "nasm -f elf64 '#{tmpFile}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" + return ['-c', args] From e9e7e355b3b096b63a549bb6d90753c8e9ccf0b0 Mon Sep 17 00:00:00 2001 From: Yang Date: Thu, 10 Jan 2019 14:50:19 +0800 Subject: [PATCH 221/410] Update README.md Added a note about Python3. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ed7738a5..167f6cc6 100644 --- a/README.md +++ b/README.md @@ -329,6 +329,8 @@ Make sure to run `atom` from the command line to get full access to your environ Also, in this dialog you can save options as a profile for future use. For example, you can add two profiles, one for `python2.7` and another for `python3` and run scripts with a specified profile, which will be more convinient than entering options every time you want to switch python versions. +If you want to use Python3 by default, you can open Atom Settings, `Atom→Preferences→Open Config Folder`, and open`.atom/packages/script/lib/grammars/python.coffee`, Changing `python` to `python3` under `'Selection Based'` and `'File Based'`, saving it. + **Script: Run with profile** allows you to run scripts with saved profiles. Profiles can be added in **Script: Run Options** dialog. **Script: Kill Process** will kill the process but leaves the pane open. From 39d8c9dbda4f1ddf7cafff949d322f1bd92ad462 Mon Sep 17 00:00:00 2001 From: fscherwi Date: Tue, 22 Jan 2019 14:16:24 +0100 Subject: [PATCH 222/410] update to latest CI test script (#1509) * update to latest CI test script * remove sudo: false --- .travis.yml | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8df26fab..9c5485d2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,31 +1,37 @@ -notifications: - email: - on_success: never - on_failure: change - -script: 'curl -s https://raw.githubusercontent.com/atom/ci/master/build-package.sh | sh' - -git: - depth: 10 - -sudo: false - -os: - - linux - - osx +### Project specific config ### +language: generic env: global: - APM_TEST_PACKAGES="" + - ATOM_LINT_WITH_BUNDLED_NODE="true" matrix: - ATOM_CHANNEL=stable - ATOM_CHANNEL=beta +os: + - linux + - osx + +### Generic setup follows ### +script: + - curl -s -O https://raw.githubusercontent.com/atom/ci/master/build-package.sh + - chmod u+x build-package.sh + - ./build-package.sh + +notifications: + email: + on_success: never + on_failure: change + +git: + depth: 10 + addons: apt: packages: - build-essential - - git - - libgnome-keyring-dev - fakeroot + - git + - libsecret-1-dev From 7eea60783144c702678307c828a34aee95a3d657 Mon Sep 17 00:00:00 2001 From: Hyo Byun Date: Wed, 13 Feb 2019 17:52:44 -0500 Subject: [PATCH 223/410] Fix Windows selection based python/sage selection run --- lib/grammars/python.coffee | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/grammars/python.coffee b/lib/grammars/python.coffee index e1f116e6..7125b362 100644 --- a/lib/grammars/python.coffee +++ b/lib/grammars/python.coffee @@ -1,7 +1,12 @@ +GrammarUtils = require '../grammar-utils' + exports.Python = 'Selection Based': command: 'python' - args: (context) -> ['-u', '-c', context.getCode()] + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return ['-u', tmpFile] 'File Based': command: 'python' @@ -12,7 +17,10 @@ exports.MagicPython = exports.Python exports.Sage = 'Selection Based': command: 'sage' - args: (context) -> ['-c', context.getCode()] + args: (context) -> + code = context.getCode() + tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] 'File Based': command: 'sage' From b9eab4d7d0b3d9b464c3c066107166220cfba482 Mon Sep 17 00:00:00 2001 From: extremepayne <46696318+extremepayne@users.noreply.github.com> Date: Sat, 9 Mar 2019 09:38:06 -0800 Subject: [PATCH 224/410] Fix typo (#1822) thanks in advanced -> thanks in advance --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a9041350..ac9fa102 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ When reporting an issue include information such as: The more information available when we take a look at your issue the more likely we can deal with it in a quick manner. ## Developing -We love pull requests! If you're reading this section thanks in advanced. +We love pull requests! If you're reading this section thanks in advance. To help accelerate the review process: * Consider adding specs. From 19f2835c33867b6a7b283d9a92e429344597f2a4 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 11:23:25 -0700 Subject: [PATCH 225/410] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 346f37ae..569fb3d7 100644 --- a/README.md +++ b/README.md @@ -376,8 +376,8 @@ This is an [Open Open Source Project](http://openopensource.org/), which means: > Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. -As for coding and contributing, rely on the atom [contributing guidelines](https://atom.io/docs/latest/contributing). -They're pretty sane. +As for coding and contributing, rely on the atom [contributing guidelines](https://flight-manual.atom.io/hacking-atom/sections/contributing-to-official-atom-packages/). +They're pretty solid. #### Quick and dirty setup From e0de9222fb1a59781784e265add282601aade382 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 11:29:40 -0700 Subject: [PATCH 226/410] Prepare v3.19.0 release --- package-lock.json | 4416 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 4417 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..cdde771b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4416 @@ +{ + "name": "script", + "version": "3.19.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "dev": true + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "ansi-to-html": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.4.2.tgz", + "integrity": "sha1-UQLgJzpZi+L40IiWYDsXmw/fzxE=", + "requires": { + "entities": "^1.1.1" + } + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "optional": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "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==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "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=" + }, + "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==", + "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==" + }, + "atom-message-panel": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/atom-message-panel/-/atom-message-panel-1.3.0.tgz", + "integrity": "sha1-BOICKVQHZrzTVlVdq/qY1b7dMTw=", + "requires": { + "atom-space-pen-views": "^2.2.0" + } + }, + "atom-space-pen-views": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.2.0.tgz", + "integrity": "sha1-plsskg7QL3JAFPp9Plw9ePv1mZc=", + "requires": { + "fuzzaldrin": "^2.1.0", + "space-pen": "^5.1.2" + } + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "optional": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-eslint": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", + "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", + "babylon": "^6.17.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "optional": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "optional": true + } + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "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==", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "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": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "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 + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001006", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001006.tgz", + "integrity": "sha512-MXnUVX27aGs/QINz+QG1sWSLDr3P1A3Hq5EUWoIt0T7K24DuvMxZEnh3Y5aHlJW6Bz2aApJdSewdYLd8zQnUuw==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "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==", + "requires": { + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "coffeescript": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.4.1.tgz", + "integrity": "sha512-34GV1aHrsMpTaO3KfMJL40ZNuvKDR/g98THHnE9bQj8HjMaZvSrLik99WWqyMhRtbe8V5hpx5iLgdcSvM/S2wg==", + "optional": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "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==", + "optional": 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==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "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=" + }, + "core-js": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", + "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==" + }, + "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=" + }, + "d": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "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==", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.3.296", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz", + "integrity": "sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ==" + }, + "emissary": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz", + "integrity": "sha1-phjZLWgrIy0xER3DYlpd9mF5lgY=", + "requires": { + "es6-weak-map": "^0.1.2", + "mixto": "1.x", + "property-accessors": "^1.1", + "underscore-plus": "1.x" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "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" + } + }, + "es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.52", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.52.tgz", + "integrity": "sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.2", + "next-tick": "~1.0.0" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + } + } + }, + "es6-iterator": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", + "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.5", + "es6-symbol": "~2.0.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + } + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", + "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.5" + } + }, + "es6-weak-map": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", + "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.6", + "es6-iterator": "~0.1.3", + "es6-symbol": "~2.0.1" + } + }, + "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=" + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + } + } + }, + "eslint": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", + "dev": true, + "requires": { + "babel-code-frame": "^6.16.0", + "chalk": "^1.1.3", + "concat-stream": "^1.5.2", + "debug": "^2.1.1", + "doctrine": "^2.0.0", + "escope": "^3.6.0", + "espree": "^3.4.0", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "glob": "^7.0.3", + "globals": "^9.14.0", + "ignore": "^3.2.0", + "imurmurhash": "^0.1.4", + "inquirer": "^0.12.0", + "is-my-json-valid": "^2.10.0", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.5.1", + "json-stable-stringify": "^1.0.0", + "levn": "^0.3.0", + "lodash": "^4.0.0", + "mkdirp": "^0.5.0", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.1", + "pluralize": "^1.2.1", + "progress": "^1.1.8", + "require-uncached": "^1.0.2", + "shelljs": "^0.7.5", + "strip-bom": "^3.0.0", + "strip-json-comments": "~2.0.1", + "table": "^3.7.8", + "text-table": "~0.2.0", + "user-home": "^2.0.0" + }, + "dependencies": { + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + } + } + }, + "eslint-config-airbnb-base": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz", + "integrity": "sha1-8X1OUpksHUXRt3E++81ezQ5+BQY=", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.5.0" + } + }, + "eslint-module-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", + "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", + "dev": true, + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" + } + }, + "eslint-plugin-import": { + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.11.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + } + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + } + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "optional": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "optional": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "ext": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.1.2.tgz", + "integrity": "sha512-/KLjJdTNyDepCihrk4HQt57nAE1IRCEo5jUt+WgWGCr1oARhibDvmI2DMcSNWood1T9AUWwq+jaV1wvRqaXfnA==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "optional": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "optional": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "optional": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "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==", + "optional": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "optional": 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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": 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" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "fuzzaldrin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz", + "integrity": "sha1-kCBMPi/appQbso0WZF1BgGOpDps=" + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "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-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "optional": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "grim": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/grim/-/grim-1.5.0.tgz", + "integrity": "sha1-sysI71Z88YUvgXWe2caLDXE5ajI=", + "requires": { + "emissary": "^1.2.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "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=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "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.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "dev": true, + "requires": { + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "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=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "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", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "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==" + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": 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=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "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==" + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "optional": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "optional": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", + "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "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==", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "optional": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "optional": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "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==", + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "optional": true, + "requires": { + "isarray": "1.0.0" + } + }, + "jquery": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", + "integrity": "sha1-IoveaYoMYUMdwmMKahVPFYkNIxc=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "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==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "optional": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "optional": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz", + "integrity": "sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "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=", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "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" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, + "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=", + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "optional": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "object.values": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "optional": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "optional": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "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 + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "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=", + "optional": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "optional": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "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==" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "property-accessors": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz", + "integrity": "sha1-Hd6EAkYxhlkJ7zBwM2VoDF+SixU=", + "requires": { + "es6-weak-map": "^0.1.2", + "mixto": "1.x" + } + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "optional": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true + } + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "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==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "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=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "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=", + "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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.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=", + "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=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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=", + "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=", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "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==", + "optional": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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=", + "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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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=", + "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==", + "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==", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + } + } + }, + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "mute-stream": "0.0.5" + } + }, + "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" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "optional": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "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=" + } + } + }, + "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=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "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=" + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true, + "requires": { + "once": "^1.3.0" + } + }, + "rx-lite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "dev": true + }, + "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==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "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==" + }, + "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==", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "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==", + "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=", + "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=", + "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==", + "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=", + "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==", + "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==", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "optional": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "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=" + }, + "space-pen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/space-pen/-/space-pen-5.1.2.tgz", + "integrity": "sha1-Ivu+EOCwROe3pHsCPamdlLWE748=", + "requires": { + "grim": "^1.0.0", + "jquery": "2.1.4", + "underscore-plus": "1.x" + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "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", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "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=", + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "table": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", + "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", + "dev": true, + "requires": { + "ajv": "^4.7.0", + "ajv-keywords": "^1.0.0", + "chalk": "^1.1.1", + "lodash": "^4.0.0", + "slice-ansi": "0.0.4", + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "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=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "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=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" + }, + "underscore-plus": { + "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" + } + }, + "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==", + "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=", + "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=", + "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=", + "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=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "optional": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "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" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 49e72d07..f5f6a9f1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.18.1", + "version": "3.19.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 6599b88f5b813bc575ffd3ece685912f7abdd284 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 11:30:11 -0700 Subject: [PATCH 227/410] Prepare v3.20.0 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index cdde771b..07021205 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.19.0", + "version": "3.20.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f5f6a9f1..caed0d95 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.19.0", + "version": "3.20.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 0701b8af6fae938099d3f9d96981f493bcb4d322 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 11:30:36 -0700 Subject: [PATCH 228/410] Prepare v3.21.0 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 07021205..b385b124 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.20.0", + "version": "3.21.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index caed0d95..caf82775 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.20.0", + "version": "3.21.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From d45eca73963c329cf6b61fd17d66723ba18e5f75 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 11:30:56 -0700 Subject: [PATCH 229/410] Prepare v3.22.0 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b385b124..9a9b9743 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.21.0", + "version": "3.22.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index caf82775..f1f52000 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.21.0", + "version": "3.22.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 6c963fca2f4fdc28829b9dc257250d99af69f0e3 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 12:04:35 -0700 Subject: [PATCH 230/410] Prepare v3.23.0 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a9b9743..30fb2892 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.22.0", + "version": "3.23.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f1f52000..34dbf406 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.22.0", + "version": "3.23.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 9b92b4a01db6151be12880db15ba2a0034d8e94b Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 12:04:53 -0700 Subject: [PATCH 231/410] Prepare v3.24.0 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30fb2892..166c23cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.23.0", + "version": "3.24.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 34dbf406..149ff2b8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.23.0", + "version": "3.24.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From f95743f3fa94c30673637b7f81b907a6e45fc475 Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 31 Oct 2019 12:59:12 -0700 Subject: [PATCH 232/410] Prepare v3.25.0 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 166c23cb..c0d073e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.24.0", + "version": "3.25.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 149ff2b8..5935045d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.24.0", + "version": "3.25.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 38134ec497b820d68108e3f175e02777a290d1a1 Mon Sep 17 00:00:00 2001 From: Tobias Pfandzelter Date: Tue, 10 Dec 2019 09:00:38 +0100 Subject: [PATCH 233/410] fix atom-message-panel bug --- lib/script-view.js | 3 +-- package-lock.json | 6 +++--- package.json | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/script-view.js b/lib/script-view.js index 15149285..3c05a2fc 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -74,8 +74,7 @@ export default class ScriptView extends MessagePanelView { resetView(title = 'Loading...') { // Display window and load message - // First run, create view - if (!this.hasParent()) { this.attach(); } + this.attach(); this.setHeaderTitle(title); this.setHeaderStatus('start'); diff --git a/package-lock.json b/package-lock.json index c0d073e1..cf66ede5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -138,9 +138,9 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "atom-message-panel": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/atom-message-panel/-/atom-message-panel-1.3.0.tgz", - "integrity": "sha1-BOICKVQHZrzTVlVdq/qY1b7dMTw=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/atom-message-panel/-/atom-message-panel-1.3.1.tgz", + "integrity": "sha512-nLi19faNBl/kabrf6itBkHcLrnpUeiGbpda+dHufAODKH+I+odoPRCxx7EZ+mCHEsBMhHNXxLWOLA+Mm9pumbA==", "requires": { "atom-space-pen-views": "^2.2.0" } diff --git a/package.json b/package.json index 5935045d..673d4017 100644 --- a/package.json +++ b/package.json @@ -332,7 +332,7 @@ }, "dependencies": { "ansi-to-html": "^0.4.2", - "atom-message-panel": "1.3.0", + "atom-message-panel": "1.3.1", "atom-space-pen-views": "^2.0.3", "babel-preset-env": "^1.6.0", "strip-ansi": "^3.0.0", From ffcbbb3118e2f810155c6de900fe8fdb2e6dd13e Mon Sep 17 00:00:00 2001 From: Kyle Kelley Date: Thu, 23 Apr 2020 08:05:04 -0700 Subject: [PATCH 234/410] Prepare v3.26.0 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index cf66ede5..7d907885 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.25.0", + "version": "3.26.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 673d4017..21baf625 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.25.0", + "version": "3.26.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From f07bf461f76bfed1527629320171a73d3b7e5e88 Mon Sep 17 00:00:00 2001 From: Brian Schack Date: Sun, 26 Apr 2020 15:18:39 -0500 Subject: [PATCH 235/410] Pass the $CLASSPATH environment variable to java. (#1468) This is necessary to use third-party packages. Co-authored-by: Kyle Kelley --- lib/grammars/java.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee index 210a57a3..f4ba308c 100644 --- a/lib/grammars/java.coffee +++ b/lib/grammars/java.coffee @@ -19,7 +19,8 @@ module.exports = sourcePath = GrammarUtils.Java.getProjectPath context if windows return ["/c javac -Xlint #{context.filename} && java #{className}"] - else ['-c', "javac -J-Dfile.encoding=UTF-8 -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp #{classPackages}#{className}"] + else ['-c', "javac -J-Dfile.encoding=UTF-8 -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp:%CLASSPATH #{classPackages}#{className}"] + } Kotlin: 'Selection Based': { From b9b83e67623e6fb58a0907f2fb7eb954aa0d32f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Apr 2020 13:23:54 -0700 Subject: [PATCH 236/410] Bump eslint from 3.19.0 to 4.18.2 (#1983) Bumps [eslint](https://github.com/eslint/eslint) from 3.19.0 to 4.18.2. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v3.19.0...v4.18.2) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 1068 +++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 605 insertions(+), 465 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d907885..6469d933 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,25 +28,27 @@ } }, "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }, "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { @@ -98,12 +100,14 @@ "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==" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "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=" + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "optional": true }, "array-includes": { "version": "3.0.3", @@ -124,7 +128,8 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "optional": true }, "async-each": { "version": "1.0.3", @@ -135,7 +140,8 @@ "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "optional": true }, "atom-message-panel": { "version": "1.3.1", @@ -777,6 +783,7 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "optional": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -791,6 +798,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "optional": true, "requires": { "is-descriptor": "^1.0.0" } @@ -799,6 +807,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -807,6 +816,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -815,6 +825,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -824,12 +835,14 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true } } }, @@ -878,6 +891,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "optional": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -893,7 +907,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true } } }, @@ -929,6 +944,12 @@ "supports-color": "^2.0.0" } }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", @@ -956,6 +977,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "optional": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -967,6 +989,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -974,17 +997,18 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true } } }, "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^1.0.1" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -999,12 +1023,6 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "coffeescript": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.4.1.tgz", @@ -1015,11 +1033,27 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "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 + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -1029,7 +1063,8 @@ "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==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "optional": true }, "concat-map": { "version": "0.0.1", @@ -1065,7 +1100,8 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "optional": true }, "core-js": { "version": "2.6.10", @@ -1077,6 +1113,17 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "d": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", @@ -1096,7 +1143,8 @@ "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=" + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "optional": true }, "deep-is": { "version": "0.1.3", @@ -1117,6 +1165,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "optional": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -1126,6 +1175,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -1134,6 +1184,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -1142,6 +1193,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1151,12 +1203,14 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true } } }, @@ -1286,99 +1340,6 @@ "es6-symbol": "~2.0.1" } }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - }, - "dependencies": { - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - } - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - }, - "dependencies": { - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - } - } - }, "es6-symbol": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", @@ -1404,113 +1365,114 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "eslint": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "dev": true, "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" }, "dependencies": { - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "color-convert": "^1.9.0" } }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "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": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" + "ms": "^2.1.1" } }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "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 + }, + "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 + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" + "ansi-regex": "^3.0.0" } - } - } - }, - "eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", - "dev": true, - "requires": { - "babel-code-frame": "^6.16.0", - "chalk": "^1.1.3", - "concat-stream": "^1.5.2", - "debug": "^2.1.1", - "doctrine": "^2.0.0", - "escope": "^3.6.0", - "espree": "^3.4.0", - "esquery": "^1.0.0", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "glob": "^7.0.3", - "globals": "^9.14.0", - "ignore": "^3.2.0", - "imurmurhash": "^0.1.4", - "inquirer": "^0.12.0", - "is-my-json-valid": "^2.10.0", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.5.1", - "json-stable-stringify": "^1.0.0", - "levn": "^0.3.0", - "lodash": "^4.0.0", - "mkdirp": "^0.5.0", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.1", - "pluralize": "^1.2.1", - "progress": "^1.1.8", - "require-uncached": "^1.0.2", - "shelljs": "^0.7.5", - "strip-bom": "^3.0.0", - "strip-json-comments": "~2.0.1", - "table": "^3.7.8", - "text-table": "~0.2.0", - "user-home": "^2.0.0" - }, - "dependencies": { - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + }, + "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": { - "os-homedir": "^1.0.0" + "has-flag": "^3.0.0" } } } @@ -1572,6 +1534,22 @@ } } }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, "espree": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", @@ -1617,34 +1595,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - }, - "dependencies": { - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - } - } - }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true - }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", @@ -1682,6 +1632,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "optional": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -1691,12 +1642,24 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "optional": true, "requires": { "is-plain-object": "^2.0.4" } } } }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", @@ -1706,6 +1669,18 @@ "is-extglob": "^1.0.0" } }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -1713,13 +1688,12 @@ "dev": true }, "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -1775,7 +1749,8 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "optional": true }, "for-own": { "version": "0.1.5", @@ -1790,6 +1765,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "optional": true, "requires": { "map-cache": "^0.2.2" } @@ -1822,7 +1798,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -1840,11 +1817,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1857,15 +1836,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -1968,7 +1950,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -1978,6 +1961,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1990,17 +1974,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2017,6 +2004,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2089,7 +2077,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2099,6 +2088,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2174,7 +2164,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2204,6 +2195,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2221,6 +2213,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2259,11 +2252,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -2273,33 +2268,22 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "fuzzaldrin": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz", "integrity": "sha1-kCBMPi/appQbso0WZF1BgGOpDps=" }, - "generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "dev": true, - "requires": { - "is-property": "^1.0.2" - } - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "requires": { - "is-property": "^1.0.0" - } - }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "optional": true }, "glob": { "version": "7.1.5", @@ -2328,6 +2312,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, "requires": { "is-glob": "^2.0.0" } @@ -2367,6 +2352,12 @@ "ansi-regex": "^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.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", @@ -2377,6 +2368,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "optional": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -2386,7 +2378,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true } } }, @@ -2394,6 +2387,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "optional": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -2403,6 +2397,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, "requires": { "kind-of": "^3.0.2" }, @@ -2411,6 +2406,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -2421,6 +2417,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -2442,6 +2439,15 @@ "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", "dev": true }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "ignore": { "version": "3.3.10", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", @@ -2469,32 +2475,73 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "^1.1.0", - "ansi-regex": "^2.0.0", - "chalk": "^1.0.0", - "cli-cursor": "^1.0.1", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "figures": "^1.3.5", + "external-editor": "^2.0.4", + "figures": "^2.0.0", "lodash": "^4.3.0", - "readline2": "^1.0.1", - "run-async": "^0.1.0", - "rx-lite": "^3.1.2", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -2507,6 +2554,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -2529,7 +2577,8 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "optional": true }, "is-callable": { "version": "1.1.4", @@ -2541,6 +2590,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -2555,6 +2605,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "optional": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -2564,7 +2615,8 @@ "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==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "optional": true } } }, @@ -2586,12 +2638,14 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "optional": true }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "optional": true }, "is-finite": { "version": "1.0.2", @@ -2602,41 +2656,20 @@ } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "optional": true, "requires": { "is-extglob": "^1.0.0" } }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", - "dev": true - }, - "is-my-json-valid": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", - "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", - "dev": true, - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^4.0.0", - "xtend": "^4.0.0" - } - }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -2650,6 +2683,7 @@ "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==", + "optional": true, "requires": { "isobject": "^3.0.1" }, @@ -2657,7 +2691,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true } } }, @@ -2673,10 +2708,10 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "optional": true }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, "is-regex": { @@ -2714,6 +2749,12 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "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": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", @@ -2748,36 +2789,28 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, - "json-stable-stringify": { + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -2827,15 +2860,27 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "optional": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "optional": true, "requires": { "object-visit": "^1.0.0" } @@ -2867,6 +2912,12 @@ "regex-cache": "^0.4.2" } }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -2884,6 +2935,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "optional": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -2893,6 +2945,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "optional": true, "requires": { "is-plain-object": "^2.0.4" } @@ -2918,9 +2971,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "nan": { @@ -2995,6 +3048,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -3013,6 +3067,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "optional": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -3023,6 +3078,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -3045,6 +3101,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "optional": true, "requires": { "isobject": "^3.0.0" }, @@ -3052,7 +3109,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true } } }, @@ -3070,6 +3128,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "optional": true, "requires": { "isobject": "^3.0.1" }, @@ -3077,7 +3136,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true } } }, @@ -3102,10 +3162,13 @@ } }, "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } }, "optionator": { "version": "0.8.2", @@ -3190,7 +3253,8 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "optional": true }, "path-exists": { "version": "3.0.0", @@ -3240,9 +3304,9 @@ } }, "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, "posix-character-classes": { @@ -3274,9 +3338,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "property-accessors": { @@ -3288,6 +3352,12 @@ "mixto": "1.x" } }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", @@ -3368,7 +3438,8 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "optional": true }, "braces": { "version": "2.3.2", @@ -3608,7 +3679,8 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true }, "micromatch": { "version": "3.1.10", @@ -3633,26 +3705,6 @@ } } }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "mute-stream": "0.0.5" - } - }, - "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" - } - }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -3686,6 +3738,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "optional": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -3724,17 +3777,20 @@ "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=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "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==" + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "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=" + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "optional": true }, "repeating": { "version": "2.0.1", @@ -3772,22 +3828,24 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "optional": true }, "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "optional": true }, "rimraf": { "version": "2.6.3", @@ -3799,20 +3857,29 @@ } }, "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "once": "^1.3.0" + "is-promise": "^2.1.0" } }, "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -3822,10 +3889,17 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "optional": true, "requires": { "ret": "~0.1.10" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -3835,6 +3909,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "optional": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -3846,38 +3921,53 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, "requires": { "is-extendable": "^0.1.0" } } } }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "shebang-regex": "^1.0.0" } }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "optional": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -3893,6 +3983,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -3901,6 +3992,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, "requires": { "is-extendable": "^0.1.0" } @@ -3965,7 +4057,8 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true } } }, @@ -3987,6 +4080,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "optional": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", @@ -4006,7 +4100,8 @@ "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=" + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "optional": true }, "space-pen": { "version": "5.1.2", @@ -4054,6 +4149,7 @@ "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==", + "optional": true, "requires": { "extend-shallow": "^3.0.0" } @@ -4068,6 +4164,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "optional": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -4077,6 +4174,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -4084,14 +4182,30 @@ } }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "string.prototype.trimleft": { @@ -4148,48 +4262,46 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "table": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "^4.7.0", - "ajv-keywords": "^1.0.0", - "chalk": "^1.1.1", - "lodash": "^4.0.0", - "slice-ansi": "0.0.4", - "string-width": "^2.0.0" + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "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" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "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": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "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": { - "ansi-regex": "^3.0.0" + "has-flag": "^3.0.0" } } } @@ -4206,6 +4318,15 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -4215,6 +4336,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -4223,6 +4345,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "optional": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -4293,6 +4416,7 @@ "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==", + "optional": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -4304,6 +4428,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "optional": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -4313,6 +4438,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "optional": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -4323,6 +4449,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "optional": true, "requires": { "isarray": "1.0.0" } @@ -4332,24 +4459,28 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "optional": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true } } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "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==" + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "optional": true }, "user-home": { "version": "1.1.1", @@ -4386,6 +4517,15 @@ "spdx-expression-parse": "^3.0.0" } }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -4406,10 +4546,10 @@ "mkdirp": "^0.5.1" } }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true } } diff --git a/package.json b/package.json index 21baf625..c3326fa1 100644 --- a/package.json +++ b/package.json @@ -345,7 +345,7 @@ }, "devDependencies": { "babel-eslint": "^7.1.1", - "eslint": "^3.11.1", + "eslint": "^4.18.2", "eslint-config-airbnb-base": "^10.0.1", "eslint-plugin-import": "^2.2.0" }, From 35a50d15927f496b33eef60f0f8cbf94c8a262fc Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 13:13:18 -0600 Subject: [PATCH 237/410] Add bot to close duplicate issues --- github/workflow/duplicate-issues.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 github/workflow/duplicate-issues.yml diff --git a/github/workflow/duplicate-issues.yml b/github/workflow/duplicate-issues.yml new file mode 100644 index 00000000..f14de85f --- /dev/null +++ b/github/workflow/duplicate-issues.yml @@ -0,0 +1,20 @@ +name: Close duplicate issues + +on: [issues] + +jobs: + example: + runs-on: ubuntu-latest + steps: + - uses: spyder-ide/action-close-duplicate-issues@master + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + items: >- + [ + { + "pattern": "Add Selection Based support for Java", + "reply": "Duplicate issue", + "labels": ["resolution:Duplicate"], + "close": true + }, + ] From c7c76bf2c590296811bf8c638d610ce3b481906b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 13:44:47 -0600 Subject: [PATCH 238/410] Revert "Add bot to close duplicate issues" This reverts commit 35a50d15927f496b33eef60f0f8cbf94c8a262fc. --- github/workflow/duplicate-issues.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 github/workflow/duplicate-issues.yml diff --git a/github/workflow/duplicate-issues.yml b/github/workflow/duplicate-issues.yml deleted file mode 100644 index f14de85f..00000000 --- a/github/workflow/duplicate-issues.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Close duplicate issues - -on: [issues] - -jobs: - example: - runs-on: ubuntu-latest - steps: - - uses: spyder-ide/action-close-duplicate-issues@master - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - items: >- - [ - { - "pattern": "Add Selection Based support for Java", - "reply": "Duplicate issue", - "labels": ["resolution:Duplicate"], - "close": true - }, - ] From 77a452c6b3710bfe070c7eedf48d449bf14fb9e9 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 13:49:40 -0600 Subject: [PATCH 239/410] Do not create GitHub issue https://github.com/atom-ide-community/atom-script/issues/795#issuecomment-183212396 --- lib/script-view.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/script-view.js b/lib/script-view.js index 3c05a2fc..d7a4a652 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -104,20 +104,20 @@ export default class ScriptView extends MessagePanelView { } createGitHubIssueLink(argType, lang) { - const title = `Add ${argType} support for ${lang}`; - const body = `##### Platform: \`${process.platform}\`\n---\n`; - let encodedURI = encodeURI(`https://github.com/rgbkrk/atom-script/issues/new?title=${title}&body=${body}`); - // NOTE: Replace "#" after regular encoding so we don't double escape it. - encodedURI = encodedURI.replace(/#/g, '%23'); + // const title = `Add ${argType} support for ${lang}`; + // const body = `##### Platform: \`${process.platform}\`\n---\n`; + // let encodedURI = encodeURI(`https://github.com/rgbkrk/atom-script/issues/new?title=${title}&body=${body}`); + // // NOTE: Replace "#" after regular encoding so we don't double escape it. + // encodedURI = encodedURI.replace(/#/g, '%23'); const err = $$(function () { this.p({ class: 'block' }, `${argType} runner not available for ${lang}.`); - this.p({ class: 'block' }, () => { - this.text('If it should exist, add an '); - this.a({ href: encodedURI }, 'issue on GitHub'); - this.text(', or send your own pull request.'); - }, - ); + // this.p({ class: 'block' }, () => { + // this.text('If it should exist, add an '); + // this.a({ href: encodedURI }, 'issue on GitHub'); + // this.text(', or send your own pull request.'); + // }, + // ); }); this.handleError(err); } From 077a62a717d8ab61ea47fbdc81578014e38f18f1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 13:54:00 -0600 Subject: [PATCH 240/410] Prepare v3.26.1 release --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6469d933..287f3e7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.26.0", + "version": "3.26.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c3326fa1..154fc5cc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.26.0", + "version": "3.26.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 7752b3baf91114d40f0d5c13d4b375146de7596f Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 14:26:45 -0600 Subject: [PATCH 241/410] chore: add test script --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 154fc5cc..2c337bf1 100644 --- a/package.json +++ b/package.json @@ -365,7 +365,8 @@ }, "scripts": { "lint": "eslint .", - "lint:fix": "eslint . --fix" + "lint:fix": "eslint . --fix", + "test": "apm test" }, "babel": { "presets": [ From 085809e8779f96f1434c13a071feec5bfc1c2cf5 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 14:27:14 -0600 Subject: [PATCH 242/410] chore: add CI github-actions --- .github/workflows/CI.yml | 84 ++++++++++++++++++++++++++++++++++++++++ .travis.yml | 37 ------------------ 2 files changed, 84 insertions(+), 37 deletions(-) create mode 100644 .github/workflows/CI.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 00000000..0fab52b0 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,84 @@ +name: CI +on: + - pull_request + - push + +jobs: + Test: + if: "!contains(github.event.head_commit.message, '[skip ci]')" + name: ${{ matrix.os }} - Atom ${{ matrix.atom_channel }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + atom_channel: [stable, beta] + steps: + - uses: actions/checkout@v2 + - uses: UziTech/action-setup-atom@v1 + with: + channel: ${{ matrix.atom_channel }} + - name: Versions + run: apm -v + + - name: Install APM dependencies + run: | + apm install + + - name: Run tests 👩🏾‍💻 + run: npm run test + + Lint: + if: "!contains(github.event.head_commit.message, '[skip ci]')" + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Commit lint ✨ + uses: wagoid/commitlint-github-action@v1 + - uses: actions/setup-node@v2 + with: + node-version: "12.x" + - name: Install NPM dependencies + run: | + npm install + - name: Lint ✨ + run: npm run lint + + # Release: + # needs: [Test, Lint] + # if: github.ref == 'refs/heads/master' && + # github.event.repository.fork == false + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 + # - uses: UziTech/action-setup-atom@v1 + # - uses: actions/setup-node@v1 + # with: + # node-version: "12.x" + # - name: NPM install + # run: npm install + # - name: Build and Commit + # run: npm run build-commit + # # NOTE: uncomment when ready + # # - name: Release 🎉 + # # uses: cycjimmy/semantic-release-action@v2 + # # with: + # # extends: | + # # @semantic-release/apm-config + # # env: + # # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # # ATOM_ACCESS_TOKEN: ${{ secrets.ATOM_ACCESS_TOKEN }} + + Skip: + if: contains(github.event.head_commit.message, '[skip ci]') + runs-on: ubuntu-latest + steps: + - name: Skip CI 🚫 + run: echo skip ci diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9c5485d2..00000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -### Project specific config ### -language: generic - -env: - global: - - APM_TEST_PACKAGES="" - - ATOM_LINT_WITH_BUNDLED_NODE="true" - - matrix: - - ATOM_CHANNEL=stable - - ATOM_CHANNEL=beta - -os: - - linux - - osx - -### Generic setup follows ### -script: - - curl -s -O https://raw.githubusercontent.com/atom/ci/master/build-package.sh - - chmod u+x build-package.sh - - ./build-package.sh - -notifications: - email: - on_success: never - on_failure: change - -git: - depth: 10 - -addons: - apt: - packages: - - build-essential - - fakeroot - - git - - libsecret-1-dev From a4f30db84d2aaf39d1ebb57bce7976bd52acee86 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 14:27:28 -0600 Subject: [PATCH 243/410] chore: add bumper github action --- .github/workflows/bump_deps.yml | 64 +++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .github/workflows/bump_deps.yml diff --git a/.github/workflows/bump_deps.yml b/.github/workflows/bump_deps.yml new file mode 100644 index 00000000..c77f21ed --- /dev/null +++ b/.github/workflows/bump_deps.yml @@ -0,0 +1,64 @@ +name: Bump_Dependencies + +on: + schedule: + - cron: "0 0 * * *" + +jobs: + Bump_Dependencies: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: "12" + + - name: setup npm-check-updates + run: npm install -g npm-check-updates + + - run: | + ncu -u --dep prod + npm install + + + - uses: tibdex/github-app-token@v1 + id: generate-token + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + - uses: peter-evans/create-pull-request@v3 + with: + token: ${{ steps.generate-token.outputs.token }} + commit-message: Update Dependencies + title: "fix: Update Dependencies" + labels: Dependencies + branch: "Bump_Dependencies" + + + Bump_devDependencies: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2-beta + with: + node-version: "12" + + - name: setup npm-check-updates + run: npm install -g npm-check-updates + + - run: | + ncu -u --dep dev + npm install + + - uses: tibdex/github-app-token@v1 + id: generate-token + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + - uses: peter-evans/create-pull-request@v3 + with: + token: ${{ steps.generate-token.outputs.token }} + commit-message: Update devDependencies + title: "chore: Update devDependencies" + labels: Dependencies + branch: "Bump_devDependencies" From 4ba6dd04cb88d5aaa6ace223a2a6f95f8112023f Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 14:31:34 -0600 Subject: [PATCH 244/410] chore: add gitattribute to normalize line-endings (eslint) --- .gitattributes | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..b06680b4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +* text=auto eol=lf +*.{cmd,[cC][mM][dD]} text eol=crlf +*.{bat,[bB][aA][tT]} text eol=crlf + +# don't diff machine generated files +dist/ -diff +package-lock.json -diff From b6a12a106fe54d8a174c7c2954ce56837262b8f4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 14:32:13 -0600 Subject: [PATCH 245/410] chore: lint fix --- lib/header-view.js | 1 - lib/runner.js | 1 - lib/script-options-view.js | 1 - lib/script-view.js | 2 +- 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/header-view.js b/lib/header-view.js index 66d0ca1a..579a5c30 100644 --- a/lib/header-view.js +++ b/lib/header-view.js @@ -3,7 +3,6 @@ import { View } from 'atom-space-pen-views'; export default class HeaderView extends View { - static content() { return this.div({ class: 'header-view' }, () => { this.span({ class: 'heading-title', outlet: 'title' }); diff --git a/lib/runner.js b/lib/runner.js index b53f7b23..c45365f5 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -5,7 +5,6 @@ import fs from 'fs'; import path from 'path'; export default class Runner { - // Public: Creates a Runner instance // // * `scriptOptions` a {ScriptOptions} object instance diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 158a52ba..7af8594a 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -6,7 +6,6 @@ import _ from 'underscore'; import ScriptInputView from './script-input-view'; export default class ScriptOptionsView extends View { - static content() { this.div({ class: 'options-view' }, () => { this.h4({ class: 'modal-header' }, 'Configure Run Options'); diff --git a/lib/script-view.js b/lib/script-view.js index d7a4a652..85b8d1b3 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -137,7 +137,7 @@ export default class ScriptView extends MessagePanelView { showNoLanguageSpecified() { const err = $$(function () { this.p('You must select a language in the lower right, or save the file with an appropriate extension.', - ); + ); }); this.handleError(err); } From 3c1de63c04156c26e4bd86e6421a693370c47fec Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 14:45:20 -0600 Subject: [PATCH 246/410] test: use tempty to create a temp file --- package-lock.json | 336 ++++++++++++++++++++++++++++++++++++++ package.json | 3 +- spec/code-context-spec.js | 21 ++- spec/grammars-spec.js | 9 +- 4 files changed, 360 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 287f3e7c..4784be7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,32 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, "acorn": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", @@ -27,6 +53,16 @@ } } }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -119,6 +155,12 @@ "es-abstract": "^1.7.0" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", @@ -1002,6 +1044,12 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1124,6 +1172,12 @@ "which": "^1.2.9" } }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, "d": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", @@ -1214,6 +1268,60 @@ } } }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "dependencies": { + "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 + }, + "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 + }, + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -1222,6 +1330,23 @@ "repeating": "^2.0.0" } }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -1675,6 +1800,89 @@ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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 + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -1687,6 +1895,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -2322,6 +2539,34 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -2460,6 +2705,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2679,6 +2930,18 @@ "kind-of": "^3.0.2" } }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2729,6 +2992,12 @@ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", @@ -2891,6 +3160,12 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "optional": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", @@ -3223,6 +3498,15 @@ "p-limit": "^1.1.0" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -3288,6 +3572,12 @@ "pify": "^2.0.0" } }, + "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": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -3847,6 +4137,12 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "optional": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -3865,6 +4161,12 @@ "is-promise": "^2.1.0" } }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -4306,6 +4608,25 @@ } } }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, + "tempy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.0.tgz", + "integrity": "sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==", + "dev": true, + "requires": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -4393,6 +4714,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -4424,6 +4751,15 @@ "set-value": "^2.0.1" } }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", diff --git a/package.json b/package.json index 2c337bf1..89449352 100644 --- a/package.json +++ b/package.json @@ -347,7 +347,8 @@ "babel-eslint": "^7.1.1", "eslint": "^4.18.2", "eslint-config-airbnb-base": "^10.0.1", - "eslint-plugin-import": "^2.2.0" + "eslint-plugin-import": "^2.2.0", + "tempy": "^1.0.0" }, "providedServices": { "default-script-runtime": { diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index 89dedc0d..eb15c92c 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -1,10 +1,17 @@ 'use babel'; +import tempy from 'tempy'; +import path from 'path'; + import CodeContext from '../lib/code-context'; describe('CodeContext', () => { + const testFile = 'test.txt'; + let testFilePath; + beforeEach(() => { - this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); + testFilePath = path.join(tempy.directory(), testFile); + this.codeContext = new CodeContext(testFile, testFilePath, null); // TODO: Test using an actual editor or a selection? this.dummyTextSource = {}; this.dummyTextSource.getText = () => "print 'hello world!'"; @@ -12,25 +19,25 @@ describe('CodeContext', () => { describe('fileColonLine when lineNumber is not set', () => { it('returns the full filepath when fullPath is truthy', () => { - expect(this.codeContext.fileColonLine()).toMatch('/tmp/test.txt'); - expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); + expect(this.codeContext.fileColonLine()).toMatch(testFilePath); + expect(this.codeContext.fileColonLine(true)).toMatch(testFilePath); }); it('returns only the filename and line number when fullPath is falsy', () => { - expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); + expect(this.codeContext.fileColonLine(false)).toMatch(testFile); }); }); describe('fileColonLine when lineNumber is set', () => { it('returns the full filepath when fullPath is truthy', () => { this.codeContext.lineNumber = 42; - expect(this.codeContext.fileColonLine()).toMatch('/tmp/test.txt'); - expect(this.codeContext.fileColonLine(true)).toMatch('/tmp/test.txt'); + expect(this.codeContext.fileColonLine()).toMatch(testFilePath); + expect(this.codeContext.fileColonLine(true)).toMatch(testFilePath); }); it('returns only the filename and line number when fullPath is falsy', () => { this.codeContext.lineNumber = 42; - expect(this.codeContext.fileColonLine(false)).toMatch('test.txt'); + expect(this.codeContext.fileColonLine(false)).toMatch(testFile); }); }); diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index d7ca9705..9ba5d1a5 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -1,13 +1,20 @@ 'use babel'; +import tempy from 'tempy'; +import path from 'path'; + /* eslint-disable no-unused-vars, global-require, no-undef */ import CodeContext from '../lib/code-context'; import OperatingSystem from '../lib/grammar-utils/operating-system'; import grammarMap from '../lib/grammars'; describe('grammarMap', () => { + const testFile = 'test.txt'; + let testFilePath; + beforeEach(() => { - this.codeContext = new CodeContext('test.txt', '/tmp/test.txt', null); + testFilePath = path.join(tempy.directory(), testFile); + this.codeContext = new CodeContext(testFile, testFilePath, null); // TODO: Test using an actual editor or a selection? this.dummyTextSource = {}; this.dummyTextSource.getText = () => ''; From a8ae690b3b87951bbff17ab50feb87de1d3132f0 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 14:59:27 -0600 Subject: [PATCH 247/410] test: exclude the failing tests from running on Windows and Linux --- spec/grammars-spec.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 9ba5d1a5..4954b984 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -26,7 +26,13 @@ describe('grammarMap', () => { const modes = grammarMap[lang]; for (const mode in modes) { const commandContext = modes[mode]; - expect(commandContext.command).toBeDefined(); + // TODO: fix the test for linux and windows + if (process.platform === 'darwin') { + expect(commandContext.command).toBeDefined(); + } else { + /* eslint-disable no-console */ + console.warn(`This test does not work on ${process.platform}`, commandContext.command); + } const argList = commandContext.args(this.codeContext); expect(argList).toBeDefined(); } @@ -65,6 +71,7 @@ describe('grammarMap', () => { describe('C++', () => it('returns the appropriate File Based runner on Mac OS X', () => { + if (process.platform === 'win32') return; OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); From 8ffb84bb8c362e6afb8e482db95ae8d313059eeb Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 15:05:04 -0600 Subject: [PATCH 248/410] test: use toEqual instead of toMatch --- spec/code-context-spec.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index eb15c92c..f76bf7de 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -19,12 +19,12 @@ describe('CodeContext', () => { describe('fileColonLine when lineNumber is not set', () => { it('returns the full filepath when fullPath is truthy', () => { - expect(this.codeContext.fileColonLine()).toMatch(testFilePath); - expect(this.codeContext.fileColonLine(true)).toMatch(testFilePath); + expect(this.codeContext.fileColonLine()).toEqual(testFilePath); + expect(this.codeContext.fileColonLine(true)).toEqual(testFilePath); }); it('returns only the filename and line number when fullPath is falsy', () => { - expect(this.codeContext.fileColonLine(false)).toMatch(testFile); + expect(this.codeContext.fileColonLine(false)).toEqual(testFile); }); }); From 25f446f4ffdfb941b8abc01990b9c2f19de69af8 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 15:11:13 -0600 Subject: [PATCH 249/410] tests: fix fileColonLine test --- spec/code-context-spec.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index f76bf7de..c98b622c 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -31,13 +31,13 @@ describe('CodeContext', () => { describe('fileColonLine when lineNumber is set', () => { it('returns the full filepath when fullPath is truthy', () => { this.codeContext.lineNumber = 42; - expect(this.codeContext.fileColonLine()).toMatch(testFilePath); - expect(this.codeContext.fileColonLine(true)).toMatch(testFilePath); + expect(this.codeContext.fileColonLine()).toEqual(`${testFilePath}:42`); + expect(this.codeContext.fileColonLine(true)).toEqual(`${testFilePath}:42`); }); it('returns only the filename and line number when fullPath is falsy', () => { this.codeContext.lineNumber = 42; - expect(this.codeContext.fileColonLine(false)).toMatch(testFile); + expect(this.codeContext.fileColonLine(false)).toEqual(`${testFile}:42`); }); }); From ab266d227470ec15db868c50fc20718ee406aabb Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 15:11:59 -0600 Subject: [PATCH 250/410] chore: change test script to atom --test spec --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 89449352..8ab277c7 100644 --- a/package.json +++ b/package.json @@ -367,7 +367,7 @@ "scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix", - "test": "apm test" + "test": "atom test --space" }, "babel": { "presets": [ From 7ba6340f7702ffa852754e1bacc3da949a6081ba Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 15:18:14 -0600 Subject: [PATCH 251/410] chore: remove package-lock.json --- .gitignore | 2 + package-lock.json | 4892 --------------------------------------------- 2 files changed, 2 insertions(+), 4892 deletions(-) delete mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index d35820bc..98aa1d1d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ npm-debug.log node_modules examples/test/ .sass-cache/ + +package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 4784be7e..00000000 --- a/package-lock.json +++ /dev/null @@ -1,4892 +0,0 @@ -{ - "name": "script", - "version": "3.26.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "ansi-to-html": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.4.2.tgz", - "integrity": "sha1-UQLgJzpZi+L40IiWYDsXmw/fzxE=", - "requires": { - "entities": "^1.1.1" - } - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "optional": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "optional": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "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==", - "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=", - "optional": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "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=", - "optional": true - }, - "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==", - "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==", - "optional": true - }, - "atom-message-panel": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/atom-message-panel/-/atom-message-panel-1.3.1.tgz", - "integrity": "sha512-nLi19faNBl/kabrf6itBkHcLrnpUeiGbpda+dHufAODKH+I+odoPRCxx7EZ+mCHEsBMhHNXxLWOLA+Mm9pumbA==", - "requires": { - "atom-space-pen-views": "^2.2.0" - } - }, - "atom-space-pen-views": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.2.0.tgz", - "integrity": "sha1-plsskg7QL3JAFPp9Plw9ePv1mZc=", - "requires": { - "fuzzaldrin": "^2.1.0", - "space-pen": "^5.1.2" - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "optional": true, - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "babel-eslint": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", - "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "babel-traverse": "^6.23.1", - "babel-types": "^6.23.0", - "babylon": "^6.17.0" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "optional": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "optional": true - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "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==", - "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=", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "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": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "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 - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001006", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001006.tgz", - "integrity": "sha512-MXnUVX27aGs/QINz+QG1sWSLDr3P1A3Hq5EUWoIt0T7K24DuvMxZEnh3Y5aHlJW6Bz2aApJdSewdYLd8zQnUuw==" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "optional": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "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==", - "optional": true, - "requires": { - "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=", - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coffeescript": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.4.1.tgz", - "integrity": "sha512-34GV1aHrsMpTaO3KfMJL40ZNuvKDR/g98THHnE9bQj8HjMaZvSrLik99WWqyMhRtbe8V5hpx5iLgdcSvM/S2wg==", - "optional": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "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 - }, - "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==", - "optional": 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==", - "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=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "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=", - "optional": true - }, - "core-js": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", - "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==" - }, - "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=" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "d": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", - "requires": { - "es5-ext": "~0.10.2" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "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=", - "optional": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "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==", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "dependencies": { - "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 - }, - "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 - }, - "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, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "electron-to-chromium": { - "version": "1.3.296", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz", - "integrity": "sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ==" - }, - "emissary": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz", - "integrity": "sha1-phjZLWgrIy0xER3DYlpd9mF5lgY=", - "requires": { - "es6-weak-map": "^0.1.2", - "mixto": "1.x", - "property-accessors": "^1.1", - "underscore-plus": "1.x" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "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" - } - }, - "es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.52", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.52.tgz", - "integrity": "sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.2", - "next-tick": "~1.0.0" - }, - "dependencies": { - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - } - } - }, - "es6-iterator": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", - "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", - "requires": { - "d": "~0.1.1", - "es5-ext": "~0.10.5", - "es6-symbol": "~2.0.1" - } - }, - "es6-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", - "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", - "requires": { - "d": "~0.1.1", - "es5-ext": "~0.10.5" - } - }, - "es6-weak-map": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", - "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", - "requires": { - "d": "~0.1.1", - "es5-ext": "~0.10.6", - "es6-iterator": "~0.1.3", - "es6-symbol": "~2.0.1" - } - }, - "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=" - }, - "eslint": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "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 - }, - "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 - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "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" - } - } - } - }, - "eslint-config-airbnb-base": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz", - "integrity": "sha1-8X1OUpksHUXRt3E++81ezQ5+BQY=", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" - } - }, - "eslint-module-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", - "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", - "dev": true, - "requires": { - "debug": "^2.6.8", - "pkg-dir": "^2.0.0" - } - }, - "eslint-plugin-import": { - "version": "2.18.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", - "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.11.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "optional": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "optional": true, - "requires": { - "fill-range": "^2.1.0" - } - }, - "ext": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.1.2.tgz", - "integrity": "sha512-/KLjJdTNyDepCihrk4HQt57nAE1IRCEo5jUt+WgWGCr1oARhibDvmI2DMcSNWood1T9AUWwq+jaV1wvRqaXfnA==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "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==", - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "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-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "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, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "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 - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "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" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "optional": true - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "optional": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "optional": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "optional": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "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==", - "optional": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": 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" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": 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" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "fuzzaldrin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz", - "integrity": "sha1-kCBMPi/appQbso0WZF1BgGOpDps=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "optional": true - }, - "glob": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", - "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", - "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-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "optional": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "grim": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/grim/-/grim-1.5.0.tgz", - "integrity": "sha1-sysI71Z88YUvgXWe2caLDXE5ajI=", - "requires": { - "emissary": "^1.2.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "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", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "optional": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "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=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "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=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "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.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "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" - } - } - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "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=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "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", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "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==", - "optional": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": 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=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "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==", - "optional": true - } - } - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "optional": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - }, - "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==", - "optional": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "optional": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "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==", - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "optional": true, - "requires": { - "isarray": "1.0.0" - } - }, - "jquery": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", - "integrity": "sha1-IoveaYoMYUMdwmMKahVPFYkNIxc=" - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "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==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "optional": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "optional": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "optional": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "optional": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "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==", - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mixto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz", - "integrity": "sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "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" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "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=", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "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" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "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=", - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true - }, - "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=", - "optional": true, - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "optional": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "optional": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "optional": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "optional": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "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 - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "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": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "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=", - "optional": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "optional": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "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==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "property-accessors": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz", - "integrity": "sha1-Hd6EAkYxhlkJ7zBwM2VoDF+SixU=", - "requires": { - "es6-weak-map": "^0.1.2", - "mixto": "1.x" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "optional": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "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==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "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=", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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=", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.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=", - "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=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "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=", - "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=", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "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==", - "optional": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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=", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "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=", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "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=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "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" - } - } - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "optional": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "optional": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "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=" - } - } - }, - "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=", - "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==", - "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=", - "optional": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "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=", - "optional": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "optional": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "*" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "optional": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "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==", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "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=", - "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=", - "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==", - "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=", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "optional": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "optional": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "^0.5.6" - } - }, - "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=", - "optional": true - }, - "space-pen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/space-pen/-/space-pen-5.1.2.tgz", - "integrity": "sha1-Ivu+EOCwROe3pHsCPamdlLWE748=", - "requires": { - "grim": "^1.0.0", - "jquery": "2.1.4", - "underscore-plus": "1.x" - } - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "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", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "optional": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "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=", - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "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=", - "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": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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" - } - } - } - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true - }, - "tempy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.0.tgz", - "integrity": "sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==", - "dev": true, - "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "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=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "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=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - } - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" - }, - "underscore-plus": { - "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" - } - }, - "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==", - "optional": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "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=", - "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=", - "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=", - "optional": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "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==", - "optional": true - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "optional": true, - "requires": { - "user-home": "^1.1.1" - } - }, - "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": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } -} From 848c8f7a2ae41a5ec4cd8581c5381716fc5ab3d0 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 15:24:38 -0600 Subject: [PATCH 252/410] chore: remove the maintainers need from the readme [skip ci] --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 569fb3d7..9a09a512 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,6 @@ **Run code in Atom!** -:warning: [We need maintainers and developers to keep atom script from growing stagnant! Please see #1550 for background](https://github.com/rgbkrk/atom-script/issues/1550) :warning: - Run scripts based on file name, a selection of code, or by line number. ![](https://cloud.githubusercontent.com/assets/1694055/3226201/c458acbc-f067-11e3-84a0-da27fe334f5e.gif) From c6dfb161373b37c01ff09804cda0523efb9593d9 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 15:28:50 -0600 Subject: [PATCH 253/410] chore: move the keywords and contributors list to the bottom of the file [skip ci] --- package.json | 210 ++++++++++++++++++++++++++------------------------- 1 file changed, 107 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 8ab277c7..5aee04a1 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,117 @@ "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", + "repository": "https://github.com/rgbkrk/atom-script", + "license": "Apache-2.0", + "engines": { + "atom": ">=0.174.0" + }, + "activationCommands": { + "atom-text-editor": [ + "script:run", + "script:run-by-line-number", + "script:run-options", + "script:run-with-profile" + ] + }, + "dependencies": { + "ansi-to-html": "^0.4.2", + "atom-message-panel": "1.3.1", + "atom-space-pen-views": "^2.0.3", + "babel-preset-env": "^1.6.0", + "strip-ansi": "^3.0.0", + "underscore": "^1.8.3", + "uuid": "^3.0.1" + }, + "optionalDependencies": { + "babel-cli": "^6.26.0", + "coffeescript": "^2" + }, + "devDependencies": { + "babel-eslint": "^7.1.1", + "eslint": "^4.18.2", + "eslint-config-airbnb-base": "^10.0.1", + "eslint-plugin-import": "^2.2.0", + "tempy": "^1.0.0" + }, + "providedServices": { + "default-script-runtime": { + "description": "Provides default runtime that's configurable through Atom editor", + "versions": { + "0.1.0": "provideDefaultRuntime" + } + }, + "provide-blank-runtime": { + "description": "Provides a Runtime instance that's intended to be more programatically configurable", + "versions": { + "0.1.0": "provideBlankRuntime" + } + } + }, + "scripts": { + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "test": "atom test --space" + }, + "babel": { + "presets": [ + [ + "env", + { + "targets": { + "node": "current" + } + } + ] + ] + }, + "keywords": [ + "script", + "runner", + "Bash", + "Behat Feature", + "Clojure", + "Coffeescript", + "CoffeeScript (Literate)", + "Cucumber (Gherkin)", + "Elixir", + "Erlang", + "F#", + "FSharp", + "F*", + "FStar", + "Go", + "Groovy", + "Haskell", + "Javascript", + "Julia", + "LaTeX", + "Lua", + "mongoDB", + "newLISP", + "Perl", + "PHP", + "PowerShell", + "Python", + "RSpec", + "Ruby", + "Ruby on Rails", + "Scala", + "Swift", + "run", + "Applescript", + "code", + "LAMMPS" + ], "contributors": [ { "name": "Kyle Kelley", "email": "rgbkrk@gmail.com" }, + { + "name": "Amin Yahyaabadi", + "email": "aminyahyaabadi74@gmail.com" + }, { "name": "GeneLocklin", "email": "gene.locklin@gmail.com" @@ -278,107 +384,5 @@ "name": "Bruno Durán", "email": "bruno.duran.rey@gmail.com" } - ], - "repository": "https://github.com/rgbkrk/atom-script", - "keywords": [ - "script", - "runner", - "Bash", - "Behat Feature", - "Clojure", - "Coffeescript", - "CoffeeScript (Literate)", - "Cucumber (Gherkin)", - "Elixir", - "Erlang", - "F#", - "FSharp", - "F*", - "FStar", - "Go", - "Groovy", - "Haskell", - "Javascript", - "Julia", - "LaTeX", - "Lua", - "mongoDB", - "newLISP", - "Perl", - "PHP", - "PowerShell", - "Python", - "RSpec", - "Ruby", - "Ruby on Rails", - "Scala", - "Swift", - "run", - "Applescript", - "code", - "LAMMPS" - ], - "license": "Apache-2.0", - "engines": { - "atom": ">=0.174.0" - }, - "activationCommands": { - "atom-text-editor": [ - "script:run", - "script:run-by-line-number", - "script:run-options", - "script:run-with-profile" - ] - }, - "dependencies": { - "ansi-to-html": "^0.4.2", - "atom-message-panel": "1.3.1", - "atom-space-pen-views": "^2.0.3", - "babel-preset-env": "^1.6.0", - "strip-ansi": "^3.0.0", - "underscore": "^1.8.3", - "uuid": "^3.0.1" - }, - "optionalDependencies": { - "babel-cli": "^6.26.0", - "coffeescript": "^2" - }, - "devDependencies": { - "babel-eslint": "^7.1.1", - "eslint": "^4.18.2", - "eslint-config-airbnb-base": "^10.0.1", - "eslint-plugin-import": "^2.2.0", - "tempy": "^1.0.0" - }, - "providedServices": { - "default-script-runtime": { - "description": "Provides default runtime that's configurable through Atom editor", - "versions": { - "0.1.0": "provideDefaultRuntime" - } - }, - "provide-blank-runtime": { - "description": "Provides a Runtime instance that's intended to be more programatically configurable", - "versions": { - "0.1.0": "provideBlankRuntime" - } - } - }, - "scripts": { - "lint": "eslint .", - "lint:fix": "eslint . --fix", - "test": "atom test --space" - }, - "babel": { - "presets": [ - [ - "env", - { - "targets": { - "node": "current" - } - } - ] - ] - } + ] } From 57d140d416142025ca9455efcc8da55bcde23988 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 15:29:58 -0600 Subject: [PATCH 254/410] chore: update the repo link [skip ci] --- CHANGELOG.md | 2 +- README.md | 4 ++-- lib/grammars/database.coffee | 2 +- lib/script-view.js | 4 ++-- package.json | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83c22bbb..79875669 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -270,7 +270,7 @@ ## 2.16.0 * Add D support * Add Rust support -* Fix broken ANSI/HTML escaping [#238](https://github.com/rgbkrk/atom-script/issues/238) +* Fix broken ANSI/HTML escaping [#238](https://github.com/atom-ide-community/atom-script/issues/238) * Turn on colored diagnostics for the C language family ## 2.15.1 diff --git a/README.md b/README.md index 9a09a512..5ca1e7d7 100644 --- a/README.md +++ b/README.md @@ -111,7 +111,7 @@ Currently supported grammars are: | [Zsh] | Yes | Yes | | | Runs if your `SHELL` or `#!` line is `zsh`. | [-wow]: https://atom.io/packages/language-lua-wow -[#70]: https://github.com/rgbkrk/atom-script/pull/70 +[#70]: https://github.com/atom-ide-community/atom-script/pull/70 [`binutils`]: https://www.gnu.org/software/binutils/ [`gfortran`]: https://gcc.gnu.org/wiki/GFortran [`ghc`]: https://haskell.org/ghc @@ -315,7 +315,7 @@ atom . to get it to run with the *current* directory as the default place to run scripts from. -If you *really* wish to open atom from a launcher/icon, see [this issue for a variety of workarounds that have been suggested](https://github.com/rgbkrk/atom-script/issues/61#issuecomment-37337827). +If you *really* wish to open atom from a launcher/icon, see [this issue for a variety of workarounds that have been suggested](https://github.com/atom-ide-community/atom-script/issues/61#issuecomment-37337827). ## Usage diff --git a/lib/grammars/database.coffee b/lib/grammars/database.coffee index aa4c2e30..e7b5dc3e 100644 --- a/lib/grammars/database.coffee +++ b/lib/grammars/database.coffee @@ -1,4 +1,4 @@ -message = "SQL requires setting 'Script: Run Options' directly. See https://github.com/rgbkrk/atom-script/tree/master/examples/hello.sql for further information." +message = "SQL requires setting 'Script: Run Options' directly. See https://github.com/atom-ide-community/atom-script/tree/master/examples/hello.sql for further information." module.exports = diff --git a/lib/script-view.js b/lib/script-view.js index 85b8d1b3..421f1a71 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -106,7 +106,7 @@ export default class ScriptView extends MessagePanelView { createGitHubIssueLink(argType, lang) { // const title = `Add ${argType} support for ${lang}`; // const body = `##### Platform: \`${process.platform}\`\n---\n`; - // let encodedURI = encodeURI(`https://github.com/rgbkrk/atom-script/issues/new?title=${title}&body=${body}`); + // let encodedURI = encodeURI(`https://github.com/atom-ide-community/atom-script/issues/new?title=${title}&body=${body}`); // // NOTE: Replace "#" after regular encoding so we don't double escape it. // encodedURI = encodedURI.replace(/#/g, '%23'); @@ -147,7 +147,7 @@ export default class ScriptView extends MessagePanelView { this.p({ class: 'block' }, `Command not configured for ${lang}!`); this.p({ class: 'block' }, () => { this.text('Add an '); - this.a({ href: `https://github.com/rgbkrk/atom-script/issues/new?title=Add%20support%20for%20${lang}` }, 'issue on GitHub'); + this.a({ href: `https://github.com/atom-ide-community/atom-script/issues/new?title=Add%20support%20for%20${lang}` }, 'issue on GitHub'); this.text(' or send your own Pull Request.'); }); }); diff --git a/package.json b/package.json index 5aee04a1..dc1ea3bb 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", - "repository": "https://github.com/rgbkrk/atom-script", + "repository": "https://github.com/atom-ide-community/atom-script", "license": "Apache-2.0", "engines": { "atom": ">=0.174.0" From cc13351f521f20d560f8b6c02fc1cdedb8cc7905 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 16:52:34 -0600 Subject: [PATCH 255/410] chore: fix test script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dc1ea3bb..9522c892 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "scripts": { "lint": "eslint .", "lint:fix": "eslint . --fix", - "test": "atom test --space" + "test": "atom --test spec" }, "babel": { "presets": [ From 67410896345e9974e36c65e7f2ddb5956e5f9a6e Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 17:09:07 -0600 Subject: [PATCH 256/410] test: increase timeout of waitsFor --- spec/runner-spec.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/runner-spec.js b/spec/runner-spec.js index 80d8cc6e..ad08c6b0 100644 --- a/spec/runner-spec.js +++ b/spec/runner-spec.js @@ -25,7 +25,7 @@ describe('Runner', () => { this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); }); - waitsFor(() => this.output !== null, 'File should execute', 500); + waitsFor(() => this.output !== null, 'File should execute', 2000); runs(() => expect(this.output).toEqual({ message: 'hello\n' })); }); @@ -39,7 +39,7 @@ describe('Runner', () => { this.runner.run(this.command, ['./spec/fixtures/ioTest.js'], {}, 'hello'); }); - waitsFor(() => this.output !== null, 'File should execute', 500); + waitsFor(() => this.output !== null, 'File should execute', 2000); runs(() => expect(this.output).toEqual({ message: 'TEST: hello\n' })); }); @@ -53,7 +53,7 @@ describe('Runner', () => { this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); }); - waitsFor(() => this.exited, 'Should receive exit callback', 500); + waitsFor(() => this.exited, 'Should receive exit callback', 2000); }); it('notifies about writing to stderr', () => { @@ -65,7 +65,7 @@ describe('Runner', () => { this.runner.run(this.command, ['./spec/fixtures/throw.js'], {}); }); - waitsFor(() => this.failedEvent, 'Should receive failure callback', 500); + waitsFor(() => this.failedEvent, 'Should receive failure callback', 2000); runs(() => expect(this.failedEvent.message).toMatch(/kaboom/)); }); @@ -79,7 +79,7 @@ describe('Runner', () => { this.runner.run(this.command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input'); }); - waitsFor(() => this.output !== null, 'File should execute', 500); + waitsFor(() => this.output !== null, 'File should execute', 2000); runs(() => expect(this.output).toEqual({ message: 'stdin terminated\n' })); }); From 5067578fa7e873ce9df90e07aadb9bbef2285725 Mon Sep 17 00:00:00 2001 From: AlexFrundin Date: Thu, 9 Jul 2020 17:26:01 +0300 Subject: [PATCH 257/410] fix for python3 in example/color.py' --- examples/color.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/color.py b/examples/color.py index 9faa2229..51446faf 100644 --- a/examples/color.py +++ b/examples/color.py @@ -2,14 +2,14 @@ def print_format_table(): """ prints table of formatted text format options """ - for style in xrange(8): - for fg in xrange(30, 38): + for style in range(8): + for fg in range(30, 38): s1 = '' - for bg in xrange(40, 48): + for bg in range(40, 48): format = ';'.join([str(style), str(fg), str(bg)]) s1 += '\x1b[%sm %s \x1b[0m' % (format, format) - print s1 - print '\n' + print(s1) + print('\n') print("BEFORE") From 80eed9f835ec1a1ab79128fb432c105edd3b966a Mon Sep 17 00:00:00 2001 From: sumanstats Date: Wed, 20 May 2020 14:07:23 +0545 Subject: [PATCH 258/410] Reflect Perl6 to Raku rename + [Raku](https://raku.org/) language has been renamed since October 2019 + The command to execute Raku scripts is `raku` command + Perl 6 FE extension used `perl.coffee` is renamed to `Perl 6` https://github.com/perl6/atom-language-perl6/commit/7068090f1adc7e73542a38eb8a3eab732e4ceb06 So this commit --- README.md | 7 ++++--- lib/grammars/perl.coffee | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5ca1e7d7..85b7b105 100644 --- a/README.md +++ b/README.md @@ -78,8 +78,8 @@ Currently supported grammars are: | [Oz] | Yes | Yes | [language-oz] | `ozc` | | | [Pandoc] Markdown | Yes | | [language-pfm] | [`panzer`] | | | [Pascal] | Yes | Yes | [language-pascal] | `fpc` | | -| Perl | Yes | Yes | | | | -| [Perl 6] | Yes | Yes | | `perl6` | | +| [Perl] | Yes | Yes | | | | +| [Raku] | Yes | Yes | | `raku` or `perl6` | | | PHP | Yes | Yes | | | | | [PostgreSQL] | Yes | Yes | [language-pgsql] | [`psql`] | Connects as user `PGUSER` to database `PGDATABASE`. Both default to your operating system's `USERNAME`, but can be set in the process environment or in Atom's [`init` file]: `process.env.PGUSER = {user name}` and `process.env.PGDATABASE = {database name}` | | [POV-Ray] | Yes | | [atom-language-povray] | `povengine`/`povray` | | @@ -264,8 +264,9 @@ Currently supported grammars are: [octave]: https://gnu.org/software/octave [oz]: https://mozart.github.io [pandoc]: https://pandoc.org -[perl 6]: https://perl6.org +[Raku]: https://raku.org [pascal]: https://freepascal.org +[Perl]: https://www.perl.org/ [PostgreSQL]: https://postgresql.org [POV-Ray]: http://www.povray.org/ [powershell]: https://docs.microsoft.com/powershell diff --git a/lib/grammars/perl.coffee b/lib/grammars/perl.coffee index 585c127b..2b975508 100644 --- a/lib/grammars/perl.coffee +++ b/lib/grammars/perl.coffee @@ -12,13 +12,13 @@ exports.Perl = command: 'perl' args: ({filepath}) -> [filepath] -exports['Perl 6'] = +exports['Raku'] = 'Selection Based': - command: 'perl6' + command: 'raku' args: (context) -> ['-e', context.getCode()] 'File Based': - command: 'perl6' + command: 'raku' args: ({filepath}) -> [filepath] -exports['Perl 6 FE'] = exports['Perl 6'] +exports['Raku/Perl 6'] = exports['Raku'] From d7bdcd48bcc610d69046ae1fd137a544b28d4378 Mon Sep 17 00:00:00 2001 From: sumanstats Date: Wed, 20 May 2020 14:32:17 +0545 Subject: [PATCH 259/410] Arrange languages alphabetically + Keep Raku alphabetically in README.md + `raku` is the executable now since Raku version 2019.11 release, We already have v2020.05.2 release, so command is `raku`, reflect that + Add Raku in keywords in package.json --- README.md | 2 +- lib/grammars/perl.coffee | 2 +- package.json | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 85b7b105..efacb381 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,6 @@ Currently supported grammars are: | [Pandoc] Markdown | Yes | | [language-pfm] | [`panzer`] | | | [Pascal] | Yes | Yes | [language-pascal] | `fpc` | | | [Perl] | Yes | Yes | | | | -| [Raku] | Yes | Yes | | `raku` or `perl6` | | | PHP | Yes | Yes | | | | | [PostgreSQL] | Yes | Yes | [language-pgsql] | [`psql`] | Connects as user `PGUSER` to database `PGDATABASE`. Both default to your operating system's `USERNAME`, but can be set in the process environment or in Atom's [`init` file]: `process.env.PGUSER = {user name}` and `process.env.PGDATABASE = {database name}` | | [POV-Ray] | Yes | | [atom-language-povray] | `povengine`/`povray` | | @@ -90,6 +89,7 @@ Currently supported grammars are: | Python | Yes | Yes | | | | | [R] | Yes | Yes | [language-r] | `Rscript` | | | [Racket] | Yes | Yes | [language-racket] | `racket` | | +| [Raku] | Yes | Yes | | `raku` | | | [Reason] | Yes | Yes | [language-reason] | `rebuild` | | | [Ren'Py] | Yes | No | [language-renpy] | `renpy` | Runs your project at the root of the current file. | | [Robot Framework] | Yes | No | [language-robot-framework] | `robot` | The output location depends on the `CWD` behaviour which can be altered in settings. | diff --git a/lib/grammars/perl.coffee b/lib/grammars/perl.coffee index 2b975508..a0aeefc8 100644 --- a/lib/grammars/perl.coffee +++ b/lib/grammars/perl.coffee @@ -21,4 +21,4 @@ exports['Raku'] = command: 'raku' args: ({filepath}) -> [filepath] -exports['Raku/Perl 6'] = exports['Raku'] +exports['Perl 6'] = exports['Raku'] diff --git a/package.json b/package.json index 9522c892..b40367d5 100644 --- a/package.json +++ b/package.json @@ -97,6 +97,7 @@ "PHP", "PowerShell", "Python", + "Raku", "RSpec", "Ruby", "Ruby on Rails", From 47aa3a78774b84ffb777c3b1620f611dfa3084f1 Mon Sep 17 00:00:00 2001 From: raylemon Date: Sat, 5 Sep 2020 11:27:24 +0200 Subject: [PATCH 260/410] Update doc.coffee support for ConTeXt MkIV and LMTX --- lib/grammars/doc.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/grammars/doc.coffee b/lib/grammars/doc.coffee index 2b988f63..ce84135e 100644 --- a/lib/grammars/doc.coffee +++ b/lib/grammars/doc.coffee @@ -44,6 +44,11 @@ exports.LaTeX = 'File Based': command: 'latexmk' args: ({filepath}) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', filepath] + +exports.ConTeXt = + 'File Based': + command: 'context' + args: ({filepath}) -> ['--autopdf','--nonstopmode', '--synctex','--noconsole',filepath] exports['LaTeX Beamer'] = exports.LaTeX From 368819fcfe261dfa0ae27486b638d7af545544a4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 17:39:12 -0600 Subject: [PATCH 261/410] 3.16.0 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79875669..f96d23f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 3.16.0 +* Renamed Perl6 to Raku +* Support for ConTeXt MkIV and LMTX +* Run the tests on all platforms + ## 3.15.0 * Improved documentation From 0d28c3b170ddf87cf89143cc8583803729f49fcb Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 17:39:54 -0600 Subject: [PATCH 262/410] Prepare v3.27.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b40367d5..d33bb471 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.26.1", + "version": "3.27.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 8624c4054ea4e2f3c9b97800086cc81b12fbb467 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 17:40:53 -0600 Subject: [PATCH 263/410] chore: fix changelog version [skip ci] --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f96d23f5..7c939e8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 3.16.0 +## 3.27.0 * Renamed Perl6 to Raku * Support for ConTeXt MkIV and LMTX * Run the tests on all platforms From 446e4bcf0ae4775077f9810952263277b4350770 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 17:14:48 -0600 Subject: [PATCH 264/410] fix: update uuid to v8 --- lib/grammar-utils.js | 4 ++-- lib/grammar-utils/d.js | 4 ++-- lib/grammar-utils/matlab.js | 4 ++-- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 07f05425..498d8c18 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -4,7 +4,7 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; -import uuid from 'uuid'; +import { v1 as uuidv1 } from 'uuid'; // Public: GrammarUtils - utilities for determining how to run code export default { @@ -21,7 +21,7 @@ export default { fs.mkdirSync(this.tempFilesDir); } - const tempFilePath = this.tempFilesDir + path.sep + uuid.v1() + extension; + const tempFilePath = this.tempFilesDir + path.sep + uuidv1() + extension; const file = fs.openSync(tempFilePath, 'w'); fs.writeSync(file, code); diff --git a/lib/grammar-utils/d.js b/lib/grammar-utils/d.js index 6d4adea3..b8316e23 100644 --- a/lib/grammar-utils/d.js +++ b/lib/grammar-utils/d.js @@ -4,7 +4,7 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; -import uuid from 'uuid'; +import { v1 as uuidv1 } from 'uuid'; // Public: GrammarUtils.D - a module which assist the creation of D temporary files export default { @@ -19,7 +19,7 @@ export default { try { if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } - const tempFilePath = `${this.tempFilesDir + path.sep}m${uuid.v1().split('-').join('_')}.d`; + const tempFilePath = `${this.tempFilesDir + path.sep}m${uuidv1().split('-').join('_')}.d`; const file = fs.openSync(tempFilePath, 'w'); fs.writeSync(file, code); diff --git a/lib/grammar-utils/matlab.js b/lib/grammar-utils/matlab.js index dcc87596..b969f5e8 100644 --- a/lib/grammar-utils/matlab.js +++ b/lib/grammar-utils/matlab.js @@ -4,7 +4,7 @@ import os from 'os'; import fs from 'fs'; import path from 'path'; -import uuid from 'uuid'; +import { v1 as uuidv1 } from 'uuid'; // Public: GrammarUtils.MATLAB - a module which assist the creation of MATLAB temporary files export default { @@ -19,7 +19,7 @@ export default { try { if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } - const tempFilePath = `${this.tempFilesDir + path.sep}m${uuid.v1().split('-').join('_')}.m`; + const tempFilePath = `${this.tempFilesDir + path.sep}m${uuidv1().split('-').join('_')}.m`; const file = fs.openSync(tempFilePath, 'w'); fs.writeSync(file, code); diff --git a/package.json b/package.json index d33bb471..fe98fc86 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "babel-preset-env": "^1.6.0", "strip-ansi": "^3.0.0", "underscore": "^1.8.3", - "uuid": "^3.0.1" + "uuid": "^8.3.2" }, "optionalDependencies": { "babel-cli": "^6.26.0", From 83507b8ce6773f2e3650f42778b2e54971a9d995 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 17:45:39 -0600 Subject: [PATCH 265/410] chore: enable semantic release [skip ci] --- .github/workflows/CI.yml | 49 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 0fab52b0..2c10ed72 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -51,30 +51,31 @@ jobs: - name: Lint ✨ run: npm run lint - # Release: - # needs: [Test, Lint] - # if: github.ref == 'refs/heads/master' && - # github.event.repository.fork == false - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v2 - # - uses: UziTech/action-setup-atom@v1 - # - uses: actions/setup-node@v1 - # with: - # node-version: "12.x" - # - name: NPM install - # run: npm install - # - name: Build and Commit - # run: npm run build-commit - # # NOTE: uncomment when ready - # # - name: Release 🎉 - # # uses: cycjimmy/semantic-release-action@v2 - # # with: - # # extends: | - # # @semantic-release/apm-config - # # env: - # # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # # ATOM_ACCESS_TOKEN: ${{ secrets.ATOM_ACCESS_TOKEN }} + Release: + needs: [Test, Lint] + if: github.ref == 'refs/heads/master' && + github.event.repository.fork == false + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: UziTech/action-setup-atom@v1 + - uses: actions/setup-node@v1 + with: + node-version: "12.x" + - name: NPM install + run: npm install + + # - name: Build and Commit + # run: npm run build-commit + + - name: Release 🎉 + uses: cycjimmy/semantic-release-action@v2 + with: + extends: | + @semantic-release/apm-config + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ATOM_ACCESS_TOKEN: ${{ secrets.ATOM_ACCESS_TOKEN }} Skip: if: contains(github.event.head_commit.message, '[skip ci]') From f5042b8f00cbe088749a95a5add4054d0ad4ced5 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 16:35:02 -0600 Subject: [PATCH 266/410] feat: use atom-space-pen-views-plus --- lib/header-view.js | 2 +- lib/script-input-view.js | 2 +- lib/script-options-view.js | 2 +- lib/script-profile-run-view.js | 2 +- lib/script-view.js | 2 +- package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/header-view.js b/lib/header-view.js index 579a5c30..5ce95959 100644 --- a/lib/header-view.js +++ b/lib/header-view.js @@ -1,6 +1,6 @@ 'use babel'; -import { View } from 'atom-space-pen-views'; +import { View } from 'atom-space-pen-views-plus'; export default class HeaderView extends View { static content() { diff --git a/lib/script-input-view.js b/lib/script-input-view.js index b461f23b..2e340f16 100644 --- a/lib/script-input-view.js +++ b/lib/script-input-view.js @@ -1,7 +1,7 @@ 'use babel'; import { Emitter, CompositeDisposable } from 'atom'; -import { View } from 'atom-space-pen-views'; +import { View } from 'atom-space-pen-views-plus'; export default class ScriptInputView extends View { static content() { diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 7af8594a..1444d197 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -1,7 +1,7 @@ 'use babel'; import { CompositeDisposable, Emitter } from 'atom'; -import { View } from 'atom-space-pen-views'; +import { View } from 'atom-space-pen-views-plus'; import _ from 'underscore'; import ScriptInputView from './script-input-view'; diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index b1f7ea0e..14ed19fe 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -2,7 +2,7 @@ /* eslint-disable func-names */ import { CompositeDisposable, Emitter } from 'atom'; -import { $$, SelectListView } from 'atom-space-pen-views'; +import { $$, SelectListView } from 'atom-space-pen-views-plus'; import ScriptInputView from './script-input-view'; export default class ScriptProfileRunView extends SelectListView { diff --git a/lib/script-view.js b/lib/script-view.js index 421f1a71..80aafbb8 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -1,7 +1,7 @@ 'use babel'; /* eslint-disable func-names */ -import { $$ } from 'atom-space-pen-views'; +import { $$ } from 'atom-space-pen-views-plus'; import { MessagePanelView } from 'atom-message-panel'; import _ from 'underscore'; import AnsiFilter from 'ansi-to-html'; diff --git a/package.json b/package.json index fe98fc86..b9e8e325 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "ansi-to-html": "^0.4.2", "atom-message-panel": "1.3.1", - "atom-space-pen-views": "^2.0.3", + "atom-space-pen-views-plus": "^3.0.4", "babel-preset-env": "^1.6.0", "strip-ansi": "^3.0.0", "underscore": "^1.8.3", From d5520d8bf6c080cd16e346ca2ca6697d22364b71 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 29 Dec 2020 23:55:43 +0000 Subject: [PATCH 267/410] chore(release): 3.27.1 [skip ci] --- CHANGELOG.md | 7 + package-lock.json | 4538 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 4546 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c939e8d..f21b0af2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.27.1](https://github.com/atom-ide-community/atom-script/compare/v3.27.0...v3.27.1) (2020-12-29) + + +### Bug Fixes + +* update uuid to v8 ([446e4bc](https://github.com/atom-ide-community/atom-script/commit/446e4bcf0ae4775077f9810952263277b4350770)) + ## 3.27.0 * Renamed Perl6 to Raku * Support for ConTeXt MkIV and LMTX diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..33be2ac6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4538 @@ +{ + "name": "script", + "version": "3.27.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "ansi-to-html": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.4.2.tgz", + "integrity": "sha1-UQLgJzpZi+L40IiWYDsXmw/fzxE=", + "requires": { + "entities": "^1.1.1" + } + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "optional": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "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==", + "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=", + "optional": true + }, + "array-includes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", + "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "get-intrinsic": "^1.0.1", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "optional": true + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "optional": true + }, + "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==", + "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==", + "optional": true + }, + "atom-message-panel": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/atom-message-panel/-/atom-message-panel-1.3.1.tgz", + "integrity": "sha512-nLi19faNBl/kabrf6itBkHcLrnpUeiGbpda+dHufAODKH+I+odoPRCxx7EZ+mCHEsBMhHNXxLWOLA+Mm9pumbA==", + "requires": { + "atom-space-pen-views": "^2.2.0" + } + }, + "atom-space-pen-views": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.2.0.tgz", + "integrity": "sha1-plsskg7QL3JAFPp9Plw9ePv1mZc=", + "requires": { + "fuzzaldrin": "^2.1.0", + "space-pen": "^5.1.2" + } + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "optional": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-eslint": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", + "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", + "babylon": "^6.17.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "optional": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "optional": true + } + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "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==", + "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=", + "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==", + "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==", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": 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==", + "optional": true + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "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==", + "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": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "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 + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + } + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001171", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001171.tgz", + "integrity": "sha512-5Alrh8TTYPG9IH4UkRqEBZoEToWRLvPbSQokvzSz0lii8/FOWKG4keO1HoYfPWs8IF/NH/dyNPg1cmJGvV3Zlg==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "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==", + "optional": true, + "requires": { + "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=", + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coffeescript": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.5.1.tgz", + "integrity": "sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ==", + "optional": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "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 + }, + "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==", + "optional": 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==", + "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=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "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=", + "optional": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "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=" + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "d": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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=", + "optional": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "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==", + "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==", + "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==", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": 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==", + "optional": true + } + } + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "dependencies": { + "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 + }, + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.3.633", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz", + "integrity": "sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA==" + }, + "emissary": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz", + "integrity": "sha1-phjZLWgrIy0xER3DYlpd9mF5lgY=", + "requires": { + "es6-weak-map": "^0.1.2", + "mixto": "1.x", + "property-accessors": "^1.1", + "underscore-plus": "1.x" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "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" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + } + } + }, + "es6-iterator": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", + "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.5", + "es6-symbol": "~2.0.1" + } + }, + "es6-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", + "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.5" + } + }, + "es6-weak-map": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", + "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.6", + "es6-iterator": "~0.1.3", + "es6-symbol": "~2.0.1" + } + }, + "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=" + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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 + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "eslint-config-airbnb-base": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz", + "integrity": "sha1-8X1OUpksHUXRt3E++81ezQ5+BQY=", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + } + }, + "eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "optional": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "optional": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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 + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "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==", + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "optional": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "optional": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "optional": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "optional": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "optional": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "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==", + "optional": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "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 + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "fuzzaldrin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz", + "integrity": "sha1-kCBMPi/appQbso0WZF1BgGOpDps=" + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "optional": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "optional": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "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==" + }, + "grim": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/grim/-/grim-1.5.0.tgz", + "integrity": "sha1-sysI71Z88YUvgXWe2caLDXE5ajI=", + "requires": { + "emissary": "^1.2.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "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", + "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=", + "optional": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + } + } + }, + "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=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "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 + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "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.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "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=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "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", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "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==", + "optional": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "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==", + "optional": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "optional": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "optional": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "optional": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "optional": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, + "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==", + "optional": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "optional": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "optional": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.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==", + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "optional": true, + "requires": { + "isarray": "1.0.0" + } + }, + "jquery": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", + "integrity": "sha1-IoveaYoMYUMdwmMKahVPFYkNIxc=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "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==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "optional": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "optional": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "optional": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "optional": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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==", + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz", + "integrity": "sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY=" + }, + "mkdirp": { + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "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=", + "optional": 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==", + "optional": true + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "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" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "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=", + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "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=", + "optional": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + } + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "optional": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "optional": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + } + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "optional": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "optional": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "optional": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "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 + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "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": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "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=", + "optional": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "optional": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "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==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "property-accessors": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz", + "integrity": "sha1-Hd6EAkYxhlkJ7zBwM2VoDF+SixU=", + "requires": { + "es6-weak-map": "^0.1.2", + "mixto": "1.x" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "optional": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "optional": 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==", + "optional": true + } + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "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==", + "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==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "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=", + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "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=", + "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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.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=", + "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=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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=", + "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=", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "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==", + "optional": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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=", + "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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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=", + "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==", + "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==", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": 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==", + "optional": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + } + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "optional": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "optional": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "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=" + } + } + }, + "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=", + "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==", + "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=", + "optional": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "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=", + "optional": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "optional": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "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==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "optional": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "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==", + "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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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=", + "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=", + "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==", + "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=", + "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==", + "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==", + "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==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": 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==", + "optional": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "optional": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "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==", + "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-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "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=", + "optional": true + }, + "space-pen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/space-pen/-/space-pen-5.1.2.tgz", + "integrity": "sha1-Ivu+EOCwROe3pHsCPamdlLWE748=", + "requires": { + "grim": "^1.0.0", + "jquery": "2.1.4", + "underscore-plus": "1.x" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": 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==", + "optional": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "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=", + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "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=", + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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" + } + } + } + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, + "tempy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.0.tgz", + "integrity": "sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==", + "dev": true, + "requires": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "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=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "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=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "underscore": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz", + "integrity": "sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==" + }, + "underscore-plus": { + "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" + } + }, + "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==", + "optional": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "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=", + "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=", + "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=", + "optional": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "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==", + "optional": true + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "optional": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "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": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } +} diff --git a/package.json b/package.json index fe98fc86..0b73423d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.27.0", + "version": "3.27.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From f0a6a1c61a70ce67177546a73875ebfee4edad8d Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 30 Dec 2020 00:08:52 +0000 Subject: [PATCH 268/410] chore(release): 3.28.0 [skip ci] --- CHANGELOG.md | 7 ++++++ package-lock.json | 64 ++++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f21b0af2..adb92439 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [3.28.0](https://github.com/atom-ide-community/atom-script/compare/v3.27.1...v3.28.0) (2020-12-30) + + +### Features + +* use atom-space-pen-views-plus ([f5042b8](https://github.com/atom-ide-community/atom-script/commit/f5042b8f00cbe088749a95a5add4054d0ad4ced5)) + ## [3.27.1](https://github.com/atom-ide-community/atom-script/compare/v3.27.0...v3.27.1) (2020-12-29) diff --git a/package-lock.json b/package-lock.json index 33be2ac6..62510793 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "script", - "version": "3.27.1", + "version": "3.28.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -199,6 +199,11 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "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==" + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -222,6 +227,16 @@ "space-pen": "^5.1.2" } }, + "atom-space-pen-views-plus": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/atom-space-pen-views-plus/-/atom-space-pen-views-plus-3.0.4.tgz", + "integrity": "sha512-PfCBrD6RUN359P8Do3D3m2d1Ws2DyR7Jl1Ym97R2Gr9liM+5CYU5AvopJNL9m8pZqOBpu5ePcHjSrC/V1cL8oA==", + "requires": { + "fs-extra": "^9.0.1", + "fuzzaldrin": "^2.1.0", + "space-pen-plus": "^6.0.3" + } + }, "babel-cli": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", @@ -2047,6 +2062,17 @@ "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==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -2687,6 +2713,22 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -4038,6 +4080,21 @@ "underscore-plus": "1.x" } }, + "space-pen-plus": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/space-pen-plus/-/space-pen-plus-6.0.3.tgz", + "integrity": "sha512-iqPZAQYP3xPDGxT6MxIwm4GQks91p2H4QeUUcjjzPyr2FEmpaqVLX6cDwjzf8HWMQ0r9fa3hSB9CzMODXVBe6g==", + "requires": { + "jquery": "^3.5.1" + }, + "dependencies": { + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + } + } + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -4406,6 +4463,11 @@ "crypto-random-string": "^2.0.0" } }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", diff --git a/package.json b/package.json index 4b9fb634..a70a6ec2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.27.1", + "version": "3.28.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From a344c303affadb0b9629ad94f2562dc34fd90236 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 18:17:35 -0600 Subject: [PATCH 269/410] chore: delete package-lock.json [skip ci] --- .npmrc | 1 + package-lock.json | 4600 --------------------------------------------- 2 files changed, 1 insertion(+), 4600 deletions(-) create mode 100644 .npmrc delete mode 100644 package-lock.json diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..43c97e71 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +package-lock=false diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 62510793..00000000 --- a/package-lock.json +++ /dev/null @@ -1,4600 +0,0 @@ -{ - "name": "script", - "version": "3.28.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "ansi-to-html": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.4.2.tgz", - "integrity": "sha1-UQLgJzpZi+L40IiWYDsXmw/fzxE=", - "requires": { - "entities": "^1.1.1" - } - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "optional": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "optional": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "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==", - "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=", - "optional": true - }, - "array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", - "is-string": "^1.0.5" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "optional": true - }, - "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "optional": true - }, - "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==", - "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==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "optional": true - }, - "atom-message-panel": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/atom-message-panel/-/atom-message-panel-1.3.1.tgz", - "integrity": "sha512-nLi19faNBl/kabrf6itBkHcLrnpUeiGbpda+dHufAODKH+I+odoPRCxx7EZ+mCHEsBMhHNXxLWOLA+Mm9pumbA==", - "requires": { - "atom-space-pen-views": "^2.2.0" - } - }, - "atom-space-pen-views": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/atom-space-pen-views/-/atom-space-pen-views-2.2.0.tgz", - "integrity": "sha1-plsskg7QL3JAFPp9Plw9ePv1mZc=", - "requires": { - "fuzzaldrin": "^2.1.0", - "space-pen": "^5.1.2" - } - }, - "atom-space-pen-views-plus": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/atom-space-pen-views-plus/-/atom-space-pen-views-plus-3.0.4.tgz", - "integrity": "sha512-PfCBrD6RUN359P8Do3D3m2d1Ws2DyR7Jl1Ym97R2Gr9liM+5CYU5AvopJNL9m8pZqOBpu5ePcHjSrC/V1cL8oA==", - "requires": { - "fs-extra": "^9.0.1", - "fuzzaldrin": "^2.1.0", - "space-pen-plus": "^6.0.3" - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "optional": true, - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "babel-eslint": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", - "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "babel-traverse": "^6.23.1", - "babel-types": "^6.23.0", - "babylon": "^6.17.0" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "optional": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "optional": true - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "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==", - "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=", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": 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==", - "optional": true - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "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==", - "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": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "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 - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001171", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001171.tgz", - "integrity": "sha512-5Alrh8TTYPG9IH4UkRqEBZoEToWRLvPbSQokvzSz0lii8/FOWKG4keO1HoYfPWs8IF/NH/dyNPg1cmJGvV3Zlg==" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "optional": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "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==", - "optional": true, - "requires": { - "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=", - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coffeescript": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.5.1.tgz", - "integrity": "sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ==", - "optional": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "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 - }, - "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==", - "optional": 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==", - "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=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "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=", - "optional": true - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "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=" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "d": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", - "requires": { - "es5-ext": "~0.10.2" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "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=", - "optional": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "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==", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": 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==", - "optional": true - } - } - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "dependencies": { - "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 - }, - "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, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "electron-to-chromium": { - "version": "1.3.633", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz", - "integrity": "sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA==" - }, - "emissary": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/emissary/-/emissary-1.3.3.tgz", - "integrity": "sha1-phjZLWgrIy0xER3DYlpd9mF5lgY=", - "requires": { - "es6-weak-map": "^0.1.2", - "mixto": "1.x", - "property-accessors": "^1.1", - "underscore-plus": "1.x" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "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" - } - }, - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - }, - "dependencies": { - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - } - } - }, - "es6-iterator": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", - "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", - "requires": { - "d": "~0.1.1", - "es5-ext": "~0.10.5", - "es6-symbol": "~2.0.1" - } - }, - "es6-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", - "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", - "requires": { - "d": "~0.1.1", - "es5-ext": "~0.10.5" - } - }, - "es6-weak-map": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", - "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", - "requires": { - "d": "~0.1.1", - "es5-ext": "~0.10.6", - "es6-iterator": "~0.1.3", - "es6-symbol": "~2.0.1" - } - }, - "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=" - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "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 - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "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" - } - } - } - }, - "eslint-config-airbnb-base": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz", - "integrity": "sha1-8X1OUpksHUXRt3E++81ezQ5+BQY=", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - } - }, - "eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "optional": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "optional": true, - "requires": { - "fill-range": "^2.1.0" - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "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==", - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "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-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "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, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "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 - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "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" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "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==", - "optional": true - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "optional": true - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "optional": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "optional": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "optional": true, - "requires": { - "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==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "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==", - "optional": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "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 - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "fuzzaldrin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz", - "integrity": "sha1-kCBMPi/appQbso0WZF1BgGOpDps=" - }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "optional": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "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==" - }, - "grim": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/grim/-/grim-1.5.0.tgz", - "integrity": "sha1-sysI71Z88YUvgXWe2caLDXE5ajI=", - "requires": { - "emissary": "^1.2.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "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", - "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=", - "optional": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "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=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "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=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "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 - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "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.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "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" - } - } - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "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=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "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", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "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==", - "optional": true - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "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==", - "optional": true - } - } - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "optional": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - }, - "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==", - "optional": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "optional": true - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.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==", - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "optional": true, - "requires": { - "isarray": "1.0.0" - } - }, - "jquery": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", - "integrity": "sha1-IoveaYoMYUMdwmMKahVPFYkNIxc=" - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "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==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "optional": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "optional": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "optional": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "optional": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "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==", - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mixto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mixto/-/mixto-1.0.0.tgz", - "integrity": "sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY=" - }, - "mkdirp": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "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" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "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=", - "optional": 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==", - "optional": true - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "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" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "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=", - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "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=", - "optional": true, - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "optional": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "optional": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "optional": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "optional": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "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 - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "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": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "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=", - "optional": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "optional": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "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==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "property-accessors": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/property-accessors/-/property-accessors-1.1.3.tgz", - "integrity": "sha1-Hd6EAkYxhlkJ7zBwM2VoDF+SixU=", - "requires": { - "es6-weak-map": "^0.1.2", - "mixto": "1.x" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "optional": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "optional": 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==", - "optional": true - } - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "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==", - "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==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "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=", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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=", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.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=", - "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=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "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=", - "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=", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "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==", - "optional": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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=", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "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=", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "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=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": 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==", - "optional": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "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" - } - } - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "optional": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "optional": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "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=" - } - } - }, - "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=", - "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==", - "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=", - "optional": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "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=", - "optional": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "optional": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "*" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "optional": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "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==", - "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=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "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=", - "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=", - "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==", - "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=", - "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==", - "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==", - "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==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": 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==", - "optional": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "optional": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "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==", - "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-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "^0.5.6" - } - }, - "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=", - "optional": true - }, - "space-pen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/space-pen/-/space-pen-5.1.2.tgz", - "integrity": "sha1-Ivu+EOCwROe3pHsCPamdlLWE748=", - "requires": { - "grim": "^1.0.0", - "jquery": "2.1.4", - "underscore-plus": "1.x" - } - }, - "space-pen-plus": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/space-pen-plus/-/space-pen-plus-6.0.3.tgz", - "integrity": "sha512-iqPZAQYP3xPDGxT6MxIwm4GQks91p2H4QeUUcjjzPyr2FEmpaqVLX6cDwjzf8HWMQ0r9fa3hSB9CzMODXVBe6g==", - "requires": { - "jquery": "^3.5.1" - }, - "dependencies": { - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - } - } - }, - "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.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": 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==", - "optional": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "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=", - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "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=", - "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": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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" - } - } - } - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true - }, - "tempy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.0.tgz", - "integrity": "sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==", - "dev": true, - "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "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=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "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=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - } - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "underscore": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz", - "integrity": "sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==" - }, - "underscore-plus": { - "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" - } - }, - "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==", - "optional": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "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=", - "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=", - "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=", - "optional": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "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==", - "optional": true - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "optional": true, - "requires": { - "user-home": "^1.1.1" - } - }, - "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": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } -} From 88e8aefc7ddbb03bcbde834547cda94e0fbb9d12 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 18:08:26 -0600 Subject: [PATCH 270/410] feat: switch to `@babel` packages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a70a6ec2..df0a630f 100644 --- a/package.json +++ b/package.json @@ -22,13 +22,14 @@ "ansi-to-html": "^0.4.2", "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", - "babel-preset-env": "^1.6.0", + "@babel/preset-env": "^7.12.11", "strip-ansi": "^3.0.0", "underscore": "^1.8.3", "uuid": "^8.3.2" }, "optionalDependencies": { - "babel-cli": "^6.26.0", + "@babel/core": "^7.12.10", + "@babel/cli": "^7.12.10", "coffeescript": "^2" }, "devDependencies": { From 2b8bcd0818b38592c3af3b9397136355f2aee08e Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 21:50:12 -0600 Subject: [PATCH 271/410] fix: resolve to babel exe based on the OS --- lib/grammars/javascript.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index 25b06c3e..a18f683d 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -1,9 +1,10 @@ 'use babel'; import path from 'path'; -import GrammarUtils, { command } from '../grammar-utils'; +import GrammarUtils, { command, OperatingSystem } from '../grammar-utils'; + +const babel = path.join(__dirname, '../..', 'node_modules', '.bin', OperatingSystem.isWindows() ? 'babel.cmd' : 'babel'); -const babel = path.join(__dirname, '../..', 'node_modules', '.bin', 'babel'); const args = ({ filepath }) => { const cmd = `'${babel}' --filename '${babel}' < '${filepath}'| node`; From c9f3aae5cb4dc859db0554d0d67c8213574f4f48 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 21:49:42 -0600 Subject: [PATCH 272/410] fix: add babelConfig using @babel/preset-env --- lib/grammars/babel.config.js | 12 ++++++++++++ lib/grammars/javascript.js | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 lib/grammars/babel.config.js diff --git a/lib/grammars/babel.config.js b/lib/grammars/babel.config.js new file mode 100644 index 00000000..f037a1a2 --- /dev/null +++ b/lib/grammars/babel.config.js @@ -0,0 +1,12 @@ +module.exports = { + presets: [ + [ + '@babel/preset-env', + { + targets: { + node: 'current', + }, + }, + ], + ], +}; diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index a18f683d..c0b0a76b 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -4,10 +4,10 @@ import path from 'path'; import GrammarUtils, { command, OperatingSystem } from '../grammar-utils'; const babel = path.join(__dirname, '../..', 'node_modules', '.bin', OperatingSystem.isWindows() ? 'babel.cmd' : 'babel'); - +const babelConfig = path.join(__dirname, 'babel.config.js'); const args = ({ filepath }) => { - const cmd = `'${babel}' --filename '${babel}' < '${filepath}'| node`; + const cmd = `'${babel}' --filename '${filepath}' --config-file ${babelConfig} < '${filepath}'| node`; return GrammarUtils.formatArgs(cmd); }; exports.Dart = { From e362aaebfec6b8a93d4cd88cc45dc4e7183fdc89 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 21:51:07 -0600 Subject: [PATCH 273/410] fix: move @babel packages to the deps --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index df0a630f..37868113 100644 --- a/package.json +++ b/package.json @@ -19,17 +19,17 @@ ] }, "dependencies": { + "@babel/core": "^7.12.10", + "@babel/cli": "^7.12.10", + "@babel/preset-env": "^7.12.11", "ansi-to-html": "^0.4.2", "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", - "@babel/preset-env": "^7.12.11", "strip-ansi": "^3.0.0", "underscore": "^1.8.3", "uuid": "^8.3.2" }, "optionalDependencies": { - "@babel/core": "^7.12.10", - "@babel/cli": "^7.12.10", "coffeescript": "^2" }, "devDependencies": { From 4390c94d143ad2ca4cb323e18f901beff4f216ca Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 21:52:01 -0600 Subject: [PATCH 274/410] fix: add @babel/preset-react to support JSX --- lib/grammars/babel.config.js | 1 + package.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/grammars/babel.config.js b/lib/grammars/babel.config.js index f037a1a2..b5519cbc 100644 --- a/lib/grammars/babel.config.js +++ b/lib/grammars/babel.config.js @@ -7,6 +7,7 @@ module.exports = { node: 'current', }, }, + '@babel/preset-react', ], ], }; diff --git a/package.json b/package.json index 37868113..d4f425d8 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,10 @@ ] }, "dependencies": { - "@babel/core": "^7.12.10", "@babel/cli": "^7.12.10", + "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", "ansi-to-html": "^0.4.2", "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", From a7d48ff34caaf5b7fdef9980404113b3fa0251c2 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 22:07:56 -0600 Subject: [PATCH 275/410] fix: use babel in coffeescript --- lib/grammars/coffeescript.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/grammars/coffeescript.coffee b/lib/grammars/coffeescript.coffee index d14be11e..3a4df3a3 100644 --- a/lib/grammars/coffeescript.coffee +++ b/lib/grammars/coffeescript.coffee @@ -4,9 +4,10 @@ path = require 'path' bin = path.join __dirname, '../..', 'node_modules', '.bin' coffee = path.join bin, 'coffee' babel = path.join bin, 'babel' +babelConfig = path.join __dirname, 'babel.config.js' args = ({filepath}) -> - cmd = "'#{coffee}' -p '#{filepath}'|'#{babel}' --filename '#{bin}'| node" + cmd = "'#{coffee}' -p '#{filepath}'|'#{babel}' --filename '#{bin} --config-file #{babelConfig}'| node" return GrammarUtils.formatArgs(cmd) exports.CoffeeScript = From c898a929f64da2b20809f2f12ad37afe69a1ab63 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 22:14:06 -0600 Subject: [PATCH 276/410] fix: update dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d4f425d8..a0832c13 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,11 @@ "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", - "ansi-to-html": "^0.4.2", + "ansi-to-html": "^0.6.14", "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", - "strip-ansi": "^3.0.0", - "underscore": "^1.8.3", + "strip-ansi": "^6.0.0", + "underscore": "^1.12.0", "uuid": "^8.3.2" }, "optionalDependencies": { From 83b84b944779c5802ab1b828ef5f8acbf1002f23 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 30 Dec 2020 04:14:09 +0000 Subject: [PATCH 277/410] chore(release): 3.29.0 [skip ci] --- CHANGELOG.md | 16 ++++++++++++++++ package.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index adb92439..028a076b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# [3.29.0](https://github.com/atom-ide-community/atom-script/compare/v3.28.0...v3.29.0) (2020-12-30) + + +### Bug Fixes + +* add @babel/preset-react to support JSX ([4390c94](https://github.com/atom-ide-community/atom-script/commit/4390c94d143ad2ca4cb323e18f901beff4f216ca)) +* add babelConfig using @babel/preset-env ([c9f3aae](https://github.com/atom-ide-community/atom-script/commit/c9f3aae5cb4dc859db0554d0d67c8213574f4f48)) +* move [@babel](https://github.com/babel) packages to the deps ([e362aae](https://github.com/atom-ide-community/atom-script/commit/e362aaebfec6b8a93d4cd88cc45dc4e7183fdc89)) +* resolve to babel exe based on the OS ([2b8bcd0](https://github.com/atom-ide-community/atom-script/commit/2b8bcd0818b38592c3af3b9397136355f2aee08e)) +* use babel in coffeescript ([a7d48ff](https://github.com/atom-ide-community/atom-script/commit/a7d48ff34caaf5b7fdef9980404113b3fa0251c2)) + + +### Features + +* switch to `[@babel](https://github.com/babel)` packages ([88e8aef](https://github.com/atom-ide-community/atom-script/commit/88e8aefc7ddbb03bcbde834547cda94e0fbb9d12)) + # [3.28.0](https://github.com/atom-ide-community/atom-script/compare/v3.27.1...v3.28.0) (2020-12-30) diff --git a/package.json b/package.json index d4f425d8..36a6371d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.28.0", + "version": "3.29.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 5754954bab62c7b2ef2b57536bcbd2fdfa2549ff Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 22:19:36 -0600 Subject: [PATCH 278/410] fix: update eslint --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 71b7401c..d70720f4 100644 --- a/package.json +++ b/package.json @@ -34,10 +34,10 @@ "coffeescript": "^2" }, "devDependencies": { - "babel-eslint": "^7.1.1", - "eslint": "^4.18.2", - "eslint-config-airbnb-base": "^10.0.1", - "eslint-plugin-import": "^2.2.0", + "babel-eslint": "^10.1.0", + "eslint": "^7.16.0", + "eslint-config-airbnb-base": "^14.2.1", + "eslint-plugin-import": "^2.22.1", "tempy": "^1.0.0" }, "providedServices": { From b4e6b39ef7760cd047a367eab25254135e08453e Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 30 Dec 2020 04:21:47 +0000 Subject: [PATCH 279/410] chore(release): 3.29.1 [skip ci] --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 028a076b..34edd411 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.29.1](https://github.com/atom-ide-community/atom-script/compare/v3.29.0...v3.29.1) (2020-12-30) + + +### Bug Fixes + +* update dependencies ([c898a92](https://github.com/atom-ide-community/atom-script/commit/c898a929f64da2b20809f2f12ad37afe69a1ab63)) + # [3.29.0](https://github.com/atom-ide-community/atom-script/compare/v3.28.0...v3.29.0) (2020-12-30) diff --git a/package.json b/package.json index 71b7401c..c09201dc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.29.0", + "version": "3.29.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From a282d27fce39ce1043ab4d60d9dbef5674c1c613 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 22:21:53 -0600 Subject: [PATCH 280/410] chore: eslint ignore max-len --- .eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.yml b/.eslintrc.yml index 2ae0b283..99668b71 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -19,3 +19,4 @@ rules: guard-for-in: [0] no-this-before-super: [0] prefer-rest-params: [0] + max-len: [0] From 0a83ef05290b10f684ac1b6de913b959adb6b059 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 22:24:51 -0600 Subject: [PATCH 281/410] chore: use default import as it is default exported --- lib/grammars/javascript.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index c0b0a76b..557fc5a6 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -1,9 +1,9 @@ 'use babel'; import path from 'path'; -import GrammarUtils, { command, OperatingSystem } from '../grammar-utils'; +import GrammarUtils from '../grammar-utils'; -const babel = path.join(__dirname, '../..', 'node_modules', '.bin', OperatingSystem.isWindows() ? 'babel.cmd' : 'babel'); +const babel = path.join(__dirname, '../..', 'node_modules', '.bin', GrammarUtils.OperatingSystem.isWindows() ? 'babel.cmd' : 'babel'); const babelConfig = path.join(__dirname, 'babel.config.js'); const args = ({ filepath }) => { @@ -26,14 +26,14 @@ exports.Dart = { }; exports.JavaScript = { 'Selection Based': { - command, + command: GrammarUtils.command, args: (context) => { const code = context.getCode(); const filepath = GrammarUtils.createTempFileWithCode(code, '.js'); return args({ filepath }); }, }, - 'File Based': { command, args }, + 'File Based': { command: GrammarUtils.command, args }, }; exports['Babel ES6 JavaScript'] = exports.JavaScript; exports['JavaScript with JSX'] = exports.JavaScript; From 55cf106800507afb3c1c80b3e0e1a5ded6b6e416 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 22:26:41 -0600 Subject: [PATCH 282/410] chore: remove excess firstLine in the spec --- spec/code-context-spec.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index c98b622c..f1d8ffb8 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -85,8 +85,7 @@ describe('CodeContext', () => { it('returns /usr/bin/env as the command if applicable', () => { const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; - let firstLine = lines.split('\n')[0]; - firstLine = lines.split('\n')[0]; + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } expect(this.codeContext.shebangCommand()).toMatch('env'); }); @@ -118,8 +117,7 @@ describe('CodeContext', () => { it('returns the true command as the first argument when /usr/bin/env is used', () => { const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; - let firstLine = lines.split('\n')[0]; - firstLine = lines.split('\n')[0]; + const firstLine = lines.split('\n')[0]; if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } const args = this.codeContext.shebangCommandArgs(); expect(args[0]).toMatch('ruby'); From 095d03c3cbe01370de7e04f83553e75aebc393ca Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 22:27:05 -0600 Subject: [PATCH 283/410] fix: eslint --fix --- lib/command-context.js | 14 ++--- lib/grammar-utils.js | 2 +- lib/grammar-utils/java.js | 2 +- lib/grammar-utils/nim.js | 12 ++-- lib/grammars/javascript.js | 4 +- lib/link-paths.js | 23 ++++---- lib/runner.js | 12 ++-- lib/runtime.js | 7 ++- lib/script-options-view.js | 12 +--- lib/script-options.js | 1 - lib/script-profile-run-view.js | 5 +- lib/script-view.js | 9 ++- lib/script.js | 3 +- lib/view-runtime-observer.js | 20 +++---- spec/code-context-builder-spec.js | 25 +++----- spec/code-context-spec.js | 28 ++++----- spec/grammar-utils/lisp-spec.js | 88 ++++++++++++++--------------- spec/grammars-spec.js | 94 ++++++++++++++----------------- spec/link-paths-spec.js | 3 +- 19 files changed, 165 insertions(+), 199 deletions(-) diff --git a/lib/command-context.js b/lib/command-context.js index 49820760..15622865 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -18,8 +18,8 @@ export default class CommandContext { try { if (!runOptions.cmd) { // Precondition: lang? and lang of grammarMap - commandContext.command = codeContext.shebangCommand() || - grammarMap[codeContext.lang][codeContext.argType].command; + commandContext.command = codeContext.shebangCommand() + || grammarMap[codeContext.lang][codeContext.argType].command; } else { commandContext.command = runOptions.cmd; } @@ -49,7 +49,7 @@ export default class CommandContext { } quoteArguments(args) { - return args.map(arg => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`)); + return args.map((arg) => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`)); } getRepresentation() { @@ -62,9 +62,9 @@ export default class CommandContext { const args = this.args.length ? this.quoteArguments(this.args).join(' ') : ''; const scriptArgs = this.options.scriptArgs ? this.quoteArguments(this.options.scriptArgs).join(' ') : ''; - return this.command.trim() + - (commandArgs ? ` ${commandArgs}` : '') + - (args ? ` ${args}` : '') + - (scriptArgs ? ` ${scriptArgs}` : ''); + return this.command.trim() + + (commandArgs ? ` ${commandArgs}` : '') + + (args ? ` ${args}` : '') + + (scriptArgs ? ` ${scriptArgs}` : ''); } } diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 498d8c18..8d781824 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -40,7 +40,7 @@ export default { if (fs.existsSync(this.tempFilesDir)) { const files = fs.readdirSync(this.tempFilesDir); if (files.length) { - files.forEach(file => fs.unlinkSync(this.tempFilesDir + path.sep + file)); + files.forEach((file) => fs.unlinkSync(this.tempFilesDir + path.sep + file)); } return fs.rmdirSync(this.tempFilesDir); } diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index c7b44b88..b03b5823 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -26,7 +26,7 @@ export default { // Returns {String} containing the matching project path getProjectPath(context) { const projectPaths = atom.project.getPaths(); - return projectPaths.find(projectPath => context.filepath.includes(projectPath)); + return projectPaths.find((projectPath) => context.filepath.includes(projectPath)); }, // Public: Get package of file in context diff --git a/lib/grammar-utils/nim.js b/lib/grammar-utils/nim.js index dc03bbef..b4bd00ba 100644 --- a/lib/grammar-utils/nim.js +++ b/lib/grammar-utils/nim.js @@ -30,9 +30,9 @@ export default { } // check if we are running on a file with config - if (fs.existsSync(`${editorfile}s`) || - fs.existsSync(`${editorfile}.cfg`) || - fs.existsSync(`${editorfile}cfg`)) { + if (fs.existsSync(`${editorfile}s`) + || fs.existsSync(`${editorfile}.cfg`) + || fs.existsSync(`${editorfile}cfg`)) { return path.basename(editorfile); } @@ -47,9 +47,9 @@ export default { for (const file of files) { const name = `${filepath}/${file}`; if (fs.statSync(name).isFile()) { - if (path.extname(name) === '.nims' || - path.extname(name) === '.nimcgf' || - path.extname(name) === '.cfg') { + if (path.extname(name) === '.nims' + || path.extname(name) === '.nimcgf' + || path.extname(name) === '.cfg') { const tfile = name.slice(0, -1); if (fs.existsSync(tfile)) return path.basename(tfile); } diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index 557fc5a6..ce68aad1 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -41,7 +41,7 @@ exports['JavaScript with JSX'] = exports.JavaScript; exports['JavaScript for Automation (JXA)'] = { 'Selection Based': { command: 'osascript', - args: context => ['-l', 'JavaScript', '-e', context.getCode()], + args: (context) => ['-l', 'JavaScript', '-e', context.getCode()], }, 'File Based': { command: 'osascript', @@ -51,7 +51,7 @@ exports['JavaScript for Automation (JXA)'] = { exports.TypeScript = { 'Selection Based': { command: 'ts-node', - args: context => ['-e', context.getCode()], + args: (context) => ['-e', context.getCode()], }, 'File Based': { command: 'ts-node', diff --git a/lib/link-paths.js b/lib/link-paths.js index da9b0e16..a613cb08 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -10,18 +10,17 @@ const regex = new RegExp('((?:\\w:)?/?(?:[-\\w.]+/)*[-\\w.]+):(\\d+)(?::(\\d+))? const template = '$&'; -export default linkPaths = lines => lines.replace(regex, template); +export default linkPaths = (lines) => lines.replace(regex, template); -linkPaths.listen = parentView => - parentView.on('click', '.-linked-path', function () { - const el = this; - let { path, line, column } = el.dataset; - line = Number(line) - 1; - // column number is optional - column = column ? Number(column) - 1 : 0; +linkPaths.listen = (parentView) => parentView.on('click', '.-linked-path', function () { + const el = this; + let { path, line, column } = el.dataset; + line = Number(line) - 1; + // column number is optional + column = column ? Number(column) - 1 : 0; - atom.workspace.open(path, { - initialLine: line, - initialColumn: column, - }); + atom.workspace.open(path, { + initialLine: line, + initialColumn: column, }); +}); diff --git a/lib/runner.js b/lib/runner.js index c45365f5..6e8e3042 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -80,9 +80,9 @@ export default class Runner { } case 'Directory of the script': { const pane = atom.workspace.getActivePaneItem(); - cwd = (pane && pane.buffer && pane.buffer.file && pane.buffer.file.getParent && - pane.buffer.file.getParent() && pane.buffer.file.getParent().getPath && - pane.buffer.file.getParent().getPath()) || ''; + cwd = (pane && pane.buffer && pane.buffer.file && pane.buffer.file.getParent + && pane.buffer.file.getParent() && pane.buffer.file.getParent().getPath + && pane.buffer.file.getParent().getPath()) || ''; break; } } @@ -154,17 +154,17 @@ export default class Runner { // cmdArgs = customed command args from: // - a user's profil // - the 'Configure Run Options' panel - const cmdArgs = this.scriptOptions.cmdArgs; + const { cmdArgs } = this.scriptOptions; // Let's overdrive the default args with the customed ones let args = (cmdArgs.length) ? cmdArgs : extraArgs; // Do not forget to concat the script args after the command args - const scriptArgs = this.scriptOptions.scriptArgs; + const { scriptArgs } = this.scriptOptions; args = args.concat(scriptArgs); const projectPath = this.getProjectPath || ''; - args = (args.map(arg => this.fillVarsInArg(arg, codeContext, projectPath))); + args = (args.map((arg) => this.fillVarsInArg(arg, codeContext, projectPath))); if (!this.scriptOptions.cmd) { args = codeContext.shebangCommandArgs().concat(args); diff --git a/lib/runtime.js b/lib/runtime.js index 01e2ea3b..8168ba73 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -16,7 +16,7 @@ export default class Runtime { this.observers = observers; this.emitter = new Emitter(); this.scriptOptions = this.runner.scriptOptions; - _.each(this.observers, observer => observer.observe(this)); + _.each(this.observers, (observer) => observer.observe(this)); } // Public: Adds a new observer and asks it to listen for {Runner} events @@ -36,7 +36,7 @@ export default class Runtime { destroy() { this.stop(); this.runner.destroy(); - _.each(this.observers, observer => observer.destroy()); + _.each(this.observers, (observer) => observer.destroy()); this.emitter.dispose(); this.codeContextBuilder.destroy(); } @@ -53,7 +53,8 @@ export default class Runtime { this.emitter.emit('start'); const codeContext = this.codeContextBuilder.buildCodeContext( - atom.workspace.getActiveTextEditor(), argType); + atom.workspace.getActiveTextEditor(), argType, + ); // In the future we could handle a runner without the language being part // of the grammar map, using the options runner diff --git a/lib/script-options-view.js b/lib/script-options-view.js index 1444d197..f2efee49 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -35,16 +35,10 @@ export default class ScriptOptionsView extends View { }); this.div({ class: 'modal-footer' }, () => { const css = 'btn inline-block-tight'; - this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => - this.span({ class: 'icon icon-x' }, 'Cancel'), - ); + this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => this.span({ class: 'icon icon-x' }, 'Cancel')); this.span({ class: 'pull-right' }, () => { - this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => - this.span({ class: 'icon icon-file-text' }, 'Save as profile'), - ); - this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => - this.span({ class: 'icon icon-playback-play' }, 'Run'), - ); + this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => this.span({ class: 'icon icon-file-text' }, 'Save as profile')); + this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run')); }); }); }); diff --git a/lib/script-options.js b/lib/script-options.js index 82380c0b..ac6ef82d 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -49,7 +49,6 @@ export default class ScriptOptions { mapping[key] = mapping[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); } - return mapping; } diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 14ed19fe..997ca97a 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -86,7 +86,6 @@ export default class ScriptProfileRunView extends SelectListView { return this.emitter.on('on-profile-run', callback); } - rename() { const profile = this.getSelectedItem(); if (!profile) { return; } @@ -96,8 +95,7 @@ export default class ScriptProfileRunView extends SelectListView { inputView.onConfirm((newProfileName) => { if (!newProfileName) { return; } this.emitter.emit('on-profile-change', { profile, key: 'name', value: newProfileName }); - }, - ); + }); inputView.show(); } @@ -134,6 +132,7 @@ export default class ScriptProfileRunView extends SelectListView { } cancel() {} + confirmed() {} show() { diff --git a/lib/script-view.js b/lib/script-view.js index 80aafbb8..348d5026 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -54,7 +54,7 @@ export default class ScriptView extends MessagePanelView { } // open new tab and set content to output - atom.workspace.open().then(editor => editor.setText(stripAnsi(context + output))); + atom.workspace.open().then((editor) => editor.setText(stripAnsi(context + output))); } setHeaderAndShowExecutionTime(returnCode, executionTime) { @@ -130,14 +130,12 @@ export default class ScriptView extends MessagePanelView { this.pre(' atom .'); this.h2('Is it in your PATH?'); this.pre(`PATH: ${_.escape(process.env.PATH)}`); - }), - ); + })); } showNoLanguageSpecified() { const err = $$(function () { - this.p('You must select a language in the lower right, or save the file with an appropriate extension.', - ); + this.p('You must select a language in the lower right, or save the file with an appropriate extension.'); }); this.handleError(err); } @@ -194,6 +192,7 @@ export default class ScriptView extends MessagePanelView { this.checkScrollAgain(5)(); } } + checkScrollAgain(times) { return () => { this.body.scrollToBottom(); diff --git a/lib/script.js b/lib/script.js index 710dfa7e..ad6ef3ab 100644 --- a/lib/script.js +++ b/lib/script.js @@ -104,7 +104,8 @@ export default { const profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); const codeContext = this.runtime.codeContextBuilder.buildCodeContext( - atom.workspace.getActiveTextEditor(), 'Selection Based'); + atom.workspace.getActiveTextEditor(), 'Selection Based', + ); profile.lang = codeContext.lang; // formatting description diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index dc6e35db..dd133170 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -12,22 +12,18 @@ export default class ViewRuntimeObserver { this.subscriptions.add(runtime.onStart(() => this.view.resetView())); this.subscriptions.add(runtime.onStarted((ev) => { this.view.commandContext = ev; })); this.subscriptions.add(runtime.onStopped(() => this.view.stop())); - this.subscriptions.add(runtime.onDidWriteToStderr(ev => this.view.display('stderr', ev.message))); - this.subscriptions.add(runtime.onDidWriteToStdout(ev => this.view.display('stdout', ev.message))); - this.subscriptions.add(runtime.onDidExit(ev => - this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime))); - this.subscriptions.add(runtime.onDidNotRun(ev => this.view.showUnableToRunError(ev.command))); + this.subscriptions.add(runtime.onDidWriteToStderr((ev) => this.view.display('stderr', ev.message))); + this.subscriptions.add(runtime.onDidWriteToStdout((ev) => this.view.display('stdout', ev.message))); + this.subscriptions.add(runtime.onDidExit((ev) => this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime))); + this.subscriptions.add(runtime.onDidNotRun((ev) => this.view.showUnableToRunError(ev.command))); this.subscriptions.add(runtime.onDidContextCreate((ev) => { const title = `${ev.lang} - ${ev.filename}${ev.lineNumber ? `:${ev.lineNumber}` : ''}`; this.view.setHeaderTitle(title); })); - this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => - this.view.showNoLanguageSpecified())); - this.subscriptions.add(runtime.onDidNotSupportLanguage(ev => - this.view.showLanguageNotSupported(ev.lang))); - this.subscriptions.add(runtime.onDidNotSupportMode(ev => - this.view.createGitHubIssueLink(ev.argType, ev.lang))); - this.subscriptions.add(runtime.onDidNotBuildArgs(ev => this.view.handleError(ev.error))); + this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => this.view.showNoLanguageSpecified())); + this.subscriptions.add(runtime.onDidNotSupportLanguage((ev) => this.view.showLanguageNotSupported(ev.lang))); + this.subscriptions.add(runtime.onDidNotSupportMode((ev) => this.view.createGitHubIssueLink(ev.argType, ev.lang))); + this.subscriptions.add(runtime.onDidNotBuildArgs((ev) => this.view.handleError(ev.error))); } destroy() { diff --git a/spec/code-context-builder-spec.js b/spec/code-context-builder-spec.js index 7cbfebd6..3cfab68d 100644 --- a/spec/code-context-builder-spec.js +++ b/spec/code-context-builder-spec.js @@ -30,8 +30,7 @@ describe('CodeContextBuilder', () => { describe('initCodeContext', () => { it('sets correct text source for empty selection', () => { - const selection = - { isEmpty() { return true; } }; + const selection = { isEmpty() { return true; } }; spyOn(this.editorMock, 'getLastSelection').andReturn(selection); const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); expect(codeContext.textSource).toEqual(this.editorMock); @@ -40,8 +39,7 @@ describe('CodeContextBuilder', () => { }); it('sets correct text source for non-empty selection', () => { - const selection = - { isEmpty() { return false; } }; + const selection = { isEmpty() { return false; } }; spyOn(this.editorMock, 'getLastSelection').andReturn(selection); const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); expect(codeContext.textSource).toEqual(selection); @@ -54,16 +52,11 @@ describe('CodeContextBuilder', () => { }); }); - describe('buildCodeContext', () => - ['Selection Based', 'Line Number Based'].map(argType => - it(`sets lineNumber with screenRow + 1 when ${argType}`, () => { - const cursor = - { getScreenRow() { return 1; } }; - spyOn(this.editorMock, 'getLastCursor').andReturn(cursor); - const codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); - expect(codeContext.argType).toEqual(argType); - expect(codeContext.lineNumber).toEqual(2); - }), - ), - ); + describe('buildCodeContext', () => ['Selection Based', 'Line Number Based'].map((argType) => it(`sets lineNumber with screenRow + 1 when ${argType}`, () => { + const cursor = { getScreenRow() { return 1; } }; + spyOn(this.editorMock, 'getLastCursor').andReturn(cursor); + const codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); + expect(codeContext.argType).toEqual(argType); + expect(codeContext.lineNumber).toEqual(2); + }))); }); diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index f1d8ffb8..05a160a9 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -66,14 +66,12 @@ describe('CodeContext', () => { }); }); - describe('shebangCommand when no shebang was found', () => - it('returns undefined when no shebang is found', () => { - const lines = this.dummyTextSource.getText(); - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommand()).toBe(null); - }), - ); + describe('shebangCommand when no shebang was found', () => it('returns undefined when no shebang is found', () => { + const lines = this.dummyTextSource.getText(); + const firstLine = lines.split('\n')[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + expect(this.codeContext.shebangCommand()).toBe(null); + })); describe('shebangCommand when a shebang was found', () => { it('returns the command from the shebang', () => { @@ -98,14 +96,12 @@ describe('CodeContext', () => { }); }); - describe('shebangCommandArgs when no shebang was found', () => - it('returns [] when no shebang is found', () => { - const lines = this.dummyTextSource.getText(); - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommandArgs()).toMatch([]); - }), - ); + describe('shebangCommandArgs when no shebang was found', () => it('returns [] when no shebang is found', () => { + const lines = this.dummyTextSource.getText(); + const firstLine = lines.split('\n')[0]; + if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } + expect(this.codeContext.shebangCommandArgs()).toMatch([]); + })); describe('shebangCommandArgs when a shebang was found', () => { it('returns the command from the shebang', () => { diff --git a/spec/grammar-utils/lisp-spec.js b/spec/grammar-utils/lisp-spec.js index 0301c02e..eee6a956 100644 --- a/spec/grammar-utils/lisp-spec.js +++ b/spec/grammar-utils/lisp-spec.js @@ -2,48 +2,46 @@ import GrammarUtils from '../../lib/grammar-utils'; -describe('GrammarUtils', () => - describe('Lisp', () => { - const toStatements = GrammarUtils.Lisp.splitStatements; - - it('returns empty array for empty code', () => { - const code = ''; - expect(toStatements(code)).toEqual([]); - }); - - it('does not split single statement', () => { - const code = '(print "dummy")'; - expect(toStatements(code)).toEqual([code]); - }); - - it('splits two simple statements', () => { - const code = '(print "dummy")(print "statement")'; - expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); - }); - - it('splits two simple statements in many lines', () => { - const code = '(print "dummy") \n\n (print "statement")'; - expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); - }); - - it('does not split single line complex statement', () => { - const code = '(when t(setq a 2)(+ i 1))'; - expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']); - }); - - it('does not split multi line complex statement', () => { - const code = '(when t(setq a 2) \n \t (+ i 1))'; - expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']); - }); - - it('splits single line complex statements', () => { - const code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))'; - expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']); - }); - - it('splits multi line complex statements', () => { - const code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))'; - expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']); - }); - }), -); +describe('GrammarUtils', () => describe('Lisp', () => { + const toStatements = GrammarUtils.Lisp.splitStatements; + + it('returns empty array for empty code', () => { + const code = ''; + expect(toStatements(code)).toEqual([]); + }); + + it('does not split single statement', () => { + const code = '(print "dummy")'; + expect(toStatements(code)).toEqual([code]); + }); + + it('splits two simple statements', () => { + const code = '(print "dummy")(print "statement")'; + expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); + }); + + it('splits two simple statements in many lines', () => { + const code = '(print "dummy") \n\n (print "statement")'; + expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); + }); + + it('does not split single line complex statement', () => { + const code = '(when t(setq a 2)(+ i 1))'; + expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']); + }); + + it('does not split multi line complex statement', () => { + const code = '(when t(setq a 2) \n \t (+ i 1))'; + expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']); + }); + + it('splits single line complex statements', () => { + const code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))'; + expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']); + }); + + it('splits multi line complex statements', () => { + const code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))'; + expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']); + }); +})); diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 4954b984..3198fa1c 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -55,34 +55,30 @@ describe('grammarMap', () => { this.reloadGrammar(); }); - describe('C', () => - it('returns the appropriate File Based runner on Mac OS X', () => { - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); + describe('C', () => it('returns the appropriate File Based runner on Mac OS X', () => { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); - const grammar = this.grammarMap.C; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang/); - }), - ); - - describe('C++', () => - it('returns the appropriate File Based runner on Mac OS X', () => { - if (process.platform === 'win32') return; - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); + const grammar = this.grammarMap.C; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + expect(args[1]).toMatch(/^xcrun clang/); + })); + + describe('C++', () => it('returns the appropriate File Based runner on Mac OS X', () => { + if (process.platform === 'win32') return; + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); - const grammar = this.grammarMap['C++']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang\+\+/); - }), - ); + const grammar = this.grammarMap['C++']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + expect(args[1]).toMatch(/^xcrun clang\+\+/); + })); describe('F#', () => { it('returns "fsi" as command for File Based runner on Windows', () => { @@ -110,32 +106,28 @@ describe('grammarMap', () => { }); }); - describe('Objective-C', () => - it('returns the appropriate File Based runner on Mac OS X', () => { - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); + describe('Objective-C', () => it('returns the appropriate File Based runner on Mac OS X', () => { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); - const grammar = this.grammarMap['Objective-C']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang/); - }), - ); - - describe('Objective-C++', () => - it('returns the appropriate File Based runner on Mac OS X', () => { - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); + const grammar = this.grammarMap['Objective-C']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + expect(args[1]).toMatch(/^xcrun clang/); + })); - const grammar = this.grammarMap['Objective-C++']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang\+\+/); - }), - ); + describe('Objective-C++', () => it('returns the appropriate File Based runner on Mac OS X', () => { + OperatingSystem.platform = () => 'darwin'; + this.reloadGrammar(); + + const grammar = this.grammarMap['Objective-C++']; + const fileBasedRunner = grammar['File Based']; + const args = fileBasedRunner.args(this.codeContext); + expect(fileBasedRunner.command).toEqual('bash'); + expect(args[0]).toEqual('-c'); + expect(args[1]).toMatch(/^xcrun clang\+\+/); + })); }); }); diff --git a/spec/link-paths-spec.js b/spec/link-paths-spec.js index a1700262..3e4fbe97 100644 --- a/spec/link-paths-spec.js +++ b/spec/link-paths-spec.js @@ -25,8 +25,7 @@ describe('linkPaths', () => { }); it('links multiple paths', () => { - const multilineResult = linkPaths('foo() b/c.js:44:5\nbar() b/c.js:45:56', - ); + const multilineResult = linkPaths('foo() b/c.js:44:5\nbar() b/c.js:45:56'); expect(multilineResult).toContain('foo() Date: Wed, 30 Dec 2020 04:35:08 +0000 Subject: [PATCH 284/410] chore(release): 3.29.2 [skip ci] --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34edd411..d331d03c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [3.29.2](https://github.com/atom-ide-community/atom-script/compare/v3.29.1...v3.29.2) (2020-12-30) + + +### Bug Fixes + +* eslint --fix ([095d03c](https://github.com/atom-ide-community/atom-script/commit/095d03c3cbe01370de7e04f83553e75aebc393ca)) +* update eslint ([5754954](https://github.com/atom-ide-community/atom-script/commit/5754954bab62c7b2ef2b57536bcbd2fdfa2549ff)) + ## [3.29.1](https://github.com/atom-ide-community/atom-script/compare/v3.29.0...v3.29.1) (2020-12-30) diff --git a/package.json b/package.json index e56a8f2d..9867df43 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.29.1", + "version": "3.29.2", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 985bd4e5c7e83819dc81f7a10873691b756571ca Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 23:33:50 -0600 Subject: [PATCH 285/410] fix: add activation hook to defer the package's loading --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 9867df43..691207b0 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,9 @@ "script:run-with-profile" ] }, + "activationHooks": [ + "core:loaded-shell-environment" + ], "dependencies": { "@babel/cli": "^7.12.10", "@babel/core": "^7.12.10", From ef5a4890b3bfb140ebfd47b005214bd0ec073820 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 30 Dec 2020 05:37:26 +0000 Subject: [PATCH 286/410] chore(release): 3.29.3 [skip ci] --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d331d03c..1e00adc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.29.3](https://github.com/atom-ide-community/atom-script/compare/v3.29.2...v3.29.3) (2020-12-30) + + +### Bug Fixes + +* add activation hook to defer the package's loading ([985bd4e](https://github.com/atom-ide-community/atom-script/commit/985bd4e5c7e83819dc81f7a10873691b756571ca)) + ## [3.29.2](https://github.com/atom-ide-community/atom-script/compare/v3.29.1...v3.29.2) (2020-12-30) diff --git a/package.json b/package.json index 691207b0..bc7ecebe 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.29.2", + "version": "3.29.3", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From e20767da876f6f9b985e7955c32f060e88e813fd Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 6 Feb 2021 11:36:43 -0600 Subject: [PATCH 287/410] chore: update dependency bumper [skip ci] --- .github/workflows/bump_deps.yml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/bump_deps.yml b/.github/workflows/bump_deps.yml index c77f21ed..fbeebba6 100644 --- a/.github/workflows/bump_deps.yml +++ b/.github/workflows/bump_deps.yml @@ -2,23 +2,27 @@ name: Bump_Dependencies on: schedule: - - cron: "0 0 * * *" + - cron: "5 8 * * Sun" # 8:05 every Sunday jobs: Bump_Dependencies: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v2-beta + - uses: actions/setup-node@v2 with: node-version: "12" + - name: Setup PNPM + uses: pnpm/action-setup@v1.2.2 + with: + version: latest - name: setup npm-check-updates - run: npm install -g npm-check-updates + run: pnpm install -g npm-check-updates - run: | ncu -u --dep prod - npm install + pnpm install - uses: tibdex/github-app-token@v1 @@ -29,7 +33,7 @@ jobs: - uses: peter-evans/create-pull-request@v3 with: token: ${{ steps.generate-token.outputs.token }} - commit-message: Update Dependencies + commit-message: "chore: Update Dependencies" title: "fix: Update Dependencies" labels: Dependencies branch: "Bump_Dependencies" @@ -39,16 +43,20 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v2-beta + - uses: actions/setup-node@v2 with: node-version: "12" + - name: Setup PNPM + uses: pnpm/action-setup@v1.2.2 + with: + version: latest - name: setup npm-check-updates - run: npm install -g npm-check-updates + run: pnpm install -g npm-check-updates - run: | ncu -u --dep dev - npm install + pnpm install - uses: tibdex/github-app-token@v1 id: generate-token @@ -58,7 +66,7 @@ jobs: - uses: peter-evans/create-pull-request@v3 with: token: ${{ steps.generate-token.outputs.token }} - commit-message: Update devDependencies + commit-message: "chore: Update devDependencies" title: "chore: Update devDependencies" labels: Dependencies branch: "Bump_devDependencies" From d4d592f70b814d4e21b763216ac5505c5669c908 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 7 Feb 2021 17:01:59 -0600 Subject: [PATCH 288/410] chore: add test.lint and test.format --- .github/workflows/CI.yml | 23 +++++++++++++++-------- package.json | 6 ++++-- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2c10ed72..56896b73 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -41,15 +41,22 @@ jobs: with: fetch-depth: 0 - name: Commit lint ✨ - uses: wagoid/commitlint-github-action@v1 - - uses: actions/setup-node@v2 + uses: wagoid/commitlint-github-action@v2 + + - uses: UziTech/action-setup-atom@v1 + - name: Setup PNPM + uses: pnpm/action-setup@v1.2.1 with: - node-version: "12.x" - - name: Install NPM dependencies - run: | - npm install + version: latest + + - name: Install dependencies + run: pnpm install --only=dev --ignore-scripts + + # - name: Format ✨ + # run: pnpm test.format + - name: Lint ✨ - run: npm run lint + run: pnpm test.lint Release: needs: [Test, Lint] @@ -64,7 +71,7 @@ jobs: node-version: "12.x" - name: NPM install run: npm install - + # - name: Build and Commit # run: npm run build-commit diff --git a/package.json b/package.json index bc7ecebe..fa1f2ff6 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,10 @@ } }, "scripts": { - "lint": "eslint .", - "lint:fix": "eslint . --fix", + "format": "prettier --write .", + "test.format": "prettier . --check", + "lint": "eslint . --fix", + "test.lint": "eslint .", "test": "atom --test spec" }, "babel": { From 9f78de3345bb6aedb01d9fe29eb394e3bd0df2d3 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 8 Feb 2021 01:27:40 -0600 Subject: [PATCH 289/410] chore: add pnpm lock file --- .npmrc | 2 + pnpm-lock.yaml | 3838 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 3840 insertions(+) create mode 100644 pnpm-lock.yaml diff --git a/.npmrc b/.npmrc index 43c97e71..ee2f52e0 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,3 @@ +public-hoist-pattern[]=* package-lock=false +lockfile=true diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..b4c25e7c --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3838 @@ +dependencies: + '@babel/cli': 7.12.13_@babel+core@7.12.13 + '@babel/core': 7.12.13 + '@babel/preset-env': 7.12.13_@babel+core@7.12.13 + '@babel/preset-react': 7.12.13_@babel+core@7.12.13 + ansi-to-html: 0.6.14 + atom-message-panel: 1.3.1 + atom-space-pen-views-plus: 3.0.4 + strip-ansi: 6.0.0 + underscore: 1.12.0 + uuid: 8.3.2 +devDependencies: + babel-eslint: 10.1.0_eslint@7.19.0 + eslint: 7.19.0 + eslint-config-airbnb-base: 14.2.1_846d62cfa210dc3f225625c64ae883be + eslint-plugin-import: 2.22.1_eslint@7.19.0 + tempy: 1.0.0 +lockfileVersion: 5.2 +optionalDependencies: + coffeescript: 2.5.1 +packages: + /@babel/cli/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + commander: 4.1.1 + convert-source-map: 1.7.0 + fs-readdir-recursive: 1.1.0 + glob: 7.1.6 + lodash: 4.17.20 + make-dir: 2.1.0 + slash: 2.0.0 + source-map: 0.5.7 + dev: false + hasBin: true + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents + chokidar: 3.5.1 + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-Zto3HPeE0GRmaxobUl7NvFTo97NKe1zdAuWqTO8oka7nE0IIqZ4CFvuRZe1qf+ZMd7eHMhwqrecjwc10mjXo/g== + /@babel/code-frame/7.12.13: + dependencies: + '@babel/highlight': 7.12.13 + resolution: + integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + /@babel/compat-data/7.12.13: + dev: false + resolution: + integrity: sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg== + /@babel/core/7.12.13: + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/generator': 7.12.15 + '@babel/helper-module-transforms': 7.12.13 + '@babel/helpers': 7.12.13 + '@babel/parser': 7.12.15 + '@babel/template': 7.12.13 + '@babel/traverse': 7.12.13 + '@babel/types': 7.12.13 + convert-source-map: 1.7.0 + debug: 4.3.1 + gensync: 1.0.0-beta.2 + json5: 2.2.0 + lodash: 4.17.20 + semver: 5.7.1 + source-map: 0.5.7 + dev: false + engines: + node: '>=6.9.0' + resolution: + integrity: sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw== + /@babel/generator/7.12.15: + dependencies: + '@babel/types': 7.12.13 + jsesc: 2.5.2 + source-map: 0.5.7 + resolution: + integrity: sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ== + /@babel/helper-annotate-as-pure/7.12.13: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== + /@babel/helper-builder-binary-assignment-operator-visitor/7.12.13: + dependencies: + '@babel/helper-explode-assignable-expression': 7.12.13 + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== + /@babel/helper-compilation-targets/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/compat-data': 7.12.13 + '@babel/core': 7.12.13 + '@babel/helper-validator-option': 7.12.11 + browserslist: 4.16.3 + semver: 5.7.1 + dev: false + peerDependencies: + '@babel/core': ^7.0.0 + resolution: + integrity: sha512-dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw== + /@babel/helper-create-class-features-plugin/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-function-name': 7.12.13 + '@babel/helper-member-expression-to-functions': 7.12.13 + '@babel/helper-optimise-call-expression': 7.12.13 + '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-split-export-declaration': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0 + resolution: + integrity: sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q== + /@babel/helper-create-regexp-features-plugin/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-annotate-as-pure': 7.12.13 + regexpu-core: 4.7.1 + dev: false + peerDependencies: + '@babel/core': ^7.0.0 + resolution: + integrity: sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw== + /@babel/helper-explode-assignable-expression/7.12.13: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== + /@babel/helper-function-name/7.12.13: + dependencies: + '@babel/helper-get-function-arity': 7.12.13 + '@babel/template': 7.12.13 + '@babel/types': 7.12.13 + resolution: + integrity: sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + /@babel/helper-get-function-arity/7.12.13: + dependencies: + '@babel/types': 7.12.13 + resolution: + integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + /@babel/helper-hoist-variables/7.12.13: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw== + /@babel/helper-member-expression-to-functions/7.12.13: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ== + /@babel/helper-module-imports/7.12.13: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== + /@babel/helper-module-transforms/7.12.13: + dependencies: + '@babel/helper-module-imports': 7.12.13 + '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-simple-access': 7.12.13 + '@babel/helper-split-export-declaration': 7.12.13 + '@babel/helper-validator-identifier': 7.12.11 + '@babel/template': 7.12.13 + '@babel/traverse': 7.12.13 + '@babel/types': 7.12.13 + lodash: 4.17.20 + dev: false + resolution: + integrity: sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA== + /@babel/helper-optimise-call-expression/7.12.13: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + /@babel/helper-plugin-utils/7.12.13: + dev: false + resolution: + integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== + /@babel/helper-remap-async-to-generator/7.12.13: + dependencies: + '@babel/helper-annotate-as-pure': 7.12.13 + '@babel/helper-wrap-function': 7.12.13 + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA== + /@babel/helper-replace-supers/7.12.13: + dependencies: + '@babel/helper-member-expression-to-functions': 7.12.13 + '@babel/helper-optimise-call-expression': 7.12.13 + '@babel/traverse': 7.12.13 + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== + /@babel/helper-simple-access/7.12.13: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== + /@babel/helper-skip-transparent-expression-wrappers/7.12.1: + dependencies: + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + /@babel/helper-split-export-declaration/7.12.13: + dependencies: + '@babel/types': 7.12.13 + resolution: + integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + /@babel/helper-validator-identifier/7.12.11: + resolution: + integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + /@babel/helper-validator-option/7.12.11: + dev: false + resolution: + integrity: sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== + /@babel/helper-wrap-function/7.12.13: + dependencies: + '@babel/helper-function-name': 7.12.13 + '@babel/template': 7.12.13 + '@babel/traverse': 7.12.13 + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw== + /@babel/helpers/7.12.13: + dependencies: + '@babel/template': 7.12.13 + '@babel/traverse': 7.12.13 + '@babel/types': 7.12.13 + dev: false + resolution: + integrity: sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ== + /@babel/highlight/7.12.13: + dependencies: + '@babel/helper-validator-identifier': 7.12.11 + chalk: 2.4.2 + js-tokens: 4.0.0 + resolution: + integrity: sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + /@babel/parser/7.12.15: + engines: + node: '>=6.0.0' + hasBin: true + resolution: + integrity: sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== + /@babel/plugin-proposal-async-generator-functions/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-remap-async-to-generator': 7.12.13 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA== + /@babel/plugin-proposal-class-properties/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-create-class-features-plugin': 7.12.13_@babel+core@7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA== + /@babel/plugin-proposal-dynamic-import/7.12.1_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== + /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== + /@babel/plugin-proposal-json-strings/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg== + /@babel/plugin-proposal-logical-assignment-operators/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ== + /@babel/plugin-proposal-nullish-coalescing-operator/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q== + /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== + /@babel/plugin-proposal-object-rest-spread/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-transform-parameters': 7.12.13_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg== + /@babel/plugin-proposal-optional-catch-binding/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg== + /@babel/plugin-proposal-optional-chaining/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q== + /@babel/plugin-proposal-private-methods/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-create-class-features-plugin': 7.12.13_@babel+core@7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg== + /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + engines: + node: '>=4' + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== + /@babel/plugin-transform-arrow-functions/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg== + /@babel/plugin-transform-async-to-generator/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-module-imports': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-remap-async-to-generator': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A== + /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== + /@babel/plugin-transform-block-scoping/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== + /@babel/plugin-transform-classes/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-annotate-as-pure': 7.12.13 + '@babel/helper-function-name': 7.12.13 + '@babel/helper-optimise-call-expression': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-split-export-declaration': 7.12.13 + globals: 11.12.0 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA== + /@babel/plugin-transform-computed-properties/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA== + /@babel/plugin-transform-destructuring/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ== + /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== + /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== + /@babel/plugin-transform-exponentiation-operator/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== + /@babel/plugin-transform-for-of/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ== + /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-function-name': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== + /@babel/plugin-transform-literals/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== + /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== + /@babel/plugin-transform-modules-amd/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-module-transforms': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + babel-plugin-dynamic-import-node: 2.3.3 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA== + /@babel/plugin-transform-modules-commonjs/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-module-transforms': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-simple-access': 7.12.13 + babel-plugin-dynamic-import-node: 2.3.3 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ== + /@babel/plugin-transform-modules-systemjs/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-hoist-variables': 7.12.13 + '@babel/helper-module-transforms': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-validator-identifier': 7.12.11 + babel-plugin-dynamic-import-node: 2.3.3 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA== + /@babel/plugin-transform-modules-umd/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-module-transforms': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w== + /@babel/plugin-transform-named-capturing-groups-regex/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0 + resolution: + integrity: sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== + /@babel/plugin-transform-new-target/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== + /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-replace-supers': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== + /@babel/plugin-transform-parameters/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA== + /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== + /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== + /@babel/plugin-transform-react-jsx-development/7.12.12_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== + /@babel/plugin-transform-react-jsx/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-annotate-as-pure': 7.12.13 + '@babel/helper-module-imports': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-syntax-jsx': 7.12.13_@babel+core@7.12.13 + '@babel/types': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA== + /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-annotate-as-pure': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== + /@babel/plugin-transform-regenerator/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + regenerator-transform: 0.14.5 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== + /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== + /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + /@babel/plugin-transform-spread/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg== + /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + /@babel/plugin-transform-template-literals/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg== + /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== + /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== + /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + /@babel/preset-env/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/compat-data': 7.12.13 + '@babel/core': 7.12.13 + '@babel/helper-compilation-targets': 7.12.13_@babel+core@7.12.13 + '@babel/helper-module-imports': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-validator-option': 7.12.11 + '@babel/plugin-proposal-async-generator-functions': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-class-properties': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-dynamic-import': 7.12.1_@babel+core@7.12.13 + '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-json-strings': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-logical-assignment-operators': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-object-rest-spread': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-optional-catch-binding': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-optional-chaining': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-private-methods': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.13 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.13 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.13 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-arrow-functions': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-async-to-generator': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-block-scoping': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-classes': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-computed-properties': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-destructuring': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-for-of': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-modules-amd': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-modules-commonjs': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-modules-systemjs': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-modules-umd': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-parameters': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-regenerator': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-spread': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-template-literals': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.12.13 + '@babel/preset-modules': 0.1.4_@babel+core@7.12.13 + '@babel/types': 7.12.13 + core-js-compat: 3.8.3 + semver: 5.7.1 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-JUVlizG8SoFTz4LmVUL8++aVwzwxcvey3N0j1tRbMAXVEy95uQ/cnEkmEKHN00Bwq4voAV3imQGnQvpkLAxsrw== + /@babel/preset-modules/0.1.4_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.13 + '@babel/types': 7.12.13 + esutils: 2.0.3 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + /@babel/preset-react/7.12.13_@babel+core@7.12.13: + dependencies: + '@babel/core': 7.12.13 + '@babel/helper-plugin-utils': 7.12.13 + '@babel/plugin-transform-react-display-name': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.12.13 + '@babel/plugin-transform-react-jsx-development': 7.12.12_@babel+core@7.12.13 + '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.12.13 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== + /@babel/runtime/7.12.13: + dependencies: + regenerator-runtime: 0.13.7 + dev: false + resolution: + integrity: sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== + /@babel/template/7.12.13: + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/parser': 7.12.15 + '@babel/types': 7.12.13 + resolution: + integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + /@babel/traverse/7.12.13: + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/generator': 7.12.15 + '@babel/helper-function-name': 7.12.13 + '@babel/helper-split-export-declaration': 7.12.13 + '@babel/parser': 7.12.15 + '@babel/types': 7.12.13 + debug: 4.3.1 + globals: 11.12.0 + lodash: 4.17.20 + resolution: + integrity: sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== + /@babel/types/7.12.13: + dependencies: + '@babel/helper-validator-identifier': 7.12.11 + lodash: 4.17.20 + to-fast-properties: 2.0.0 + resolution: + integrity: sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== + /@eslint/eslintrc/0.3.0: + dependencies: + ajv: 6.12.6 + debug: 4.3.1 + espree: 7.3.1 + globals: 12.4.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + lodash: 4.17.20 + minimatch: 3.0.4 + strip-json-comments: 3.1.1 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + resolution: + integrity: sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== + /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents: + dependencies: + anymatch: 2.0.0 + async-each: 1.0.3 + braces: 2.3.2 + glob-parent: 3.1.0 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 4.0.1 + normalize-path: 3.0.0 + path-is-absolute: 1.0.1 + readdirp: 2.2.1 + upath: 1.2.0 + dev: false + optional: true + resolution: + integrity: sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== + /@nodelib/fs.scandir/2.1.4: + dependencies: + '@nodelib/fs.stat': 2.0.4 + run-parallel: 1.1.10 + dev: true + engines: + node: '>= 8' + resolution: + integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + /@nodelib/fs.stat/2.0.4: + dev: true + engines: + node: '>= 8' + resolution: + integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + /@nodelib/fs.walk/1.2.6: + dependencies: + '@nodelib/fs.scandir': 2.1.4 + fastq: 1.10.1 + dev: true + engines: + node: '>= 8' + resolution: + integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + /@types/json5/0.0.29: + dev: true + resolution: + integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + /acorn-jsx/5.3.1_acorn@7.4.1: + dependencies: + acorn: 7.4.1 + dev: true + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + resolution: + integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + /acorn/7.4.1: + dev: true + engines: + node: '>=0.4.0' + hasBin: true + resolution: + integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + /aggregate-error/3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + /ajv/6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + resolution: + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + /ajv/7.0.4: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + resolution: + integrity: sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw== + /ansi-colors/4.1.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + /ansi-regex/5.0.0: + engines: + node: '>=8' + resolution: + integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + /ansi-styles/3.2.1: + dependencies: + color-convert: 1.9.3 + engines: + node: '>=4' + resolution: + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + /ansi-styles/4.3.0: + dependencies: + color-convert: 2.0.1 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + /ansi-to-html/0.6.14: + dependencies: + entities: 1.1.2 + dev: false + hasBin: true + resolution: + integrity: sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA== + /anymatch/2.0.0: + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + dev: false + optional: true + resolution: + integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + /anymatch/3.1.1: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.2.2 + dev: false + engines: + node: '>= 8' + optional: true + resolution: + integrity: sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + /argparse/1.0.10: + dependencies: + sprintf-js: 1.0.3 + dev: true + resolution: + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + /arr-diff/4.0.0: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + /arr-flatten/1.1.0: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + /arr-union/3.1.0: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + /array-includes/3.1.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0-next.2 + get-intrinsic: 1.1.1 + is-string: 1.0.5 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== + /array-union/2.1.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + /array-unique/0.3.2: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + /array.prototype.flat/1.2.4: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0-next.2 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + /assign-symbols/1.0.0: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + /astral-regex/2.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + /async-each/1.0.3: + dev: false + optional: true + resolution: + integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + /at-least-node/1.0.0: + dev: false + engines: + node: '>= 4.0.0' + resolution: + integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + /atob/2.1.2: + dev: false + engines: + node: '>= 4.5.0' + hasBin: true + optional: true + resolution: + integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + /atom-message-panel/1.3.1: + dependencies: + atom-space-pen-views: 2.2.0 + dev: false + resolution: + integrity: sha512-nLi19faNBl/kabrf6itBkHcLrnpUeiGbpda+dHufAODKH+I+odoPRCxx7EZ+mCHEsBMhHNXxLWOLA+Mm9pumbA== + /atom-space-pen-views-plus/3.0.4: + dependencies: + fs-extra: 9.1.0 + fuzzaldrin: 2.1.0 + space-pen-plus: 6.0.3 + dev: false + resolution: + integrity: sha512-PfCBrD6RUN359P8Do3D3m2d1Ws2DyR7Jl1Ym97R2Gr9liM+5CYU5AvopJNL9m8pZqOBpu5ePcHjSrC/V1cL8oA== + /atom-space-pen-views/2.2.0: + dependencies: + fuzzaldrin: 2.1.0 + space-pen: 5.1.2 + dev: false + resolution: + integrity: sha1-plsskg7QL3JAFPp9Plw9ePv1mZc= + /babel-eslint/10.1.0_eslint@7.19.0: + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/parser': 7.12.15 + '@babel/traverse': 7.12.13 + '@babel/types': 7.12.13 + eslint: 7.19.0 + eslint-visitor-keys: 1.3.0 + resolve: 1.19.0 + deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. + dev: true + engines: + node: '>=6' + peerDependencies: + eslint: '>= 4.12.1' + resolution: + integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + /babel-plugin-dynamic-import-node/2.3.3: + dependencies: + object.assign: 4.1.2 + dev: false + resolution: + integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + /balanced-match/1.0.0: + resolution: + integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + /base/0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + /binary-extensions/1.13.1: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + /binary-extensions/2.2.0: + dev: false + engines: + node: '>=8' + optional: true + resolution: + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + /brace-expansion/1.1.11: + dependencies: + balanced-match: 1.0.0 + concat-map: 0.0.1 + resolution: + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + /braces/2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.3 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + /braces/3.0.2: + dependencies: + fill-range: 7.0.1 + engines: + node: '>=8' + resolution: + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + /browserslist/4.16.3: + dependencies: + caniuse-lite: 1.0.30001185 + colorette: 1.2.1 + electron-to-chromium: 1.3.657 + escalade: 3.1.1 + node-releases: 1.1.70 + dev: false + engines: + node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 + hasBin: true + resolution: + integrity: sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + /cache-base/1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + /call-bind/1.0.2: + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + resolution: + integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + /callsites/3.1.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + /caniuse-lite/1.0.30001185: + dev: false + resolution: + integrity: sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg== + /chalk/2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + engines: + node: '>=4' + resolution: + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + /chalk/4.1.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + /chokidar/3.5.1: + dependencies: + anymatch: 3.1.1 + braces: 3.0.2 + glob-parent: 5.1.1 + is-binary-path: 2.1.0 + is-glob: 4.0.1 + normalize-path: 3.0.0 + readdirp: 3.5.0 + dev: false + engines: + node: '>= 8.10.0' + optional: true + optionalDependencies: + fsevents: 2.3.2 + resolution: + integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + /class-utils/0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + /clean-stack/2.2.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + /coffeescript/2.5.1: + dev: false + engines: + node: '>=6' + hasBin: true + optional: true + resolution: + integrity: sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ== + /collection-visit/1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + /color-convert/1.9.3: + dependencies: + color-name: 1.1.3 + resolution: + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + /color-convert/2.0.1: + dependencies: + color-name: 1.1.4 + dev: true + engines: + node: '>=7.0.0' + resolution: + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + /color-name/1.1.3: + resolution: + integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + /color-name/1.1.4: + dev: true + resolution: + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + /colorette/1.2.1: + dev: false + resolution: + integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + /commander/4.1.1: + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + /component-emitter/1.3.0: + dev: false + optional: true + resolution: + integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + /concat-map/0.0.1: + resolution: + integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + /confusing-browser-globals/1.0.10: + dev: true + resolution: + integrity: sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + /contains-path/0.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + /convert-source-map/1.7.0: + dependencies: + safe-buffer: 5.1.2 + dev: false + resolution: + integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + /copy-descriptor/0.1.1: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + /core-js-compat/3.8.3: + dependencies: + browserslist: 4.16.3 + semver: 7.0.0 + dev: false + resolution: + integrity: sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== + /core-util-is/1.0.2: + dev: false + optional: true + resolution: + integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /cross-spawn/7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + engines: + node: '>= 8' + resolution: + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + /crypto-random-string/2.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + /d/0.1.1: + dependencies: + es5-ext: 0.10.53 + dev: false + resolution: + integrity: sha1-2hhMU10Y2O57oqoim5FACfrhEwk= + /d/1.0.1: + dependencies: + es5-ext: 0.10.53 + type: 1.2.0 + dev: false + resolution: + integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + /debug/2.6.9: + dependencies: + ms: 2.0.0 + resolution: + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + /debug/4.3.1: + dependencies: + ms: 2.1.2 + engines: + node: '>=6.0' + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + resolution: + integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + /decode-uri-component/0.2.0: + dev: false + engines: + node: '>=0.10' + optional: true + resolution: + integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + /deep-is/0.1.3: + dev: true + resolution: + integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + /define-properties/1.1.3: + dependencies: + object-keys: 1.1.1 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + /define-property/0.2.5: + dependencies: + is-descriptor: 0.1.6 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + /define-property/1.0.0: + dependencies: + is-descriptor: 1.0.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + /define-property/2.0.2: + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + /del/6.0.0: + dependencies: + globby: 11.0.2 + graceful-fs: 4.2.5 + is-glob: 4.0.1 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.2 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + /dir-glob/3.0.1: + dependencies: + path-type: 4.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + /doctrine/1.5.0: + dependencies: + esutils: 2.0.3 + isarray: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + /doctrine/3.0.0: + dependencies: + esutils: 2.0.3 + dev: true + engines: + node: '>=6.0.0' + resolution: + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + /electron-to-chromium/1.3.657: + dev: false + resolution: + integrity: sha512-/9ROOyvEflEbaZFUeGofD+Tqs/WynbSTbNgNF+/TJJxH1ePD/e6VjZlDJpW3FFFd3nj5l3Hd8ki2vRwy+gyRFw== + /emissary/1.3.3: + dependencies: + es6-weak-map: 0.1.4 + mixto: 1.0.0 + property-accessors: 1.1.3 + underscore-plus: 1.7.0 + dev: false + resolution: + integrity: sha1-phjZLWgrIy0xER3DYlpd9mF5lgY= + /emoji-regex/8.0.0: + dev: true + resolution: + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + /enquirer/2.3.6: + dependencies: + ansi-colors: 4.1.1 + dev: true + engines: + node: '>=8.6' + resolution: + integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + /entities/1.1.2: + dev: false + resolution: + integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + /error-ex/1.3.2: + dependencies: + is-arrayish: 0.2.1 + dev: true + resolution: + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + /es-abstract/1.18.0-next.2: + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.1 + is-callable: 1.2.3 + is-negative-zero: 2.0.1 + is-regex: 1.1.2 + object-inspect: 1.9.0 + object-keys: 1.1.1 + object.assign: 4.1.2 + string.prototype.trimend: 1.0.3 + string.prototype.trimstart: 1.0.3 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + /es-to-primitive/1.2.1: + dependencies: + is-callable: 1.2.3 + is-date-object: 1.0.2 + is-symbol: 1.0.3 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + /es5-ext/0.10.53: + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.0.0 + dev: false + resolution: + integrity: sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + /es6-iterator/0.1.3: + dependencies: + d: 0.1.1 + es5-ext: 0.10.53 + es6-symbol: 2.0.1 + dev: false + resolution: + integrity: sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4= + /es6-iterator/2.0.3: + dependencies: + d: 1.0.1 + es5-ext: 0.10.53 + es6-symbol: 3.1.3 + dev: false + resolution: + integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + /es6-symbol/2.0.1: + dependencies: + d: 0.1.1 + es5-ext: 0.10.53 + dev: false + resolution: + integrity: sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M= + /es6-symbol/3.1.3: + dependencies: + d: 1.0.1 + ext: 1.4.0 + dev: false + resolution: + integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + /es6-weak-map/0.1.4: + dependencies: + d: 0.1.1 + es5-ext: 0.10.53 + es6-iterator: 0.1.3 + es6-symbol: 2.0.1 + dev: false + resolution: + integrity: sha1-cGzvnpmqI2undmwjnIueKG6n0ig= + /escalade/3.1.1: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + /escape-string-regexp/1.0.5: + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + /eslint-config-airbnb-base/14.2.1_846d62cfa210dc3f225625c64ae883be: + dependencies: + confusing-browser-globals: 1.0.10 + eslint: 7.19.0 + eslint-plugin-import: 2.22.1_eslint@7.19.0 + object.assign: 4.1.2 + object.entries: 1.1.3 + dev: true + engines: + node: '>= 6' + peerDependencies: + eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 + eslint-plugin-import: ^2.22.1 + resolution: + integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== + /eslint-import-resolver-node/0.3.4: + dependencies: + debug: 2.6.9 + resolve: 1.19.0 + dev: true + resolution: + integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + /eslint-module-utils/2.6.0: + dependencies: + debug: 2.6.9 + pkg-dir: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + /eslint-plugin-import/2.22.1_eslint@7.19.0: + dependencies: + array-includes: 3.1.2 + array.prototype.flat: 1.2.4 + contains-path: 0.1.0 + debug: 2.6.9 + doctrine: 1.5.0 + eslint: 7.19.0 + eslint-import-resolver-node: 0.3.4 + eslint-module-utils: 2.6.0 + has: 1.0.3 + minimatch: 3.0.4 + object.values: 1.1.2 + read-pkg-up: 2.0.0 + resolve: 1.19.0 + tsconfig-paths: 3.9.0 + dev: true + engines: + node: '>=4' + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + resolution: + integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + /eslint-scope/5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + engines: + node: '>=8.0.0' + resolution: + integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + /eslint-utils/2.1.0: + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + /eslint-visitor-keys/1.3.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + /eslint-visitor-keys/2.0.0: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + /eslint/7.19.0: + dependencies: + '@babel/code-frame': 7.12.13 + '@eslint/eslintrc': 0.3.0 + ajv: 6.12.6 + chalk: 4.1.0 + cross-spawn: 7.0.3 + debug: 4.3.1 + doctrine: 3.0.0 + enquirer: 2.3.6 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.0.0 + espree: 7.3.1 + esquery: 1.4.0 + esutils: 2.0.3 + file-entry-cache: 6.0.0 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.1 + globals: 12.4.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.1 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash: 4.17.20 + minimatch: 3.0.4 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: 3.1.0 + semver: 7.3.4 + strip-ansi: 6.0.0 + strip-json-comments: 3.1.1 + table: 6.0.7 + text-table: 0.2.0 + v8-compile-cache: 2.2.0 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + hasBin: true + resolution: + integrity: sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg== + /espree/7.3.1: + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.1_acorn@7.4.1 + eslint-visitor-keys: 1.3.0 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + resolution: + integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + /esprima/4.0.1: + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + /esquery/1.4.0: + dependencies: + estraverse: 5.2.0 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + /esrecurse/4.3.0: + dependencies: + estraverse: 5.2.0 + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + /estraverse/4.3.0: + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + /estraverse/5.2.0: + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + /esutils/2.0.3: + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + /expand-brackets/2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + /ext/1.4.0: + dependencies: + type: 2.1.0 + dev: false + resolution: + integrity: sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + /extend-shallow/2.0.1: + dependencies: + is-extendable: 0.1.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + /extend-shallow/3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + /extglob/2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + /fast-deep-equal/3.1.3: + dev: true + resolution: + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + /fast-glob/3.2.5: + dependencies: + '@nodelib/fs.stat': 2.0.4 + '@nodelib/fs.walk': 1.2.6 + glob-parent: 5.1.1 + merge2: 1.4.1 + micromatch: 4.0.2 + picomatch: 2.2.2 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + /fast-json-stable-stringify/2.1.0: + dev: true + resolution: + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + /fast-levenshtein/2.0.6: + dev: true + resolution: + integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + /fastq/1.10.1: + dependencies: + reusify: 1.0.4 + dev: true + resolution: + integrity: sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + /file-entry-cache/6.0.0: + dependencies: + flat-cache: 3.0.4 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + resolution: + integrity: sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + /fill-range/4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + /fill-range/7.0.1: + dependencies: + to-regex-range: 5.0.1 + engines: + node: '>=8' + resolution: + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + /find-up/2.1.0: + dependencies: + locate-path: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + /flat-cache/3.0.4: + dependencies: + flatted: 3.1.1 + rimraf: 3.0.2 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + resolution: + integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + /flatted/3.1.1: + dev: true + resolution: + integrity: sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + /for-in/1.0.2: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + /fragment-cache/0.2.1: + dependencies: + map-cache: 0.2.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + /fs-extra/9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.5 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + engines: + node: '>=10' + resolution: + integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + /fs-readdir-recursive/1.1.0: + dev: false + resolution: + integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + /fs.realpath/1.0.0: + resolution: + integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + /fsevents/2.3.2: + dev: false + engines: + node: ^8.16.0 || ^10.6.0 || >=11.0.0 + optional: true + os: + - darwin + resolution: + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + /function-bind/1.1.1: + resolution: + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + /functional-red-black-tree/1.0.1: + dev: true + resolution: + integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + /fuzzaldrin/2.1.0: + dev: false + resolution: + integrity: sha1-kCBMPi/appQbso0WZF1BgGOpDps= + /gensync/1.0.0-beta.2: + dev: false + engines: + node: '>=6.9.0' + resolution: + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + /get-intrinsic/1.1.1: + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.1 + resolution: + integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + /get-value/2.0.6: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + /glob-parent/3.1.0: + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + dev: false + optional: true + resolution: + integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + /glob-parent/5.1.1: + dependencies: + is-glob: 4.0.1 + engines: + node: '>= 6' + resolution: + integrity: sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + /glob/7.1.6: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + resolution: + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + /globals/11.12.0: + engines: + node: '>=4' + resolution: + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + /globals/12.4.0: + dependencies: + type-fest: 0.8.1 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + /globby/11.0.2: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.5 + ignore: 5.1.8 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + /graceful-fs/4.2.5: + resolution: + integrity: sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw== + /grim/1.5.0: + dependencies: + emissary: 1.3.3 + dev: false + resolution: + integrity: sha1-sysI71Z88YUvgXWe2caLDXE5ajI= + /has-flag/3.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + /has-flag/4.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + /has-symbols/1.0.1: + engines: + node: '>= 0.4' + resolution: + integrity: sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + /has-value/0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + /has-value/1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + /has-values/0.1.4: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E= + /has-values/1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + /has/1.0.3: + dependencies: + function-bind: 1.1.1 + engines: + node: '>= 0.4.0' + resolution: + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + /hosted-git-info/2.8.8: + dev: true + resolution: + integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + /ignore/4.0.6: + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + /ignore/5.1.8: + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + /import-fresh/3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + /imurmurhash/0.1.4: + dev: true + engines: + node: '>=0.8.19' + resolution: + integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= + /indent-string/4.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + /inflight/1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + resolution: + integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + /inherits/2.0.4: + resolution: + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + /is-accessor-descriptor/0.1.6: + dependencies: + kind-of: 3.2.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + /is-accessor-descriptor/1.0.0: + dependencies: + kind-of: 6.0.3 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + /is-arrayish/0.2.1: + dev: true + resolution: + integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + /is-binary-path/1.0.1: + dependencies: + binary-extensions: 1.13.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + /is-binary-path/2.1.0: + dependencies: + binary-extensions: 2.2.0 + dev: false + engines: + node: '>=8' + optional: true + resolution: + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + /is-buffer/1.1.6: + dev: false + optional: true + resolution: + integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + /is-callable/1.2.3: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + /is-core-module/2.2.0: + dependencies: + has: 1.0.3 + dev: true + resolution: + integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + /is-data-descriptor/0.1.4: + dependencies: + kind-of: 3.2.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + /is-data-descriptor/1.0.0: + dependencies: + kind-of: 6.0.3 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + /is-date-object/1.0.2: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + /is-descriptor/0.1.6: + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + /is-descriptor/1.0.2: + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + /is-extendable/0.1.1: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + /is-extendable/1.0.1: + dependencies: + is-plain-object: 2.0.4 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + /is-extglob/2.1.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + /is-fullwidth-code-point/3.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + /is-glob/3.1.0: + dependencies: + is-extglob: 2.1.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + /is-glob/4.0.1: + dependencies: + is-extglob: 2.1.1 + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + /is-negative-zero/2.0.1: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + /is-number/3.0.0: + dependencies: + kind-of: 3.2.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + /is-number/7.0.0: + engines: + node: '>=0.12.0' + resolution: + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + /is-path-cwd/2.2.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + /is-path-inside/3.0.2: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + /is-plain-object/2.0.4: + dependencies: + isobject: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + /is-regex/1.1.2: + dependencies: + call-bind: 1.0.2 + has-symbols: 1.0.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + /is-stream/2.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + /is-string/1.0.5: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + /is-symbol/1.0.3: + dependencies: + has-symbols: 1.0.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + /is-windows/1.0.2: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + /isarray/1.0.0: + resolution: + integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + /isexe/2.0.0: + dev: true + resolution: + integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + /isobject/2.1.0: + dependencies: + isarray: 1.0.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + /isobject/3.0.1: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + /jquery/2.1.4: + dev: false + resolution: + integrity: sha1-IoveaYoMYUMdwmMKahVPFYkNIxc= + /jquery/3.5.1: + dev: false + resolution: + integrity: sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== + /js-tokens/4.0.0: + resolution: + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + /js-yaml/3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + hasBin: true + resolution: + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + /jsesc/0.5.0: + dev: false + hasBin: true + resolution: + integrity: sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + /jsesc/2.5.2: + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + /json-schema-traverse/0.4.1: + dev: true + resolution: + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + /json-schema-traverse/1.0.0: + dev: true + resolution: + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + /json-stable-stringify-without-jsonify/1.0.1: + dev: true + resolution: + integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + /json5/1.0.1: + dependencies: + minimist: 1.2.5 + dev: true + hasBin: true + resolution: + integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + /json5/2.2.0: + dependencies: + minimist: 1.2.5 + dev: false + engines: + node: '>=6' + hasBin: true + resolution: + integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + /jsonfile/6.1.0: + dependencies: + universalify: 2.0.0 + dev: false + optionalDependencies: + graceful-fs: 4.2.5 + resolution: + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + /kind-of/3.2.2: + dependencies: + is-buffer: 1.1.6 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + /kind-of/4.0.0: + dependencies: + is-buffer: 1.1.6 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + /kind-of/5.1.0: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + /kind-of/6.0.3: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + /levn/0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + /load-json-file/2.0.0: + dependencies: + graceful-fs: 4.2.5 + parse-json: 2.2.0 + pify: 2.3.0 + strip-bom: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + /locate-path/2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + /lodash/4.17.20: + resolution: + integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + /lru-cache/6.0.0: + dependencies: + yallist: 4.0.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + /make-dir/2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.1 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + /map-cache/0.2.2: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + /map-visit/1.0.0: + dependencies: + object-visit: 1.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + /merge2/1.4.1: + dev: true + engines: + node: '>= 8' + resolution: + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + /micromatch/3.1.10: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + /micromatch/4.0.2: + dependencies: + braces: 3.0.2 + picomatch: 2.2.2 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + /minimatch/3.0.4: + dependencies: + brace-expansion: 1.1.11 + resolution: + integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + /minimist/1.2.5: + resolution: + integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + /mixin-deep/1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + /mixto/1.0.0: + dev: false + resolution: + integrity: sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY= + /ms/2.0.0: + resolution: + integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /ms/2.1.2: + resolution: + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + /nanomatch/1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + /natural-compare/1.4.0: + dev: true + resolution: + integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + /next-tick/1.0.0: + dev: false + resolution: + integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw= + /node-releases/1.1.70: + dev: false + resolution: + integrity: sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== + /normalize-package-data/2.5.0: + dependencies: + hosted-git-info: 2.8.8 + resolve: 1.19.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + resolution: + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + /normalize-path/2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + /normalize-path/3.0.0: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + /object-copy/0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + /object-inspect/1.9.0: + dev: true + resolution: + integrity: sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + /object-keys/1.1.1: + engines: + node: '>= 0.4' + resolution: + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + /object-visit/1.0.1: + dependencies: + isobject: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + /object.assign/4.1.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + has-symbols: 1.0.1 + object-keys: 1.1.1 + engines: + node: '>= 0.4' + resolution: + integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + /object.entries/1.1.3: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0-next.2 + has: 1.0.3 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + /object.pick/1.3.0: + dependencies: + isobject: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + /object.values/1.1.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0-next.2 + has: 1.0.3 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + /once/1.4.0: + dependencies: + wrappy: 1.0.2 + resolution: + integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + /optionator/0.9.1: + dependencies: + deep-is: 0.1.3 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + /p-limit/1.3.0: + dependencies: + p-try: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + /p-locate/2.0.0: + dependencies: + p-limit: 1.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + /p-map/4.0.0: + dependencies: + aggregate-error: 3.1.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + /p-try/1.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + /parent-module/1.0.1: + dependencies: + callsites: 3.1.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + /parse-json/2.2.0: + dependencies: + error-ex: 1.3.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + /pascalcase/0.1.1: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + /path-dirname/1.0.2: + dev: false + optional: true + resolution: + integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + /path-exists/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + /path-is-absolute/1.0.1: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + /path-key/3.1.1: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + /path-parse/1.0.6: + dev: true + resolution: + integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + /path-type/2.0.0: + dependencies: + pify: 2.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + /path-type/4.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + /picomatch/2.2.2: + engines: + node: '>=8.6' + resolution: + integrity: sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + /pify/2.3.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + /pify/4.0.1: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + /pkg-dir/2.0.0: + dependencies: + find-up: 2.1.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + /posix-character-classes/0.1.1: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + /prelude-ls/1.2.1: + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + /process-nextick-args/2.0.1: + dev: false + optional: true + resolution: + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + /progress/2.0.3: + dev: true + engines: + node: '>=0.4.0' + resolution: + integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + /property-accessors/1.1.3: + dependencies: + es6-weak-map: 0.1.4 + mixto: 1.0.0 + dev: false + resolution: + integrity: sha1-Hd6EAkYxhlkJ7zBwM2VoDF+SixU= + /punycode/2.1.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + /read-pkg-up/2.0.0: + dependencies: + find-up: 2.1.0 + read-pkg: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + /read-pkg/2.0.0: + dependencies: + load-json-file: 2.0.0 + normalize-package-data: 2.5.0 + path-type: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + /readable-stream/2.3.7: + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + optional: true + resolution: + integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + /readdirp/2.2.1: + dependencies: + graceful-fs: 4.2.5 + micromatch: 3.1.10 + readable-stream: 2.3.7 + dev: false + engines: + node: '>=0.10' + optional: true + resolution: + integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + /readdirp/3.5.0: + dependencies: + picomatch: 2.2.2 + dev: false + engines: + node: '>=8.10.0' + optional: true + resolution: + integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + /regenerate-unicode-properties/8.2.0: + dependencies: + regenerate: 1.4.2 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + /regenerate/1.4.2: + dev: false + resolution: + integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + /regenerator-runtime/0.13.7: + dev: false + resolution: + integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + /regenerator-transform/0.14.5: + dependencies: + '@babel/runtime': 7.12.13 + dev: false + resolution: + integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + /regex-not/1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + /regexpp/3.1.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + /regexpu-core/4.7.1: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 8.2.0 + regjsgen: 0.5.2 + regjsparser: 0.6.7 + unicode-match-property-ecmascript: 1.0.4 + unicode-match-property-value-ecmascript: 1.2.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + /regjsgen/0.5.2: + dev: false + resolution: + integrity: sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + /regjsparser/0.6.7: + dependencies: + jsesc: 0.5.0 + dev: false + hasBin: true + resolution: + integrity: sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + /remove-trailing-separator/1.1.0: + dev: false + optional: true + resolution: + integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + /repeat-element/1.1.3: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + /repeat-string/1.6.1: + dev: false + engines: + node: '>=0.10' + optional: true + resolution: + integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc= + /require-from-string/2.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + /resolve-from/4.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + /resolve-url/0.2.1: + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: false + optional: true + resolution: + integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + /resolve/1.19.0: + dependencies: + is-core-module: 2.2.0 + path-parse: 1.0.6 + dev: true + resolution: + integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + /ret/0.1.15: + dev: false + engines: + node: '>=0.12' + optional: true + resolution: + integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + /reusify/1.0.4: + dev: true + engines: + iojs: '>=1.0.0' + node: '>=0.10.0' + resolution: + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + /rimraf/3.0.2: + dependencies: + glob: 7.1.6 + dev: true + hasBin: true + resolution: + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + /run-parallel/1.1.10: + dev: true + resolution: + integrity: sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + /safe-buffer/5.1.2: + dev: false + resolution: + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + /safe-regex/1.1.0: + dependencies: + ret: 0.1.15 + dev: false + optional: true + resolution: + integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + /semver/5.7.1: + hasBin: true + resolution: + integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + /semver/7.0.0: + dev: false + hasBin: true + resolution: + integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + /semver/7.3.4: + dependencies: + lru-cache: 6.0.0 + dev: true + engines: + node: '>=10' + hasBin: true + resolution: + integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + /set-value/2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + /shebang-command/2.0.0: + dependencies: + shebang-regex: 3.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + /shebang-regex/3.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + /slash/2.0.0: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + /slash/3.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + /slice-ansi/4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + /snapdragon-node/2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + /snapdragon-util/3.0.1: + dependencies: + kind-of: 3.2.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + /snapdragon/0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + /source-map-resolve/0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.0 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: false + optional: true + resolution: + integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + /source-map-url/0.4.1: + dev: false + optional: true + resolution: + integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + /source-map/0.5.7: + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + /space-pen-plus/6.0.3: + dependencies: + jquery: 3.5.1 + dev: false + resolution: + integrity: sha512-iqPZAQYP3xPDGxT6MxIwm4GQks91p2H4QeUUcjjzPyr2FEmpaqVLX6cDwjzf8HWMQ0r9fa3hSB9CzMODXVBe6g== + /space-pen/5.1.2: + dependencies: + grim: 1.5.0 + jquery: 2.1.4 + underscore-plus: 1.7.0 + dev: false + resolution: + integrity: sha1-Ivu+EOCwROe3pHsCPamdlLWE748= + /spdx-correct/3.1.1: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.7 + dev: true + resolution: + integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + /spdx-exceptions/2.3.0: + dev: true + resolution: + integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + /spdx-expression-parse/3.0.1: + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.7 + dev: true + resolution: + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + /spdx-license-ids/3.0.7: + dev: true + resolution: + integrity: sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + /split-string/3.1.0: + dependencies: + extend-shallow: 3.0.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + /sprintf-js/1.0.3: + dev: true + resolution: + integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + /static-extend/0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + /string-width/4.2.0: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + /string.prototype.trimend/1.0.3: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + resolution: + integrity: sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== + /string.prototype.trimstart/1.0.3: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + resolution: + integrity: sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + /string_decoder/1.1.1: + dependencies: + safe-buffer: 5.1.2 + dev: false + optional: true + resolution: + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + /strip-ansi/6.0.0: + dependencies: + ansi-regex: 5.0.0 + engines: + node: '>=8' + resolution: + integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + /strip-bom/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + /strip-json-comments/3.1.1: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + /supports-color/5.5.0: + dependencies: + has-flag: 3.0.0 + engines: + node: '>=4' + resolution: + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + /supports-color/7.2.0: + dependencies: + has-flag: 4.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + /table/6.0.7: + dependencies: + ajv: 7.0.4 + lodash: 4.17.20 + slice-ansi: 4.0.0 + string-width: 4.2.0 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + /temp-dir/2.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + /tempy/1.0.0: + dependencies: + del: 6.0.0 + is-stream: 2.0.0 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w== + /text-table/0.2.0: + dev: true + resolution: + integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + /to-fast-properties/2.0.0: + engines: + node: '>=4' + resolution: + integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + /to-object-path/0.3.0: + dependencies: + kind-of: 3.2.2 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + /to-regex-range/2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + /to-regex-range/5.0.1: + dependencies: + is-number: 7.0.0 + engines: + node: '>=8.0' + resolution: + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + /to-regex/3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + /tsconfig-paths/3.9.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.5 + strip-bom: 3.0.0 + dev: true + resolution: + integrity: sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + /type-check/0.4.0: + dependencies: + prelude-ls: 1.2.1 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + /type-fest/0.16.0: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + /type-fest/0.8.1: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + /type/1.2.0: + dev: false + resolution: + integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + /type/2.1.0: + dev: false + resolution: + integrity: sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + /underscore-plus/1.7.0: + dependencies: + underscore: 1.12.0 + dev: false + resolution: + integrity: sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA== + /underscore/1.12.0: + dev: false + resolution: + integrity: sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ== + /unicode-canonical-property-names-ecmascript/1.0.4: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + /unicode-match-property-ecmascript/1.0.4: + dependencies: + unicode-canonical-property-names-ecmascript: 1.0.4 + unicode-property-aliases-ecmascript: 1.1.0 + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + /unicode-match-property-value-ecmascript/1.2.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + /unicode-property-aliases-ecmascript/1.1.0: + dev: false + engines: + node: '>=4' + resolution: + integrity: sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + /union-value/1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + /unique-string/2.0.0: + dependencies: + crypto-random-string: 2.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + /universalify/2.0.0: + dev: false + engines: + node: '>= 10.0.0' + resolution: + integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + /unset-value/1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + /upath/1.2.0: + dev: false + engines: + node: '>=4' + optional: true + resolution: + integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + /uri-js/4.4.1: + dependencies: + punycode: 2.1.1 + dev: true + resolution: + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + /urix/0.1.0: + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: false + optional: true + resolution: + integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + /use/3.1.1: + dev: false + engines: + node: '>=0.10.0' + optional: true + resolution: + integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + /util-deprecate/1.0.2: + dev: false + optional: true + resolution: + integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + /uuid/8.3.2: + dev: false + hasBin: true + resolution: + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + /v8-compile-cache/2.2.0: + dev: true + resolution: + integrity: sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + /validate-npm-package-license/3.0.4: + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + resolution: + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + /which/2.0.2: + dependencies: + isexe: 2.0.0 + dev: true + engines: + node: '>= 8' + hasBin: true + resolution: + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + /word-wrap/1.2.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + /wrappy/1.0.2: + resolution: + integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + /yallist/4.0.0: + dev: true + resolution: + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +specifiers: + '@babel/cli': ^7.12.10 + '@babel/core': ^7.12.10 + '@babel/preset-env': ^7.12.11 + '@babel/preset-react': ^7.12.10 + ansi-to-html: ^0.6.14 + atom-message-panel: 1.3.1 + atom-space-pen-views-plus: ^3.0.4 + babel-eslint: ^10.1.0 + coffeescript: ^2 + eslint: ^7.16.0 + eslint-config-airbnb-base: ^14.2.1 + eslint-plugin-import: ^2.22.1 + strip-ansi: ^6.0.0 + tempy: ^1.0.0 + underscore: ^1.12.0 + uuid: ^8.3.2 From 0f422200405528dc28b1e37d2665a2fd0f160616 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 8 Feb 2021 01:33:52 -0600 Subject: [PATCH 290/410] chore: install all dependencies in the lint step --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 56896b73..b224725b 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -50,7 +50,7 @@ jobs: version: latest - name: Install dependencies - run: pnpm install --only=dev --ignore-scripts + run: pnpm install # - name: Format ✨ # run: pnpm test.format From 7cb3a417799b21191c7e3afe04e1346b3126430e Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 23 Feb 2021 00:37:39 -0600 Subject: [PATCH 291/410] chore: fix pnpm installation for bumper --- .github/workflows/bump_deps.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bump_deps.yml b/.github/workflows/bump_deps.yml index fbeebba6..00c33bb0 100644 --- a/.github/workflows/bump_deps.yml +++ b/.github/workflows/bump_deps.yml @@ -13,7 +13,7 @@ jobs: with: node-version: "12" - name: Setup PNPM - uses: pnpm/action-setup@v1.2.2 + uses: pnpm/action-setup@v1.2.1 with: version: latest @@ -47,7 +47,7 @@ jobs: with: node-version: "12" - name: Setup PNPM - uses: pnpm/action-setup@v1.2.2 + uses: pnpm/action-setup@v1.2.1 with: version: latest From ed28d3e4ee4fa4ed15b5eddc0f32ebc11398bb73 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 2 Mar 2021 16:04:08 -0600 Subject: [PATCH 292/410] chore: fix dep bumper --- .npmrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.npmrc b/.npmrc index ee2f52e0..ac5613f6 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,4 @@ public-hoist-pattern[]=* package-lock=false lockfile=true +prefer-frozen-lockfile=false From f7f591e2fc7c89bf63cd1bb9cdd01fb113bfbd59 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 20 Mar 2021 22:08:06 -0500 Subject: [PATCH 293/410] fix: if arg is not string assign it --- lib/runner.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/runner.js b/lib/runner.js index 6e8e3042..91bc12e4 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -164,7 +164,13 @@ export default class Runner { args = args.concat(scriptArgs); const projectPath = this.getProjectPath || ''; - args = (args.map((arg) => this.fillVarsInArg(arg, codeContext, projectPath))); + args = args.map((arg) => { + if (typeof arg !== 'string') { + // TODO why this happens? // https://github.com/atom-community/atom-script/issues/2082 + arg = ''; + } + return this.fillVarsInArg(arg, codeContext, projectPath); + }); if (!this.scriptOptions.cmd) { args = codeContext.shebangCommandArgs().concat(args); From 9a68bc8e554fbb6e8d51189fa1a7175a1c07e425 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 21 Mar 2021 03:15:18 +0000 Subject: [PATCH 294/410] chore(release): 3.29.4 [skip ci] --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e00adc8..a14dedea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.29.4](https://github.com/atom-ide-community/atom-script/compare/v3.29.3...v3.29.4) (2021-03-21) + + +### Bug Fixes + +* if arg is not string assign it ([f7f591e](https://github.com/atom-ide-community/atom-script/commit/f7f591e2fc7c89bf63cd1bb9cdd01fb113bfbd59)) + ## [3.29.3](https://github.com/atom-ide-community/atom-script/compare/v3.29.2...v3.29.3) (2020-12-30) diff --git a/package.json b/package.json index fa1f2ff6..f72f32ea 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.29.3", + "version": "3.29.4", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From b9cd89128dd207045b84461b01aaf663b03e4a5c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 20 Mar 2021 22:31:56 -0500 Subject: [PATCH 295/410] fix: try catch toHtml --- lib/script-view.js | 8 +++++++- spec/fixtures/issue_2358.py | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 spec/fixtures/issue_2358.py diff --git a/lib/script-view.js b/lib/script-view.js index 348d5026..d54de82a 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -173,7 +173,13 @@ export default class ScriptView extends MessagePanelView { line = _.escape(line); } - line = this.ansiFilter.toHtml(line); + try { + line = this.ansiFilter.toHtml(line); + } catch (e) { + // TODO why this happens https://github.com/atom-community/atom-script/issues/2358 + console.error(e); + } + line = linkPaths(line); const { clientHeight, scrollTop, scrollHeight } = this.body[0]; diff --git a/spec/fixtures/issue_2358.py b/spec/fixtures/issue_2358.py new file mode 100644 index 00000000..940b8ca8 --- /dev/null +++ b/spec/fixtures/issue_2358.py @@ -0,0 +1,9 @@ +# See the console after running this + +import requests + +head = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36'} + +r = requests.get('https://www.oxfordlearnersdictionaries.com/us/wordlists/oxford3000-5000', headers=head) + +print(r.text) From a35a141ef499b3a887c87075cee111dce83ce361 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 21 Mar 2021 03:40:33 +0000 Subject: [PATCH 296/410] chore(release): 3.29.5 [skip ci] --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a14dedea..994b72a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.29.5](https://github.com/atom-ide-community/atom-script/compare/v3.29.4...v3.29.5) (2021-03-21) + + +### Bug Fixes + +* try catch toHtml ([b9cd891](https://github.com/atom-ide-community/atom-script/commit/b9cd89128dd207045b84461b01aaf663b03e4a5c)) + ## [3.29.4](https://github.com/atom-ide-community/atom-script/compare/v3.29.3...v3.29.4) (2021-03-21) diff --git a/package.json b/package.json index f72f32ea..eeabba64 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.29.4", + "version": "3.29.5", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 7dc0e3d2cd6476fede46c436cb0f71ef180fa718 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 20 Mar 2021 23:42:26 -0500 Subject: [PATCH 297/410] fix: update dependencies --- package.json | 14 +- pnpm-lock.yaml | 988 ++++++++++++++++++++++++++++--------------------- 2 files changed, 572 insertions(+), 430 deletions(-) diff --git a/package.json b/package.json index eeabba64..bce4d120 100644 --- a/package.json +++ b/package.json @@ -22,15 +22,15 @@ "core:loaded-shell-environment" ], "dependencies": { - "@babel/cli": "^7.12.10", - "@babel/core": "^7.12.10", - "@babel/preset-env": "^7.12.11", - "@babel/preset-react": "^7.12.10", + "@babel/cli": "^7.13.10", + "@babel/core": "^7.13.10", + "@babel/preset-env": "^7.13.10", + "@babel/preset-react": "^7.12.13", "ansi-to-html": "^0.6.14", "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", "strip-ansi": "^6.0.0", - "underscore": "^1.12.0", + "underscore": "^1.12.1", "uuid": "^8.3.2" }, "optionalDependencies": { @@ -38,10 +38,10 @@ }, "devDependencies": { "babel-eslint": "^10.1.0", - "eslint": "^7.16.0", + "eslint": "^7.22.0", "eslint-config-airbnb-base": "^14.2.1", "eslint-plugin-import": "^2.22.1", - "tempy": "^1.0.0" + "tempy": "^1.0.1" }, "providedServices": { "default-script-runtime": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b4c25e7c..3df74176 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,27 +1,27 @@ dependencies: - '@babel/cli': 7.12.13_@babel+core@7.12.13 - '@babel/core': 7.12.13 - '@babel/preset-env': 7.12.13_@babel+core@7.12.13 - '@babel/preset-react': 7.12.13_@babel+core@7.12.13 + '@babel/cli': 7.13.10_@babel+core@7.13.10 + '@babel/core': 7.13.10 + '@babel/preset-env': 7.13.10_@babel+core@7.13.10 + '@babel/preset-react': 7.12.13_@babel+core@7.13.10 ansi-to-html: 0.6.14 atom-message-panel: 1.3.1 atom-space-pen-views-plus: 3.0.4 strip-ansi: 6.0.0 - underscore: 1.12.0 + underscore: 1.12.1 uuid: 8.3.2 devDependencies: - babel-eslint: 10.1.0_eslint@7.19.0 - eslint: 7.19.0 - eslint-config-airbnb-base: 14.2.1_846d62cfa210dc3f225625c64ae883be - eslint-plugin-import: 2.22.1_eslint@7.19.0 - tempy: 1.0.0 + babel-eslint: 10.1.0_eslint@7.22.0 + eslint: 7.22.0 + eslint-config-airbnb-base: 14.2.1_23c541aea0503b6154366e35dc4fb8b3 + eslint-plugin-import: 2.22.1_eslint@7.22.0 + tempy: 1.0.1 lockfileVersion: 5.2 optionalDependencies: coffeescript: 2.5.1 packages: - /@babel/cli/7.12.13_@babel+core@7.12.13: + /@babel/cli/7.13.10_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 commander: 4.1.1 convert-source-map: 1.7.0 fs-readdir-recursive: 1.1.0 @@ -38,86 +38,102 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-Zto3HPeE0GRmaxobUl7NvFTo97NKe1zdAuWqTO8oka7nE0IIqZ4CFvuRZe1qf+ZMd7eHMhwqrecjwc10mjXo/g== + integrity: sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ== + /@babel/code-frame/7.12.11: + dependencies: + '@babel/highlight': 7.12.13 + dev: true + resolution: + integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== /@babel/code-frame/7.12.13: dependencies: '@babel/highlight': 7.12.13 resolution: integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - /@babel/compat-data/7.12.13: + /@babel/compat-data/7.13.11: dev: false resolution: - integrity: sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg== - /@babel/core/7.12.13: + integrity: sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== + /@babel/core/7.13.10: dependencies: '@babel/code-frame': 7.12.13 - '@babel/generator': 7.12.15 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helpers': 7.12.13 - '@babel/parser': 7.12.15 + '@babel/generator': 7.13.9 + '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helpers': 7.13.10 + '@babel/parser': 7.13.11 '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 convert-source-map: 1.7.0 debug: 4.3.1 gensync: 1.0.0-beta.2 json5: 2.2.0 lodash: 4.17.20 - semver: 5.7.1 + semver: 6.3.0 source-map: 0.5.7 dev: false engines: node: '>=6.9.0' resolution: - integrity: sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw== + integrity: sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== /@babel/generator/7.12.15: dependencies: '@babel/types': 7.12.13 jsesc: 2.5.2 source-map: 0.5.7 + dev: true resolution: integrity: sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ== + /@babel/generator/7.13.9: + dependencies: + '@babel/types': 7.13.0 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: false + resolution: + integrity: sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== /@babel/helper-annotate-as-pure/7.12.13: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== /@babel/helper-builder-binary-assignment-operator-visitor/7.12.13: dependencies: '@babel/helper-explode-assignable-expression': 7.12.13 - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== - /@babel/helper-compilation-targets/7.12.13_@babel+core@7.12.13: + /@babel/helper-compilation-targets/7.13.10_@babel+core@7.13.10: dependencies: - '@babel/compat-data': 7.12.13 - '@babel/core': 7.12.13 - '@babel/helper-validator-option': 7.12.11 + '@babel/compat-data': 7.13.11 + '@babel/core': 7.13.10 + '@babel/helper-validator-option': 7.12.17 browserslist: 4.16.3 - semver: 5.7.1 + semver: 6.3.0 dev: false peerDependencies: '@babel/core': ^7.0.0 resolution: - integrity: sha512-dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw== - /@babel/helper-create-class-features-plugin/7.12.13_@babel+core@7.12.13: + integrity: sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== + /@babel/helper-create-class-features-plugin/7.13.11_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-function-name': 7.12.13 - '@babel/helper-member-expression-to-functions': 7.12.13 + '@babel/helper-member-expression-to-functions': 7.13.0 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-replace-supers': 7.13.0 '@babel/helper-split-export-declaration': 7.12.13 dev: false peerDependencies: '@babel/core': ^7.0.0 resolution: - integrity: sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q== - /@babel/helper-create-regexp-features-plugin/7.12.13_@babel+core@7.12.13: + integrity: sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== + /@babel/helper-create-regexp-features-plugin/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 regexpu-core: 4.7.1 dev: false @@ -125,9 +141,25 @@ packages: '@babel/core': ^7.0.0 resolution: integrity: sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw== + /@babel/helper-define-polyfill-provider/0.1.5_@babel+core@7.13.10: + dependencies: + '@babel/core': 7.13.10 + '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 + '@babel/helper-module-imports': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/traverse': 7.13.0 + debug: 4.3.1 + lodash.debounce: 4.0.8 + resolve: 1.19.0 + semver: 6.3.0 + dev: false + peerDependencies: + '@babel/core': ^7.4.0-0 + resolution: + integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== /@babel/helper-explode-assignable-expression/7.12.13: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== @@ -143,41 +175,48 @@ packages: '@babel/types': 7.12.13 resolution: integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - /@babel/helper-hoist-variables/7.12.13: + /@babel/helper-hoist-variables/7.13.0: dependencies: - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: false resolution: - integrity: sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw== + integrity: sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== /@babel/helper-member-expression-to-functions/7.12.13: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ== + /@babel/helper-member-expression-to-functions/7.13.0: + dependencies: + '@babel/types': 7.13.0 + dev: false + resolution: + integrity: sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== /@babel/helper-module-imports/7.12.13: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== - /@babel/helper-module-transforms/7.12.13: + /@babel/helper-module-transforms/7.13.0: dependencies: '@babel/helper-module-imports': 7.12.13 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-replace-supers': 7.13.0 '@babel/helper-simple-access': 7.12.13 '@babel/helper-split-export-declaration': 7.12.13 '@babel/helper-validator-identifier': 7.12.11 '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 lodash: 4.17.20 dev: false resolution: - integrity: sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA== + integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== /@babel/helper-optimise-call-expression/7.12.13: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== @@ -185,32 +224,45 @@ packages: dev: false resolution: integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== - /@babel/helper-remap-async-to-generator/7.12.13: + /@babel/helper-plugin-utils/7.13.0: + dev: false + resolution: + integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + /@babel/helper-remap-async-to-generator/7.13.0: dependencies: '@babel/helper-annotate-as-pure': 7.12.13 - '@babel/helper-wrap-function': 7.12.13 - '@babel/types': 7.12.13 + '@babel/helper-wrap-function': 7.13.0 + '@babel/types': 7.13.0 dev: false resolution: - integrity: sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA== + integrity: sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== /@babel/helper-replace-supers/7.12.13: dependencies: '@babel/helper-member-expression-to-functions': 7.12.13 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== + /@babel/helper-replace-supers/7.13.0: + dependencies: + '@babel/helper-member-expression-to-functions': 7.13.0 + '@babel/helper-optimise-call-expression': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 + dev: false + resolution: + integrity: sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== /@babel/helper-simple-access/7.12.13: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== /@babel/helper-skip-transparent-expression-wrappers/7.12.1: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: false resolution: integrity: sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== @@ -222,27 +274,27 @@ packages: /@babel/helper-validator-identifier/7.12.11: resolution: integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - /@babel/helper-validator-option/7.12.11: + /@babel/helper-validator-option/7.12.17: dev: false resolution: - integrity: sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== - /@babel/helper-wrap-function/7.12.13: + integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + /@babel/helper-wrap-function/7.13.0: dependencies: '@babel/helper-function-name': 7.12.13 '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: false resolution: - integrity: sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw== - /@babel/helpers/7.12.13: + integrity: sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + /@babel/helpers/7.13.10: dependencies: '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: false resolution: - integrity: sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ== + integrity: sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== /@babel/highlight/7.12.13: dependencies: '@babel/helper-validator-identifier': 7.12.11 @@ -251,139 +303,148 @@ packages: resolution: integrity: sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== /@babel/parser/7.12.15: + dev: true engines: node: '>=6.0.0' hasBin: true resolution: integrity: sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== - /@babel/plugin-proposal-async-generator-functions/7.12.13_@babel+core@7.12.13: + /@babel/parser/7.13.11: + engines: + node: '>=6.0.0' + hasBin: true + resolution: + integrity: sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== + /@babel/plugin-proposal-async-generator-functions/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-remap-async-to-generator': 7.12.13 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-remap-async-to-generator': 7.13.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA== - /@babel/plugin-proposal-class-properties/7.12.13_@babel+core@7.12.13: + integrity: sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== + /@babel/plugin-proposal-class-properties/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-create-class-features-plugin': 7.12.13_@babel+core@7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA== - /@babel/plugin-proposal-dynamic-import/7.12.1_@babel+core@7.12.13: + integrity: sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== + /@babel/plugin-proposal-dynamic-import/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== - /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.12.13: + integrity: sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== + /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== - /@babel/plugin-proposal-json-strings/7.12.13_@babel+core@7.12.13: + /@babel/plugin-proposal-json-strings/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg== - /@babel/plugin-proposal-logical-assignment-operators/7.12.13_@babel+core@7.12.13: + integrity: sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== + /@babel/plugin-proposal-logical-assignment-operators/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ== - /@babel/plugin-proposal-nullish-coalescing-operator/7.12.13_@babel+core@7.12.13: + integrity: sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== + /@babel/plugin-proposal-nullish-coalescing-operator/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q== - /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.12.13: + integrity: sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== + /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== - /@babel/plugin-proposal-object-rest-spread/7.12.13_@babel+core@7.12.13: + /@babel/plugin-proposal-object-rest-spread/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-transform-parameters': 7.12.13_@babel+core@7.12.13 + '@babel/compat-data': 7.13.11 + '@babel/core': 7.13.10 + '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg== - /@babel/plugin-proposal-optional-catch-binding/7.12.13_@babel+core@7.12.13: + integrity: sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== + /@babel/plugin-proposal-optional-catch-binding/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg== - /@babel/plugin-proposal-optional-chaining/7.12.13_@babel+core@7.12.13: + integrity: sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== + /@babel/plugin-proposal-optional-chaining/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.13 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q== - /@babel/plugin-proposal-private-methods/7.12.13_@babel+core@7.12.13: + integrity: sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== + /@babel/plugin-proposal-private-methods/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-create-class-features-plugin': 7.12.13_@babel+core@7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg== - /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.12.13: + integrity: sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== + /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false engines: node: '>=4' @@ -391,386 +452,386 @@ packages: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.13: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.13: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.13: + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.13: + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.13: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.12.13: + /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.13: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.13: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.13: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.13: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.13: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.13: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.12.13: + /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - /@babel/plugin-transform-arrow-functions/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-arrow-functions/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg== - /@babel/plugin-transform-async-to-generator/7.12.13_@babel+core@7.12.13: + integrity: sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== + /@babel/plugin-transform-async-to-generator/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-remap-async-to-generator': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-remap-async-to-generator': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A== - /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.12.13: + integrity: sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== + /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== - /@babel/plugin-transform-block-scoping/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-block-scoping/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== - /@babel/plugin-transform-classes/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-classes/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-function-name': 7.12.13 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-replace-supers': 7.13.0 '@babel/helper-split-export-declaration': 7.12.13 globals: 11.12.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA== - /@babel/plugin-transform-computed-properties/7.12.13_@babel+core@7.12.13: + integrity: sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== + /@babel/plugin-transform-computed-properties/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA== - /@babel/plugin-transform-destructuring/7.12.13_@babel+core@7.12.13: + integrity: sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== + /@babel/plugin-transform-destructuring/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ== - /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.12.13: + integrity: sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== + /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== - /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== - /@babel/plugin-transform-exponentiation-operator/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-exponentiation-operator/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-builder-binary-assignment-operator-visitor': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== - /@babel/plugin-transform-for-of/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-for-of/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ== - /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.12.13: + integrity: sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== + /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-function-name': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== - /@babel/plugin-transform-literals/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-literals/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== - /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - /@babel/plugin-transform-modules-amd/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-modules-amd/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 babel-plugin-dynamic-import-node: 2.3.3 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA== - /@babel/plugin-transform-modules-commonjs/7.12.13_@babel+core@7.12.13: + integrity: sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== + /@babel/plugin-transform-modules-commonjs/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-simple-access': 7.12.13 babel-plugin-dynamic-import-node: 2.3.3 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ== - /@babel/plugin-transform-modules-systemjs/7.12.13_@babel+core@7.12.13: + integrity: sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== + /@babel/plugin-transform-modules-systemjs/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-hoist-variables': 7.12.13 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-hoist-variables': 7.13.0 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-validator-identifier': 7.12.11 babel-plugin-dynamic-import-node: 2.3.3 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA== - /@babel/plugin-transform-modules-umd/7.12.13_@babel+core@7.12.13: + integrity: sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== + /@babel/plugin-transform-modules-umd/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w== - /@babel/plugin-transform-named-capturing-groups-regex/7.12.13_@babel+core@7.12.13: + integrity: sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== + /@babel/plugin-transform-named-capturing-groups-regex/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0 resolution: integrity: sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== - /@babel/plugin-transform-new-target/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-new-target/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== - /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-replace-supers': 7.12.13 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - /@babel/plugin-transform-parameters/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-parameters/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA== - /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.12.13: + integrity: sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== + /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== - /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.12.13 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== - /@babel/plugin-transform-react-jsx-development/7.12.12_@babel+core@7.12.13: + /@babel/plugin-transform-react-jsx-development/7.12.12_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.12.13 + '@babel/core': 7.13.10 + '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== - /@babel/plugin-transform-react-jsx/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-react-jsx/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-module-imports': 7.12.13 '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-jsx': 7.12.13_@babel+core@7.12.13 - '@babel/types': 7.12.13 + '@babel/plugin-syntax-jsx': 7.12.13_@babel+core@7.13.10 + '@babel/types': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA== - /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.12.13: + /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-plugin-utils': 7.12.13 dev: false @@ -778,184 +839,186 @@ packages: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== - /@babel/plugin-transform-regenerator/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-regenerator/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 regenerator-transform: 0.14.5 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== - /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== - /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - /@babel/plugin-transform-spread/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-spread/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg== - /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.12.13: + integrity: sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== + /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - /@babel/plugin-transform-template-literals/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-template-literals/7.13.0_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg== - /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.12.13: + integrity: sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== + /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.12.13: + /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.13.10 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 + '@babel/helper-plugin-utils': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - /@babel/preset-env/7.12.13_@babel+core@7.12.13: - dependencies: - '@babel/compat-data': 7.12.13 - '@babel/core': 7.12.13 - '@babel/helper-compilation-targets': 7.12.13_@babel+core@7.12.13 - '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-validator-option': 7.12.11 - '@babel/plugin-proposal-async-generator-functions': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-class-properties': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-dynamic-import': 7.12.1_@babel+core@7.12.13 - '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-json-strings': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-logical-assignment-operators': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-object-rest-spread': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-optional-catch-binding': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-optional-chaining': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-private-methods': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.13 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.13 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.13 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.13 - '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-arrow-functions': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-async-to-generator': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-block-scoping': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-classes': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-computed-properties': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-destructuring': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-for-of': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-modules-amd': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-modules-commonjs': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-modules-systemjs': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-modules-umd': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-parameters': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-regenerator': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-spread': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-template-literals': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.12.13 - '@babel/preset-modules': 0.1.4_@babel+core@7.12.13 - '@babel/types': 7.12.13 - core-js-compat: 3.8.3 - semver: 5.7.1 - dev: false - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-JUVlizG8SoFTz4LmVUL8++aVwzwxcvey3N0j1tRbMAXVEy95uQ/cnEkmEKHN00Bwq4voAV3imQGnQvpkLAxsrw== - /@babel/preset-modules/0.1.4_@babel+core@7.12.13: - dependencies: - '@babel/core': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.13 - '@babel/types': 7.12.13 + /@babel/preset-env/7.13.10_@babel+core@7.13.10: + dependencies: + '@babel/compat-data': 7.13.11 + '@babel/core': 7.13.10 + '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-validator-option': 7.12.17 + '@babel/plugin-proposal-async-generator-functions': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-class-properties': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-proposal-dynamic-import': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-proposal-json-strings': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-logical-assignment-operators': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-proposal-object-rest-spread': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-optional-catch-binding': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-optional-chaining': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-private-methods': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.10 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.13.10 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.10 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-arrow-functions': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-async-to-generator': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-block-scoping': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-classes': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-computed-properties': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-destructuring': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-for-of': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-modules-amd': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-modules-commonjs': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-transform-modules-systemjs': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-transform-modules-umd': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-regenerator': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-spread': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-template-literals': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.13.10 + '@babel/preset-modules': 0.1.4_@babel+core@7.13.10 + '@babel/types': 7.13.0 + babel-plugin-polyfill-corejs2: 0.1.10_@babel+core@7.13.10 + babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.13.10 + babel-plugin-polyfill-regenerator: 0.1.6_@babel+core@7.13.10 + core-js-compat: 3.9.1 + semver: 6.3.0 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ== + /@babel/preset-modules/0.1.4_@babel+core@7.13.10: + dependencies: + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.13.10 + '@babel/types': 7.13.0 esutils: 2.0.3 dev: false peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - /@babel/preset-react/7.12.13_@babel+core@7.12.13: + /@babel/preset-react/7.12.13_@babel+core@7.13.10: dependencies: - '@babel/core': 7.12.13 + '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-transform-react-display-name': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.12.13 - '@babel/plugin-transform-react-jsx-development': 7.12.12_@babel+core@7.12.13 - '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.12.13 + '@babel/plugin-transform-react-display-name': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.13.10 + '@babel/plugin-transform-react-jsx-development': 7.12.12_@babel+core@7.13.10 + '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.13.10 dev: false peerDependencies: '@babel/core': ^7.0.0-0 @@ -970,8 +1033,8 @@ packages: /@babel/template/7.12.13: dependencies: '@babel/code-frame': 7.12.13 - '@babel/parser': 7.12.15 - '@babel/types': 7.12.13 + '@babel/parser': 7.13.11 + '@babel/types': 7.13.0 resolution: integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== /@babel/traverse/7.12.13: @@ -985,8 +1048,23 @@ packages: debug: 4.3.1 globals: 11.12.0 lodash: 4.17.20 + dev: true resolution: integrity: sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== + /@babel/traverse/7.13.0: + dependencies: + '@babel/code-frame': 7.12.13 + '@babel/generator': 7.13.9 + '@babel/helper-function-name': 7.12.13 + '@babel/helper-split-export-declaration': 7.12.13 + '@babel/parser': 7.13.11 + '@babel/types': 7.13.0 + debug: 4.3.1 + globals: 11.12.0 + lodash: 4.17.20 + dev: false + resolution: + integrity: sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== /@babel/types/7.12.13: dependencies: '@babel/helper-validator-identifier': 7.12.11 @@ -994,7 +1072,14 @@ packages: to-fast-properties: 2.0.0 resolution: integrity: sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== - /@eslint/eslintrc/0.3.0: + /@babel/types/7.13.0: + dependencies: + '@babel/helper-validator-identifier': 7.12.11 + lodash: 4.17.20 + to-fast-properties: 2.0.0 + resolution: + integrity: sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== + /@eslint/eslintrc/0.4.0: dependencies: ajv: 6.12.6 debug: 4.3.1 @@ -1003,14 +1088,13 @@ packages: ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 - lodash: 4.17.20 minimatch: 3.0.4 strip-json-comments: 3.1.1 dev: true engines: node: ^10.12.0 || >=12.0.0 resolution: - integrity: sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== + integrity: sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents: dependencies: anymatch: 2.0.0 @@ -1264,13 +1348,13 @@ packages: dev: false resolution: integrity: sha1-plsskg7QL3JAFPp9Plw9ePv1mZc= - /babel-eslint/10.1.0_eslint@7.19.0: + /babel-eslint/10.1.0_eslint@7.22.0: dependencies: '@babel/code-frame': 7.12.13 '@babel/parser': 7.12.15 '@babel/traverse': 7.12.13 '@babel/types': 7.12.13 - eslint: 7.19.0 + eslint: 7.22.0 eslint-visitor-keys: 1.3.0 resolve: 1.19.0 deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. @@ -1287,6 +1371,36 @@ packages: dev: false resolution: integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + /babel-plugin-polyfill-corejs2/0.1.10_@babel+core@7.13.10: + dependencies: + '@babel/compat-data': 7.13.11 + '@babel/core': 7.13.10 + '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 + semver: 6.3.0 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA== + /babel-plugin-polyfill-corejs3/0.1.7_@babel+core@7.13.10: + dependencies: + '@babel/core': 7.13.10 + '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 + core-js-compat: 3.9.1 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== + /babel-plugin-polyfill-regenerator/0.1.6_@babel+core@7.13.10: + dependencies: + '@babel/core': 7.13.10 + '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== /balanced-match/1.0.0: resolution: integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= @@ -1528,13 +1642,13 @@ packages: optional: true resolution: integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - /core-js-compat/3.8.3: + /core-js-compat/3.9.1: dependencies: browserslist: 4.16.3 semver: 7.0.0 dev: false resolution: - integrity: sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== + integrity: sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== /core-util-is/1.0.2: dev: false optional: true @@ -1796,11 +1910,11 @@ packages: node: '>=0.8.0' resolution: integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - /eslint-config-airbnb-base/14.2.1_846d62cfa210dc3f225625c64ae883be: + /eslint-config-airbnb-base/14.2.1_23c541aea0503b6154366e35dc4fb8b3: dependencies: confusing-browser-globals: 1.0.10 - eslint: 7.19.0 - eslint-plugin-import: 2.22.1_eslint@7.19.0 + eslint: 7.22.0 + eslint-plugin-import: 2.22.1_eslint@7.22.0 object.assign: 4.1.2 object.entries: 1.1.3 dev: true @@ -1827,14 +1941,14 @@ packages: node: '>=4' resolution: integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - /eslint-plugin-import/2.22.1_eslint@7.19.0: + /eslint-plugin-import/2.22.1_eslint@7.22.0: dependencies: array-includes: 3.1.2 array.prototype.flat: 1.2.4 contains-path: 0.1.0 debug: 2.6.9 doctrine: 1.5.0 - eslint: 7.19.0 + eslint: 7.22.0 eslint-import-resolver-node: 0.3.4 eslint-module-utils: 2.6.0 has: 1.0.3 @@ -1879,10 +1993,10 @@ packages: node: '>=10' resolution: integrity: sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - /eslint/7.19.0: + /eslint/7.22.0: dependencies: - '@babel/code-frame': 7.12.13 - '@eslint/eslintrc': 0.3.0 + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.0 ajv: 6.12.6 chalk: 4.1.0 cross-spawn: 7.0.3 @@ -1895,10 +2009,10 @@ packages: espree: 7.3.1 esquery: 1.4.0 esutils: 2.0.3 - file-entry-cache: 6.0.0 + file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.1 - globals: 12.4.0 + globals: 13.7.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1906,7 +2020,7 @@ packages: js-yaml: 3.14.1 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 - lodash: 4.17.20 + lodash: 4.17.21 minimatch: 3.0.4 natural-compare: 1.4.0 optionator: 0.9.1 @@ -1923,7 +2037,7 @@ packages: node: ^10.12.0 || >=12.0.0 hasBin: true resolution: - integrity: sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg== + integrity: sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg== /espree/7.3.1: dependencies: acorn: 7.4.1 @@ -2061,14 +2175,14 @@ packages: dev: true resolution: integrity: sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== - /file-entry-cache/6.0.0: + /file-entry-cache/6.0.1: dependencies: flat-cache: 3.0.4 dev: true engines: node: ^10.12.0 || >=12.0.0 resolution: - integrity: sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== /fill-range/4.0.0: dependencies: extend-shallow: 2.0.1 @@ -2221,6 +2335,14 @@ packages: node: '>=8' resolution: integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + /globals/13.7.0: + dependencies: + type-fest: 0.20.2 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA== /globby/11.0.2: dependencies: array-union: 2.1.0 @@ -2405,7 +2527,6 @@ packages: /is-core-module/2.2.0: dependencies: has: 1.0.3 - dev: true resolution: integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== /is-data-descriptor/0.1.4: @@ -2724,9 +2845,17 @@ packages: node: '>=4' resolution: integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + /lodash.debounce/4.0.8: + dev: false + resolution: + integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168= /lodash/4.17.20: resolution: integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + /lodash/4.17.21: + dev: true + resolution: + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== /lru-cache/6.0.0: dependencies: yallist: 4.0.0 @@ -3044,7 +3173,6 @@ packages: resolution: integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== /path-parse/1.0.6: - dev: true resolution: integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== /path-type/2.0.0: @@ -3278,7 +3406,6 @@ packages: dependencies: is-core-module: 2.2.0 path-parse: 1.0.6 - dev: true resolution: integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== /ret/0.1.15: @@ -3321,6 +3448,11 @@ packages: hasBin: true resolution: integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + /semver/6.3.0: + dev: false + hasBin: true + resolution: + integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== /semver/7.0.0: dev: false hasBin: true @@ -3567,7 +3699,7 @@ packages: /table/6.0.7: dependencies: ajv: 7.0.4 - lodash: 4.17.20 + lodash: 4.17.21 slice-ansi: 4.0.0 string-width: 4.2.0 dev: true @@ -3581,7 +3713,7 @@ packages: node: '>=8' resolution: integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== - /tempy/1.0.0: + /tempy/1.0.1: dependencies: del: 6.0.0 is-stream: 2.0.0 @@ -3592,7 +3724,7 @@ packages: engines: node: '>=10' resolution: - integrity: sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w== + integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== /text-table/0.2.0: dev: true resolution: @@ -3663,6 +3795,12 @@ packages: node: '>=10' resolution: integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + /type-fest/0.20.2: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== /type-fest/0.8.1: dev: true engines: @@ -3687,6 +3825,10 @@ packages: dev: false resolution: integrity: sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ== + /underscore/1.12.1: + dev: false + resolution: + integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== /unicode-canonical-property-names-ecmascript/1.0.4: dev: false engines: @@ -3820,19 +3962,19 @@ packages: resolution: integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== specifiers: - '@babel/cli': ^7.12.10 - '@babel/core': ^7.12.10 - '@babel/preset-env': ^7.12.11 - '@babel/preset-react': ^7.12.10 + '@babel/cli': ^7.13.10 + '@babel/core': ^7.13.10 + '@babel/preset-env': ^7.13.10 + '@babel/preset-react': ^7.12.13 ansi-to-html: ^0.6.14 atom-message-panel: 1.3.1 atom-space-pen-views-plus: ^3.0.4 babel-eslint: ^10.1.0 coffeescript: ^2 - eslint: ^7.16.0 + eslint: ^7.22.0 eslint-config-airbnb-base: ^14.2.1 eslint-plugin-import: ^2.22.1 strip-ansi: ^6.0.0 - tempy: ^1.0.0 - underscore: ^1.12.0 + tempy: ^1.0.1 + underscore: ^1.12.1 uuid: ^8.3.2 From 126777a657eac2a80a08c1d3a6382e1b1648ed8c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 00:04:53 -0500 Subject: [PATCH 298/410] chore: fix deps bumper --- .github/workflows/bump_deps.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/bump_deps.yml b/.github/workflows/bump_deps.yml index 00c33bb0..8b62dda0 100644 --- a/.github/workflows/bump_deps.yml +++ b/.github/workflows/bump_deps.yml @@ -13,7 +13,7 @@ jobs: with: node-version: "12" - name: Setup PNPM - uses: pnpm/action-setup@v1.2.1 + uses: pnpm/action-setup@master with: version: latest @@ -24,7 +24,6 @@ jobs: ncu -u --dep prod pnpm install - - uses: tibdex/github-app-token@v1 id: generate-token with: @@ -33,12 +32,11 @@ jobs: - uses: peter-evans/create-pull-request@v3 with: token: ${{ steps.generate-token.outputs.token }} - commit-message: "chore: Update Dependencies" - title: "fix: Update Dependencies" + commit-message: "fix: update Dependencies" + title: "fix: update Dependencies" labels: Dependencies branch: "Bump_Dependencies" - Bump_devDependencies: runs-on: ubuntu-latest steps: @@ -47,7 +45,7 @@ jobs: with: node-version: "12" - name: Setup PNPM - uses: pnpm/action-setup@v1.2.1 + uses: pnpm/action-setup@master with: version: latest @@ -66,7 +64,7 @@ jobs: - uses: peter-evans/create-pull-request@v3 with: token: ${{ steps.generate-token.outputs.token }} - commit-message: "chore: Update devDependencies" - title: "chore: Update devDependencies" + commit-message: "chore: update devDependencies" + title: "chore: update devDependencies" labels: Dependencies branch: "Bump_devDependencies" From 1538565b1cf4d98be8e94fee4f2bd4e155398d69 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 20 Mar 2021 23:47:57 -0500 Subject: [PATCH 299/410] chore: remove babel config from package.json --- package.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/package.json b/package.json index bce4d120..90a9138d 100644 --- a/package.json +++ b/package.json @@ -64,18 +64,6 @@ "test.lint": "eslint .", "test": "atom --test spec" }, - "babel": { - "presets": [ - [ - "env", - { - "targets": { - "node": "current" - } - } - ] - ] - }, "keywords": [ "script", "runner", From df42832c9694324925916fa276cef79d54313b31 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 00:29:51 -0500 Subject: [PATCH 300/410] chore: install eslint-config-atomic --- .eslintignore | 2 - .eslintrc.json | 4 + .eslintrc.yml | 22 - package.json | 4 +- pnpm-lock.yaml | 1101 ++++++++++++++++++++++++++++++++++++++++++------ 5 files changed, 976 insertions(+), 157 deletions(-) delete mode 100644 .eslintignore create mode 100644 .eslintrc.json delete mode 100644 .eslintrc.yml diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index e3ffa30b..00000000 --- a/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -spec/fixtures -examples diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..a7fdb978 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "eslint-config-atomic", + "ignorePatterns": ["dist/", "node_modules/", "spec/fixtures", "examples", "lib/grammars/*.coffee"] +} diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index 99668b71..00000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,22 +0,0 @@ -extends: airbnb-base -parser: babel-eslint -env: - browser: true - node: true - jasmine: true - -globals: - atom: true - -settings: - import/core-modules: [ atom ] - -rules: - no-restricted-syntax: [0, "FunctionExpression", "no-restricted-syntax"] - no-param-reassign: [0] - class-methods-use-this: [0] - default-case: [0] - guard-for-in: [0] - no-this-before-super: [0] - prefer-rest-params: [0] - max-len: [0] diff --git a/package.json b/package.json index 90a9138d..0988ad3e 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,8 @@ "coffeescript": "^2" }, "devDependencies": { - "babel-eslint": "^10.1.0", "eslint": "^7.22.0", - "eslint-config-airbnb-base": "^14.2.1", - "eslint-plugin-import": "^2.22.1", + "eslint-config-atomic": "^1.12.3", "tempy": "^1.0.1" }, "providedServices": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3df74176..7e0c7392 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,8 @@ dependencies: underscore: 1.12.1 uuid: 8.3.2 devDependencies: - babel-eslint: 10.1.0_eslint@7.22.0 eslint: 7.22.0 - eslint-config-airbnb-base: 14.2.1_23c541aea0503b6154366e35dc4fb8b3 - eslint-plugin-import: 2.22.1_eslint@7.22.0 + eslint-config-atomic: 1.12.3_eslint@7.22.0 tempy: 1.0.1 lockfileVersion: 5.2 optionalDependencies: @@ -51,7 +49,6 @@ packages: resolution: integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== /@babel/compat-data/7.13.11: - dev: false resolution: integrity: sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== /@babel/core/7.13.10: @@ -72,25 +69,15 @@ packages: lodash: 4.17.20 semver: 6.3.0 source-map: 0.5.7 - dev: false engines: node: '>=6.9.0' resolution: integrity: sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== - /@babel/generator/7.12.15: - dependencies: - '@babel/types': 7.12.13 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - resolution: - integrity: sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ== /@babel/generator/7.13.9: dependencies: '@babel/types': 7.13.0 jsesc: 2.5.2 source-map: 0.5.7 - dev: false resolution: integrity: sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== /@babel/helper-annotate-as-pure/7.12.13: @@ -113,7 +100,6 @@ packages: '@babel/helper-validator-option': 7.12.17 browserslist: 4.16.3 semver: 6.3.0 - dev: false peerDependencies: '@babel/core': ^7.0.0 resolution: @@ -191,13 +177,11 @@ packages: /@babel/helper-member-expression-to-functions/7.13.0: dependencies: '@babel/types': 7.13.0 - dev: false resolution: integrity: sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== /@babel/helper-module-imports/7.12.13: dependencies: '@babel/types': 7.13.0 - dev: false resolution: integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== /@babel/helper-module-transforms/7.13.0: @@ -211,13 +195,11 @@ packages: '@babel/traverse': 7.13.0 '@babel/types': 7.13.0 lodash: 4.17.20 - dev: false resolution: integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== /@babel/helper-optimise-call-expression/7.12.13: dependencies: '@babel/types': 7.13.0 - dev: false resolution: integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== /@babel/helper-plugin-utils/7.12.13: @@ -251,13 +233,11 @@ packages: '@babel/helper-optimise-call-expression': 7.12.13 '@babel/traverse': 7.13.0 '@babel/types': 7.13.0 - dev: false resolution: integrity: sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== /@babel/helper-simple-access/7.12.13: dependencies: '@babel/types': 7.13.0 - dev: false resolution: integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== /@babel/helper-skip-transparent-expression-wrappers/7.12.1: @@ -275,7 +255,6 @@ packages: resolution: integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== /@babel/helper-validator-option/7.12.17: - dev: false resolution: integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== /@babel/helper-wrap-function/7.13.0: @@ -292,7 +271,6 @@ packages: '@babel/template': 7.12.13 '@babel/traverse': 7.13.0 '@babel/types': 7.13.0 - dev: false resolution: integrity: sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== /@babel/highlight/7.12.13: @@ -302,13 +280,6 @@ packages: js-tokens: 4.0.0 resolution: integrity: sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== - /@babel/parser/7.12.15: - dev: true - engines: - node: '>=6.0.0' - hasBin: true - resolution: - integrity: sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== /@babel/parser/7.13.11: engines: node: '>=6.0.0' @@ -1024,12 +995,25 @@ packages: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== + /@babel/runtime-corejs3/7.13.10: + dependencies: + core-js-pure: 3.9.1 + regenerator-runtime: 0.13.7 + dev: true + resolution: + integrity: sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg== /@babel/runtime/7.12.13: dependencies: regenerator-runtime: 0.13.7 dev: false resolution: integrity: sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== + /@babel/runtime/7.13.10: + dependencies: + regenerator-runtime: 0.13.7 + dev: true + resolution: + integrity: sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== /@babel/template/7.12.13: dependencies: '@babel/code-frame': 7.12.13 @@ -1037,20 +1021,6 @@ packages: '@babel/types': 7.13.0 resolution: integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - /@babel/traverse/7.12.13: - dependencies: - '@babel/code-frame': 7.12.13 - '@babel/generator': 7.12.15 - '@babel/helper-function-name': 7.12.13 - '@babel/helper-split-export-declaration': 7.12.13 - '@babel/parser': 7.12.15 - '@babel/types': 7.12.13 - debug: 4.3.1 - globals: 11.12.0 - lodash: 4.17.20 - dev: true - resolution: - integrity: sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== /@babel/traverse/7.13.0: dependencies: '@babel/code-frame': 7.12.13 @@ -1062,7 +1032,6 @@ packages: debug: 4.3.1 globals: 11.12.0 lodash: 4.17.20 - dev: false resolution: integrity: sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== /@babel/types/7.12.13: @@ -1115,7 +1084,7 @@ packages: /@nodelib/fs.scandir/2.1.4: dependencies: '@nodelib/fs.stat': 2.0.4 - run-parallel: 1.1.10 + run-parallel: 1.2.0 dev: true engines: node: '>= 8' @@ -1130,16 +1099,125 @@ packages: /@nodelib/fs.walk/1.2.6: dependencies: '@nodelib/fs.scandir': 2.1.4 - fastq: 1.10.1 + fastq: 1.11.0 dev: true engines: node: '>= 8' resolution: integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + /@types/json-schema/7.0.7: + dev: true + resolution: + integrity: sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== /@types/json5/0.0.29: dev: true resolution: integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + /@typescript-eslint/eslint-plugin/4.18.0_ef0f217f6395606fd8bbe7b0291eff7e: + dependencies: + '@typescript-eslint/experimental-utils': 4.18.0_eslint@7.22.0+typescript@4.2.3 + '@typescript-eslint/parser': 4.18.0_eslint@7.22.0+typescript@4.2.3 + '@typescript-eslint/scope-manager': 4.18.0 + debug: 4.3.1 + eslint: 7.22.0 + functional-red-black-tree: 1.0.1 + lodash: 4.17.21 + regexpp: 3.1.0 + semver: 7.3.4 + tsutils: 3.21.0_typescript@4.2.3 + typescript: 4.2.3 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ== + /@typescript-eslint/experimental-utils/4.18.0_eslint@7.22.0+typescript@4.2.3: + dependencies: + '@types/json-schema': 7.0.7 + '@typescript-eslint/scope-manager': 4.18.0 + '@typescript-eslint/types': 4.18.0 + '@typescript-eslint/typescript-estree': 4.18.0_typescript@4.2.3 + eslint: 7.22.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + eslint: '*' + typescript: '*' + resolution: + integrity: sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A== + /@typescript-eslint/parser/4.18.0_eslint@7.22.0+typescript@4.2.3: + dependencies: + '@typescript-eslint/scope-manager': 4.18.0 + '@typescript-eslint/types': 4.18.0 + '@typescript-eslint/typescript-estree': 4.18.0_typescript@4.2.3 + debug: 4.3.1 + eslint: 7.22.0 + typescript: 4.2.3 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA== + /@typescript-eslint/scope-manager/4.18.0: + dependencies: + '@typescript-eslint/types': 4.18.0 + '@typescript-eslint/visitor-keys': 4.18.0 + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ== + /@typescript-eslint/types/4.18.0: + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A== + /@typescript-eslint/typescript-estree/4.18.0_typescript@4.2.3: + dependencies: + '@typescript-eslint/types': 4.18.0 + '@typescript-eslint/visitor-keys': 4.18.0 + debug: 4.3.1 + globby: 11.0.2 + is-glob: 4.0.1 + semver: 7.3.4 + tsutils: 3.21.0_typescript@4.2.3 + typescript: 4.2.3 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg== + /@typescript-eslint/visitor-keys/4.18.0: + dependencies: + '@typescript-eslint/types': 4.18.0 + eslint-visitor-keys: 2.0.0 + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw== /acorn-jsx/5.3.1_acorn@7.4.1: dependencies: acorn: 7.4.1 @@ -1188,11 +1266,23 @@ packages: node: '>=6' resolution: integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + /ansi-regex/2.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= /ansi-regex/5.0.0: engines: node: '>=8' resolution: integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + /ansi-styles/2.2.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= /ansi-styles/3.2.1: dependencies: color-convert: 1.9.3 @@ -1239,6 +1329,19 @@ packages: dev: true resolution: integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + /argparse/2.0.1: + dev: true + resolution: + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + /aria-query/4.2.2: + dependencies: + '@babel/runtime': 7.13.10 + '@babel/runtime-corejs3': 7.13.10 + dev: true + engines: + node: '>=6.0' + resolution: + integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== /arr-diff/4.0.0: dev: false engines: @@ -1260,18 +1363,18 @@ packages: optional: true resolution: integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - /array-includes/3.1.2: + /array-includes/3.1.3: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.0-next.2 + es-abstract: 1.18.0 get-intrinsic: 1.1.1 is-string: 1.0.5 dev: true engines: node: '>= 0.4' resolution: - integrity: sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== + integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== /array-union/2.1.0: dev: true engines: @@ -1289,12 +1392,23 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.0-next.2 + es-abstract: 1.18.0 dev: true engines: node: '>= 0.4' resolution: integrity: sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + /array.prototype.flatmap/1.2.4: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0 + function-bind: 1.1.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== /assign-symbols/1.0.0: dev: false engines: @@ -1302,6 +1416,10 @@ packages: optional: true resolution: integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + /ast-types-flow/0.0.7: + dev: true + resolution: + integrity: sha1-9wtzXGvKGlycItmCw+Oef+ujva0= /astral-regex/2.0.0: dev: true engines: @@ -1348,15 +1466,39 @@ packages: dev: false resolution: integrity: sha1-plsskg7QL3JAFPp9Plw9ePv1mZc= + /axe-core/3.5.5: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q== + /axe-core/4.1.3: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ== + /axobject-query/2.2.0: + dev: true + resolution: + integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + /babel-code-frame/6.26.0: + dependencies: + chalk: 1.1.3 + esutils: 2.0.3 + js-tokens: 3.0.2 + dev: true + resolution: + integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= /babel-eslint/10.1.0_eslint@7.22.0: dependencies: '@babel/code-frame': 7.12.13 - '@babel/parser': 7.12.15 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/parser': 7.13.11 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 eslint: 7.22.0 eslint-visitor-keys: 1.3.0 - resolve: 1.19.0 + resolve: 1.20.0 deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. dev: true engines: @@ -1365,6 +1507,24 @@ packages: eslint: '>= 4.12.1' resolution: integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + /babel-eslint/7.2.3: + dependencies: + babel-code-frame: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc= + /babel-messages/6.23.0: + dependencies: + babel-runtime: 6.26.0 + dev: true + resolution: + integrity: sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= /babel-plugin-dynamic-import-node/2.3.3: dependencies: object.assign: 4.1.2 @@ -1401,6 +1561,48 @@ packages: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== + /babel-runtime/6.26.0: + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.11.1 + dev: true + resolution: + integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + /babel-traverse/6.26.0: + dependencies: + babel-code-frame: 6.26.0 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + debug: 2.6.9 + globals: 9.18.0 + invariant: 2.2.4 + lodash: 4.17.21 + dev: true + resolution: + integrity: sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + /babel-types/6.26.0: + dependencies: + babel-runtime: 6.26.0 + esutils: 2.0.3 + lodash: 4.17.21 + to-fast-properties: 1.0.3 + dev: true + resolution: + integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + /babylon/6.18.0: + dev: true + hasBin: true + resolution: + integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + /babylon/7.0.0-beta.47: + dev: true + engines: + node: '>=6.0.0' + hasBin: true + resolution: + integrity: sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ== /balanced-match/1.0.0: resolution: integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= @@ -1471,7 +1673,6 @@ packages: electron-to-chromium: 1.3.657 escalade: 3.1.1 node-releases: 1.1.70 - dev: false engines: node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 hasBin: true @@ -1507,9 +1708,20 @@ packages: resolution: integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== /caniuse-lite/1.0.30001185: - dev: false resolution: integrity: sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg== + /chalk/1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= /chalk/2.4.2: dependencies: ansi-styles: 3.2.1 @@ -1563,12 +1775,26 @@ packages: node: '>=6' resolution: integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + /cli/1.0.1: + dependencies: + exit: 0.1.2 + glob: 7.1.6 + dev: true + engines: + node: '>=0.2.5' + resolution: + integrity: sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ= + /coffeescript/1.12.7: + dev: true + engines: + node: '>=0.8.0' + hasBin: true + resolution: + integrity: sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== /coffeescript/2.5.1: - dev: false engines: node: '>=6' hasBin: true - optional: true resolution: integrity: sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ== /collection-visit/1.0.0: @@ -1602,7 +1828,6 @@ packages: resolution: integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== /colorette/1.2.1: - dev: false resolution: integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== /commander/4.1.1: @@ -1623,6 +1848,12 @@ packages: dev: true resolution: integrity: sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + /console-browserify/1.1.0: + dependencies: + date-now: 0.1.4 + dev: true + resolution: + integrity: sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= /contains-path/0.1.0: dev: true engines: @@ -1632,7 +1863,6 @@ packages: /convert-source-map/1.7.0: dependencies: safe-buffer: 5.1.2 - dev: false resolution: integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== /copy-descriptor/0.1.1: @@ -1649,9 +1879,18 @@ packages: dev: false resolution: integrity: sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== + /core-js-pure/3.9.1: + dev: true + requiresBuild: true + resolution: + integrity: sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A== + /core-js/2.6.12: + deprecated: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3. + dev: true + requiresBuild: true + resolution: + integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== /core-util-is/1.0.2: - dev: false - optional: true resolution: integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= /cross-spawn/7.0.3: @@ -1683,6 +1922,14 @@ packages: dev: false resolution: integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + /damerau-levenshtein/1.0.6: + dev: true + resolution: + integrity: sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + /date-now/0.1.4: + dev: true + resolution: + integrity: sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= /debug/2.6.9: dependencies: ms: 2.0.0 @@ -1778,6 +2025,14 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + /doctrine/2.1.0: + dependencies: + esutils: 2.0.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== /doctrine/3.0.0: dependencies: esutils: 2.0.3 @@ -1786,8 +2041,35 @@ packages: node: '>=6.0.0' resolution: integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + /dom-serializer/0.2.2: + dependencies: + domelementtype: 2.1.0 + entities: 2.2.0 + dev: true + resolution: + integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + /domelementtype/1.3.1: + dev: true + resolution: + integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + /domelementtype/2.1.0: + dev: true + resolution: + integrity: sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + /domhandler/2.3.0: + dependencies: + domelementtype: 1.3.1 + dev: true + resolution: + integrity: sha1-LeWaCCLVAn+r/28DLCsloqir5zg= + /domutils/1.5.1: + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + resolution: + integrity: sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= /electron-to-chromium/1.3.657: - dev: false resolution: integrity: sha512-/9ROOyvEflEbaZFUeGofD+Tqs/WynbSTbNgNF+/TJJxH1ePD/e6VjZlDJpW3FFFd3nj5l3Hd8ki2vRwy+gyRFw== /emissary/1.3.3: @@ -1803,6 +2085,10 @@ packages: dev: true resolution: integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + /emoji-regex/9.2.2: + dev: true + resolution: + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== /enquirer/2.3.6: dependencies: ansi-colors: 4.1.1 @@ -1811,37 +2097,47 @@ packages: node: '>=8.6' resolution: integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + /entities/1.0.0: + dev: true + resolution: + integrity: sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY= /entities/1.1.2: dev: false resolution: integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + /entities/2.2.0: + dev: true + resolution: + integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== /error-ex/1.3.2: dependencies: is-arrayish: 0.2.1 dev: true resolution: integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - /es-abstract/1.18.0-next.2: + /es-abstract/1.18.0: dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 get-intrinsic: 1.1.1 has: 1.0.3 - has-symbols: 1.0.1 + has-symbols: 1.0.2 is-callable: 1.2.3 is-negative-zero: 2.0.1 is-regex: 1.1.2 + is-string: 1.0.5 object-inspect: 1.9.0 object-keys: 1.1.1 object.assign: 4.1.2 - string.prototype.trimend: 1.0.3 - string.prototype.trimstart: 1.0.3 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 + unbox-primitive: 1.0.0 dev: true engines: node: '>= 0.4' resolution: - integrity: sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + integrity: sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== /es-to-primitive/1.2.1: dependencies: is-callable: 1.2.3 @@ -1900,7 +2196,6 @@ packages: resolution: integrity: sha1-cGzvnpmqI2undmwjnIueKG6n0ig= /escalade/3.1.1: - dev: false engines: node: '>=6' resolution: @@ -1919,51 +2214,251 @@ packages: object.entries: 1.1.3 dev: true engines: - node: '>= 6' - peerDependencies: - eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 - eslint-plugin-import: ^2.22.1 + node: '>= 6' + peerDependencies: + eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 + eslint-plugin-import: ^2.22.1 + resolution: + integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== + /eslint-config-airbnb/18.2.1_1d033471a3365693861bf07d097fd1b9: + dependencies: + eslint: 7.22.0 + eslint-config-airbnb-base: 14.2.1_23c541aea0503b6154366e35dc4fb8b3 + eslint-plugin-import: 2.22.1_eslint@7.22.0 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.22.0 + eslint-plugin-react: 7.22.0_eslint@7.22.0 + object.assign: 4.1.2 + object.entries: 1.1.3 + dev: true + engines: + node: '>= 6' + peerDependencies: + eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 + eslint-plugin-import: ^2.22.1 + eslint-plugin-jsx-a11y: ^6.4.1 + eslint-plugin-react: ^7.21.5 + eslint-plugin-react-hooks: ^4 || ^3 || ^2.3.0 || ^1.7.0 + resolution: + integrity: sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== + /eslint-config-atomic/1.12.3_eslint@7.22.0: + dependencies: + '@babel/core': 7.13.10 + '@typescript-eslint/eslint-plugin': 4.18.0_ef0f217f6395606fd8bbe7b0291eff7e + '@typescript-eslint/parser': 4.18.0_eslint@7.22.0+typescript@4.2.3 + babel-eslint: 10.1.0_eslint@7.22.0 + coffeescript: 1.12.7 + eslint: 7.22.0 + eslint-config-prettier: 8.1.0_eslint@7.22.0 + eslint-plugin-coffee: 0.1.14_eslint@7.22.0 + eslint-plugin-import: 2.22.1_eslint@7.22.0 + eslint-plugin-json: 2.1.2 + eslint-plugin-node: 11.1.0_eslint@7.22.0 + eslint-plugin-only-warn: 1.0.2 + eslint-plugin-optimize-regex: 1.2.0 + eslint-plugin-react: 7.22.0_eslint@7.22.0 + eslint-plugin-yaml: 0.4.1 + prettier: 2.2.1 + typescript: 4.2.3 + dev: true + peerDependencies: + eslint: '>=7' + resolution: + integrity: sha512-FIGaEd7KEgXFJntlYcdU3cGKuPOxInZ2WH+S5zkoG/BhJNdo01/msdnwPu6LTdu6EQ2GnrslUeV5j4a0Ne/ksw== + /eslint-config-prettier/8.1.0_eslint@7.22.0: + dependencies: + eslint: 7.22.0 + dev: true + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + resolution: + integrity: sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw== + /eslint-import-resolver-node/0.3.4: + dependencies: + debug: 2.6.9 + resolve: 1.20.0 + dev: true + resolution: + integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + /eslint-module-utils/2.6.0: + dependencies: + debug: 2.6.9 + pkg-dir: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + /eslint-plugin-coffee/0.1.14_eslint@7.22.0: + dependencies: + axe-core: 3.5.5 + babel-eslint: 7.2.3 + babylon: 7.0.0-beta.47 + coffeescript: 2.5.1 + doctrine: 2.1.0 + eslint: 7.22.0 + eslint-config-airbnb: 18.2.1_1d033471a3365693861bf07d097fd1b9 + eslint-config-airbnb-base: 14.2.1_23c541aea0503b6154366e35dc4fb8b3 + eslint-plugin-import: 2.22.1_eslint@7.22.0 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.22.0 + eslint-plugin-react: 7.22.0_eslint@7.22.0 + eslint-plugin-react-native: 3.10.0_eslint@7.22.0 + eslint-scope: 3.7.3 + eslint-utils: 1.4.3 + eslint-visitor-keys: 1.3.0 + jsx-ast-utils: 2.4.1 + lodash: 4.17.21 + dev: true + peerDependencies: + eslint: '>=6.0.0' + resolution: + integrity: sha512-JwBminIlHz7XqZ8kbpNHDMG9y/tsHX8mwMZBxZaAlguyXIfYTrnY/nc+6+/X/DXfA//zDCs/lNARDciW3iJCOQ== + /eslint-plugin-es/3.0.1_eslint@7.22.0: + dependencies: + eslint: 7.22.0 + eslint-utils: 2.1.0 + regexpp: 3.1.0 + dev: true + engines: + node: '>=8.10.0' + peerDependencies: + eslint: '>=4.19.1' + resolution: + integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + /eslint-plugin-import/2.22.1_eslint@7.22.0: + dependencies: + array-includes: 3.1.3 + array.prototype.flat: 1.2.4 + contains-path: 0.1.0 + debug: 2.6.9 + doctrine: 1.5.0 + eslint: 7.22.0 + eslint-import-resolver-node: 0.3.4 + eslint-module-utils: 2.6.0 + has: 1.0.3 + minimatch: 3.0.4 + object.values: 1.1.3 + read-pkg-up: 2.0.0 + resolve: 1.20.0 + tsconfig-paths: 3.9.0 + dev: true + engines: + node: '>=4' + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + resolution: + integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + /eslint-plugin-json/2.1.2: + dependencies: + lodash: 4.17.21 + vscode-json-languageservice: 3.11.0 + dev: true + engines: + node: '>=8.10.0' + resolution: + integrity: sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q== + /eslint-plugin-jsx-a11y/6.4.1_eslint@7.22.0: + dependencies: + '@babel/runtime': 7.13.10 + aria-query: 4.2.2 + array-includes: 3.1.3 + ast-types-flow: 0.0.7 + axe-core: 4.1.3 + axobject-query: 2.2.0 + damerau-levenshtein: 1.0.6 + emoji-regex: 9.2.2 + eslint: 7.22.0 + has: 1.0.3 + jsx-ast-utils: 3.2.0 + language-tags: 1.0.5 + dev: true + engines: + node: '>=4.0' + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 + resolution: + integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + /eslint-plugin-node/11.1.0_eslint@7.22.0: + dependencies: + eslint: 7.22.0 + eslint-plugin-es: 3.0.1_eslint@7.22.0 + eslint-utils: 2.1.0 + ignore: 5.1.8 + minimatch: 3.0.4 + resolve: 1.20.0 + semver: 6.3.0 + dev: true + engines: + node: '>=8.10.0' + peerDependencies: + eslint: '>=5.16.0' + resolution: + integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + /eslint-plugin-only-warn/1.0.2: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-DCG8vuUynDnyfkm0POT50JoE9VJfbtKf+COHn3q79+ExW4dg9ZWM/hsMWX1mjZqxMjQledL/9TmGipon/vwWmw== + /eslint-plugin-optimize-regex/1.2.0: + dependencies: + regexp-tree: 0.1.23 + dev: true + engines: + node: '>=8' resolution: - integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== - /eslint-import-resolver-node/0.3.4: - dependencies: - debug: 2.6.9 - resolve: 1.19.0 + integrity: sha512-pzpF7bGsdXVPue/ubLqS0UbBGuBajxh2fO8OmBDoN0SHrxEBKf8WOAxkOI80lBb81yiZs7hj6ZxlflbrV3YrsA== + /eslint-plugin-react-native-globals/0.1.2: dev: true resolution: - integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== - /eslint-module-utils/2.6.0: + integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g== + /eslint-plugin-react-native/3.10.0_eslint@7.22.0: dependencies: - debug: 2.6.9 - pkg-dir: 2.0.0 + '@babel/traverse': 7.13.0 + eslint: 7.22.0 + eslint-plugin-react-native-globals: 0.1.2 dev: true - engines: - node: '>=4' + peerDependencies: + eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 resolution: - integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - /eslint-plugin-import/2.22.1_eslint@7.22.0: + integrity: sha512-4f5+hHYYq5wFhB5eptkPEAR7FfvqbS7AzScUOANfAMZtYw5qgnCxRq45bpfBaQF+iyPMim5Q8pubcpvLv75NAg== + /eslint-plugin-react/7.22.0_eslint@7.22.0: dependencies: - array-includes: 3.1.2 - array.prototype.flat: 1.2.4 - contains-path: 0.1.0 - debug: 2.6.9 - doctrine: 1.5.0 + array-includes: 3.1.3 + array.prototype.flatmap: 1.2.4 + doctrine: 2.1.0 eslint: 7.22.0 - eslint-import-resolver-node: 0.3.4 - eslint-module-utils: 2.6.0 has: 1.0.3 - minimatch: 3.0.4 - object.values: 1.1.2 - read-pkg-up: 2.0.0 - resolve: 1.19.0 - tsconfig-paths: 3.9.0 + jsx-ast-utils: 3.2.0 + object.entries: 1.1.3 + object.fromentries: 2.0.4 + object.values: 1.1.3 + prop-types: 15.7.2 + resolve: 1.20.0 + string.prototype.matchall: 4.0.4 dev: true engines: node: '>=4' peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 resolution: - integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + integrity: sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== + /eslint-plugin-yaml/0.4.1: + dependencies: + js-yaml: 4.0.0 + jshint: 2.12.0 + dev: true + resolution: + integrity: sha512-KS0evlxfJVxuFqXkZINTLa1koZvzSIC9WSrzcNvoW04QjJpBp6P6YuCi0J3YAaEy31poEHcm4o30iiNTnuxCEw== + /eslint-scope/3.7.3: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== /eslint-scope/5.1.1: dependencies: esrecurse: 4.3.0 @@ -1973,6 +2468,14 @@ packages: node: '>=8.0.0' resolution: integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + /eslint-utils/1.4.3: + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== /eslint-utils/2.1.0: dependencies: eslint-visitor-keys: 1.3.0 @@ -2088,6 +2591,12 @@ packages: node: '>=0.10.0' resolution: integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + /exit/0.1.2: + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= /expand-brackets/2.1.4: dependencies: debug: 2.6.9 @@ -2152,7 +2661,7 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.4 '@nodelib/fs.walk': 1.2.6 - glob-parent: 5.1.1 + glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.2 picomatch: 2.2.2 @@ -2169,12 +2678,12 @@ packages: dev: true resolution: integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - /fastq/1.10.1: + /fastq/1.11.0: dependencies: reusify: 1.0.4 dev: true resolution: - integrity: sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== /file-entry-cache/6.0.1: dependencies: flat-cache: 3.0.4 @@ -2278,7 +2787,6 @@ packages: resolution: integrity: sha1-kCBMPi/appQbso0WZF1BgGOpDps= /gensync/1.0.0-beta.2: - dev: false engines: node: '>=6.9.0' resolution: @@ -2287,7 +2795,7 @@ packages: dependencies: function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.1 + has-symbols: 1.0.2 resolution: integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== /get-value/2.0.6: @@ -2312,6 +2820,14 @@ packages: node: '>= 6' resolution: integrity: sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + /glob-parent/5.1.2: + dependencies: + is-glob: 4.0.1 + dev: true + engines: + node: '>= 6' + resolution: + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== /glob/7.1.6: dependencies: fs.realpath: 1.0.0 @@ -2343,6 +2859,12 @@ packages: node: '>=8' resolution: integrity: sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA== + /globals/9.18.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== /globby/11.0.2: dependencies: array-union: 2.1.0 @@ -2365,6 +2887,18 @@ packages: dev: false resolution: integrity: sha1-sysI71Z88YUvgXWe2caLDXE5ajI= + /has-ansi/2.0.0: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + /has-bigints/1.0.1: + dev: true + resolution: + integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== /has-flag/3.0.0: engines: node: '>=4' @@ -2376,11 +2910,11 @@ packages: node: '>=8' resolution: integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - /has-symbols/1.0.1: + /has-symbols/1.0.2: engines: node: '>= 0.4' resolution: - integrity: sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== /has-value/0.3.1: dependencies: get-value: 2.0.6 @@ -2431,6 +2965,16 @@ packages: dev: true resolution: integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + /htmlparser2/3.8.3: + dependencies: + domelementtype: 1.3.1 + domhandler: 2.3.0 + domutils: 1.5.1 + entities: 1.0.0 + readable-stream: 1.1.14 + dev: true + resolution: + integrity: sha1-mWwosZFRaovoZQGn15dX5ccMEGg= /ignore/4.0.6: dev: true engines: @@ -2473,6 +3017,22 @@ packages: /inherits/2.0.4: resolution: integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + /internal-slot/1.0.3: + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + /invariant/2.2.4: + dependencies: + loose-envify: 1.4.0 + dev: true + resolution: + integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== /is-accessor-descriptor/0.1.6: dependencies: kind-of: 3.2.2 @@ -2495,6 +3055,10 @@ packages: dev: true resolution: integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + /is-bigint/1.0.1: + dev: true + resolution: + integrity: sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== /is-binary-path/1.0.1: dependencies: binary-extensions: 1.13.1 @@ -2513,6 +3077,14 @@ packages: optional: true resolution: integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + /is-boolean-object/1.1.0: + dependencies: + call-bind: 1.0.2 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== /is-buffer/1.1.6: dev: false optional: true @@ -2624,6 +3196,12 @@ packages: node: '>= 0.4' resolution: integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + /is-number-object/1.0.4: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== /is-number/3.0.0: dependencies: kind-of: 3.2.2 @@ -2662,7 +3240,7 @@ packages: /is-regex/1.1.2: dependencies: call-bind: 1.0.2 - has-symbols: 1.0.1 + has-symbols: 1.0.2 dev: true engines: node: '>= 0.4' @@ -2682,7 +3260,7 @@ packages: integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== /is-symbol/1.0.3: dependencies: - has-symbols: 1.0.1 + has-symbols: 1.0.2 dev: true engines: node: '>= 0.4' @@ -2695,6 +3273,10 @@ packages: optional: true resolution: integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + /isarray/0.0.1: + dev: true + resolution: + integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= /isarray/1.0.0: resolution: integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -2726,6 +3308,10 @@ packages: dev: false resolution: integrity: sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== + /js-tokens/3.0.2: + dev: true + resolution: + integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls= /js-tokens/4.0.0: resolution: integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== @@ -2737,6 +3323,13 @@ packages: hasBin: true resolution: integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + /js-yaml/4.0.0: + dependencies: + argparse: 2.0.1 + dev: true + hasBin: true + resolution: + integrity: sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== /jsesc/0.5.0: dev: false hasBin: true @@ -2748,6 +3341,20 @@ packages: hasBin: true resolution: integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + /jshint/2.12.0: + dependencies: + cli: 1.0.1 + console-browserify: 1.1.0 + exit: 0.1.2 + htmlparser2: 3.8.3 + lodash: 4.17.21 + minimatch: 3.0.4 + shelljs: 0.3.0 + strip-json-comments: 1.0.4 + dev: true + hasBin: true + resolution: + integrity: sha512-TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA== /json-schema-traverse/0.4.1: dev: true resolution: @@ -2770,12 +3377,15 @@ packages: /json5/2.2.0: dependencies: minimist: 1.2.5 - dev: false engines: node: '>=6' hasBin: true resolution: integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + /jsonc-parser/3.0.0: + dev: true + resolution: + integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== /jsonfile/6.1.0: dependencies: universalify: 2.0.0 @@ -2784,6 +3394,24 @@ packages: graceful-fs: 4.2.5 resolution: integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + /jsx-ast-utils/2.4.1: + dependencies: + array-includes: 3.1.3 + object.assign: 4.1.2 + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== + /jsx-ast-utils/3.2.0: + dependencies: + array-includes: 3.1.3 + object.assign: 4.1.2 + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== /kind-of/3.2.2: dependencies: is-buffer: 1.1.6 @@ -2816,6 +3444,16 @@ packages: optional: true resolution: integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + /language-subtag-registry/0.3.21: + dev: true + resolution: + integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + /language-tags/1.0.5: + dependencies: + language-subtag-registry: 0.3.21 + dev: true + resolution: + integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= /levn/0.4.1: dependencies: prelude-ls: 1.2.1 @@ -2856,6 +3494,13 @@ packages: dev: true resolution: integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + /loose-envify/1.4.0: + dependencies: + js-tokens: 4.0.0 + dev: true + hasBin: true + resolution: + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== /lru-cache/6.0.0: dependencies: yallist: 4.0.0 @@ -2981,13 +3626,12 @@ packages: resolution: integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw= /node-releases/1.1.70: - dev: false resolution: integrity: sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== /normalize-package-data/2.5.0: dependencies: hosted-git-info: 2.8.8 - resolve: 1.19.0 + resolve: 1.20.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -3009,6 +3653,12 @@ packages: optional: true resolution: integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + /object-assign/4.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= /object-copy/0.1.0: dependencies: copy-descriptor: 0.1.1 @@ -3042,7 +3692,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - has-symbols: 1.0.1 + has-symbols: 1.0.2 object-keys: 1.1.1 engines: node: '>= 0.4' @@ -3052,13 +3702,24 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.0-next.2 + es-abstract: 1.18.0 has: 1.0.3 dev: true engines: node: '>= 0.4' resolution: integrity: sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + /object.fromentries/2.0.4: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0 + has: 1.0.3 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== /object.pick/1.3.0: dependencies: isobject: 3.0.1 @@ -3068,17 +3729,17 @@ packages: optional: true resolution: integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - /object.values/1.1.2: + /object.values/1.1.3: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.0-next.2 + es-abstract: 1.18.0 has: 1.0.3 dev: true engines: node: '>= 0.4' resolution: - integrity: sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + integrity: sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== /once/1.4.0: dependencies: wrappy: 1.0.2 @@ -3227,6 +3888,13 @@ packages: node: '>= 0.8.0' resolution: integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + /prettier/2.2.1: + dev: true + engines: + node: '>=10.13.0' + hasBin: true + resolution: + integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== /process-nextick-args/2.0.1: dev: false optional: true @@ -3238,6 +3906,14 @@ packages: node: '>=0.4.0' resolution: integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + /prop-types/15.7.2: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + resolution: + integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== /property-accessors/1.1.3: dependencies: es6-weak-map: 0.1.4 @@ -3251,6 +3927,14 @@ packages: node: '>=6' resolution: integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + /queue-microtask/1.2.2: + dev: true + resolution: + integrity: sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== + /react-is/16.13.1: + dev: true + resolution: + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== /read-pkg-up/2.0.0: dependencies: find-up: 2.1.0 @@ -3270,6 +3954,15 @@ packages: node: '>=4' resolution: integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + /readable-stream/1.1.14: + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + resolution: + integrity: sha1-fPTFTvZI44EwhMY23SB54WbAgdk= /readable-stream/2.3.7: dependencies: core-util-is: 1.0.2 @@ -3315,8 +4008,11 @@ packages: dev: false resolution: integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + /regenerator-runtime/0.11.1: + dev: true + resolution: + integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== /regenerator-runtime/0.13.7: - dev: false resolution: integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== /regenerator-transform/0.14.5: @@ -3335,6 +4031,20 @@ packages: optional: true resolution: integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + /regexp-tree/0.1.23: + dev: true + hasBin: true + resolution: + integrity: sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw== + /regexp.prototype.flags/1.3.1: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== /regexpp/3.1.0: dev: true engines: @@ -3406,8 +4116,16 @@ packages: dependencies: is-core-module: 2.2.0 path-parse: 1.0.6 + dev: false resolution: integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + /resolve/1.20.0: + dependencies: + is-core-module: 2.2.0 + path-parse: 1.0.6 + dev: true + resolution: + integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== /ret/0.1.15: dev: false engines: @@ -3429,12 +4147,13 @@ packages: hasBin: true resolution: integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - /run-parallel/1.1.10: + /run-parallel/1.2.0: + dependencies: + queue-microtask: 1.2.2 dev: true resolution: - integrity: sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== /safe-buffer/5.1.2: - dev: false resolution: integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== /safe-regex/1.1.0: @@ -3449,7 +4168,6 @@ packages: resolution: integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== /semver/6.3.0: - dev: false hasBin: true resolution: integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -3493,6 +4211,21 @@ packages: node: '>=8' resolution: integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + /shelljs/0.3.0: + dev: true + engines: + node: '>=0.8.0' + hasBin: true + resolution: + integrity: sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E= + /side-channel/1.0.4: + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: 1.9.0 + dev: true + resolution: + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== /slash/2.0.0: dev: false engines: @@ -3641,20 +4374,36 @@ packages: node: '>=8' resolution: integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - /string.prototype.trimend/1.0.3: + /string.prototype.matchall/4.0.4: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0 + has-symbols: 1.0.2 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.3.1 + side-channel: 1.0.4 + dev: true + resolution: + integrity: sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + /string.prototype.trimend/1.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 dev: true resolution: - integrity: sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== - /string.prototype.trimstart/1.0.3: + integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + /string.prototype.trimstart/1.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 dev: true resolution: - integrity: sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + /string_decoder/0.10.31: + dev: true + resolution: + integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= /string_decoder/1.1.1: dependencies: safe-buffer: 5.1.2 @@ -3662,6 +4411,14 @@ packages: optional: true resolution: integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + /strip-ansi/3.0.1: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= /strip-ansi/6.0.0: dependencies: ansi-regex: 5.0.0 @@ -3675,12 +4432,25 @@ packages: node: '>=4' resolution: integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + /strip-json-comments/1.0.4: + dev: true + engines: + node: '>=0.8.0' + hasBin: true + resolution: + integrity: sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E= /strip-json-comments/3.1.1: dev: true engines: node: '>=8' resolution: integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + /supports-color/2.0.0: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= /supports-color/5.5.0: dependencies: has-flag: 3.0.0 @@ -3729,6 +4499,12 @@ packages: dev: true resolution: integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + /to-fast-properties/1.0.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= /to-fast-properties/2.0.0: engines: node: '>=4' @@ -3781,6 +4557,21 @@ packages: dev: true resolution: integrity: sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + /tslib/1.14.1: + dev: true + resolution: + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + /tsutils/3.21.0_typescript@4.2.3: + dependencies: + tslib: 1.14.1 + typescript: 4.2.3 + dev: true + engines: + node: '>= 6' + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + resolution: + integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== /type-check/0.4.0: dependencies: prelude-ls: 1.2.1 @@ -3815,6 +4606,22 @@ packages: dev: false resolution: integrity: sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + /typescript/4.2.3: + dev: true + engines: + node: '>=4.2.0' + hasBin: true + resolution: + integrity: sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== + /unbox-primitive/1.0.0: + dependencies: + function-bind: 1.1.1 + has-bigints: 1.0.1 + has-symbols: 1.0.2 + which-boxed-primitive: 1.0.2 + dev: true + resolution: + integrity: sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== /underscore-plus/1.7.0: dependencies: underscore: 1.12.0 @@ -3939,6 +4746,42 @@ packages: dev: true resolution: integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + /vscode-json-languageservice/3.11.0: + dependencies: + jsonc-parser: 3.0.0 + vscode-languageserver-textdocument: 1.0.1 + vscode-languageserver-types: 3.16.0-next.2 + vscode-nls: 5.0.0 + vscode-uri: 2.1.2 + dev: true + resolution: + integrity: sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA== + /vscode-languageserver-textdocument/1.0.1: + dev: true + resolution: + integrity: sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA== + /vscode-languageserver-types/3.16.0-next.2: + dev: true + resolution: + integrity: sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q== + /vscode-nls/5.0.0: + dev: true + resolution: + integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA== + /vscode-uri/2.1.2: + dev: true + resolution: + integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== + /which-boxed-primitive/1.0.2: + dependencies: + is-bigint: 1.0.1 + is-boolean-object: 1.1.0 + is-number-object: 1.0.4 + is-string: 1.0.5 + is-symbol: 1.0.3 + dev: true + resolution: + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== /which/2.0.2: dependencies: isexe: 2.0.0 @@ -3969,11 +4812,9 @@ specifiers: ansi-to-html: ^0.6.14 atom-message-panel: 1.3.1 atom-space-pen-views-plus: ^3.0.4 - babel-eslint: ^10.1.0 coffeescript: ^2 eslint: ^7.22.0 - eslint-config-airbnb-base: ^14.2.1 - eslint-plugin-import: ^2.22.1 + eslint-config-atomic: ^1.12.3 strip-ansi: ^6.0.0 tempy: ^1.0.1 underscore: ^1.12.1 From e5b807d91e47528f8d213d9db581123c3db7746a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 00:37:51 -0500 Subject: [PATCH 301/410] fix: eslint fix --- lib/code-context-builder.js | 8 ++++---- lib/code-context.js | 4 ++-- lib/command-context.js | 2 +- lib/grammar-utils.js | 2 +- lib/grammar-utils/lisp.js | 4 ++-- lib/grammar-utils/nim.js | 2 +- lib/grammar-utils/php.js | 2 +- lib/runtime.js | 6 +++--- lib/script-input-view.js | 2 +- lib/script-options-view.js | 8 ++++---- lib/script-options.js | 2 +- lib/script-profile-run-view.js | 2 +- lib/view-runtime-observer.js | 2 +- spec/grammars-spec.js | 2 +- 14 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index c0bb8260..6f484cc1 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -25,7 +25,7 @@ export default class CodeContextBuilder { // // returns a {CodeContext} object buildCodeContext(editor, argType = 'Selection Based') { - if (!editor) return null; + if (!editor) {return null;} const codeContext = this.initCodeContext(editor); @@ -35,7 +35,7 @@ export default class CodeContextBuilder { editor.save(); } else if (codeContext.selection.isEmpty() && codeContext.filepath) { codeContext.argType = 'File Based'; - if (editor && editor.isModified()) editor.save(); + if (editor && editor.isModified()) {editor.save();} } // Selection and Line Number Based runs both benefit from knowing the current line @@ -78,11 +78,11 @@ export default class CodeContextBuilder { } getShebang(editor) { - if (process.platform === 'win32') return null; + if (process.platform === 'win32') {return null;} const text = editor.getText(); const lines = text.split('\n'); const firstLine = lines[0]; - if (!firstLine.match(/^#!/)) return null; + if (!firstLine.match(/^#!/)) {return null;} return firstLine.replace(/^#!\s*/, ''); } diff --git a/lib/code-context.js b/lib/code-context.js index a9ce134d..dd4debe3 100644 --- a/lib/code-context.js +++ b/lib/code-context.js @@ -40,7 +40,7 @@ export default class CodeContext { // Returns the code selection {String} getCode(prependNewlines = true) { const code = this.textSource ? this.textSource.getText() : null; - if (!prependNewlines || !this.lineNumber) return code; + if (!prependNewlines || !this.lineNumber) {return code;} const newlineCount = Number(this.lineNumber); const newlines = Array(newlineCount).join('\n'); @@ -52,7 +52,7 @@ export default class CodeContext { // Returns the {String} name of the command or {undefined} if not applicable. shebangCommand() { const sections = this.shebangSections(); - if (!sections) return null; + if (!sections) {return null;} return sections[0]; } diff --git a/lib/command-context.js b/lib/command-context.js index 15622865..2ee51e32 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -53,7 +53,7 @@ export default class CommandContext { } getRepresentation() { - if (!this.command || !this.args.length) return ''; + if (!this.command || !this.args.length) {return '';} // command arguments const commandArgs = this.options.cmdArgs ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 8d781824..f27d0287 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -56,7 +56,7 @@ export default { // Public: Format args for cmd or bash, depending on the current OS formatArgs(command) { if (os.platform() === 'win32') { - return [`/c ${command.replace(/['"]/g, '')}`]; + return [`/c ${command.replace(/["']/g, '')}`]; } return ['-c', command]; }, diff --git a/lib/grammar-utils/lisp.js b/lib/grammar-utils/lisp.js index 2abddebf..582c9bf4 100644 --- a/lib/grammar-utils/lisp.js +++ b/lib/grammar-utils/lisp.js @@ -10,7 +10,7 @@ export default { // Returns an {Array} of executable statements. splitStatements(code) { const iterator = (statements, currentCharacter) => { - if (!this.parenDepth) this.parenDepth = 0; + if (!this.parenDepth) {this.parenDepth = 0;} if (currentCharacter === '(') { this.parenDepth += 1; this.inStatement = true; @@ -18,7 +18,7 @@ export default { this.parenDepth -= 1; } - if (!this.statement) this.statement = ''; + if (!this.statement) {this.statement = '';} this.statement += currentCharacter; if (this.parenDepth === 0 && this.inStatement) { diff --git a/lib/grammar-utils/nim.js b/lib/grammar-utils/nim.js index b4bd00ba..4d4da5fc 100644 --- a/lib/grammar-utils/nim.js +++ b/lib/grammar-utils/nim.js @@ -51,7 +51,7 @@ export default { || path.extname(name) === '.nimcgf' || path.extname(name) === '.cfg') { const tfile = name.slice(0, -1); - if (fs.existsSync(tfile)) return path.basename(tfile); + if (fs.existsSync(tfile)) {return path.basename(tfile);} } } } diff --git a/lib/grammar-utils/php.js b/lib/grammar-utils/php.js index 7fdd54a2..23a74cea 100644 --- a/lib/grammar-utils/php.js +++ b/lib/grammar-utils/php.js @@ -8,7 +8,7 @@ export default { // // Returns the {String} filepath of the new file createTempFileWithCode(code) { - if (!/^[\s]*<\?php/.test(code)) { code = ` { - if (e.keyCode !== 9 && e.keyCode !== 13) return true; + if (e.keyCode !== 9 && e.keyCode !== 13) {return true;} switch (e.keyCode) { case 9: { @@ -82,7 +82,7 @@ export default class ScriptOptionsView extends View { static splitArgs(argText) { const text = argText.trim(); - const argSubstringRegex = /([^'"\s]+)|((["'])(.*?)\3)/g; + const argSubstringRegex = /([^\s"']+)|((["'])(.*?)\3)/g; const args = []; let lastMatchEndPosition = -1; let match = argSubstringRegex.exec(text); @@ -137,7 +137,7 @@ export default class ScriptOptionsView extends View { const inputView = new ScriptInputView({ caption: 'Enter profile name:' }); inputView.onCancel(() => this.show()); inputView.onConfirm((profileName) => { - if (!profileName) return; + if (!profileName) {return;} _.forEach(this.find('atom-text-editor'), (editor) => { editor.getModel().setText(''); }); @@ -157,7 +157,7 @@ export default class ScriptOptionsView extends View { } destroy() { - if (this.subscriptions) this.subscriptions.dispose(); + if (this.subscriptions) {this.subscriptions.dispose();} } show() { diff --git a/lib/script-options.js b/lib/script-options.js index ac6ef82d..6d2d9329 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -39,7 +39,7 @@ export default class ScriptOptions { // // Returns an {Object} representation of the user specified environment. getEnv() { - if (!this.env) return {}; + if (!this.env) {return {};} const mapping = {}; diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 997ca97a..e5008900 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -165,7 +165,7 @@ export default class ScriptProfileRunView extends SelectListView { close() {} destroy() { - if (this.subscriptions) this.subscriptions.dispose(); + if (this.subscriptions) {this.subscriptions.dispose();} } run() { diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index dd133170..23149a6b 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -27,6 +27,6 @@ export default class ViewRuntimeObserver { } destroy() { - if (this.subscriptions) this.subscriptions.dispose(); + if (this.subscriptions) {this.subscriptions.dispose();} } } diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 3198fa1c..c8d72f55 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -68,7 +68,7 @@ describe('grammarMap', () => { })); describe('C++', () => it('returns the appropriate File Based runner on Mac OS X', () => { - if (process.platform === 'win32') return; + if (process.platform === 'win32') {return;} OperatingSystem.platform = () => 'darwin'; this.reloadGrammar(); From 48ec7aed46feba0e2bae84806ee8d44450b1cead Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 00:40:53 -0500 Subject: [PATCH 302/410] chore: disable no-invalid-this in the spec --- spec/code-context-builder-spec.js | 2 ++ spec/code-context-spec.js | 2 ++ spec/grammars-spec.js | 2 ++ spec/runner-spec.js | 2 ++ spec/script-options-spec.js | 2 +- 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/spec/code-context-builder-spec.js b/spec/code-context-builder-spec.js index 3cfab68d..46d83f42 100644 --- a/spec/code-context-builder-spec.js +++ b/spec/code-context-builder-spec.js @@ -1,5 +1,7 @@ 'use babel'; +/* eslint-disable no-invalid-this */ // TODO + import CodeContextBuilder from '../lib/code-context-builder'; describe('CodeContextBuilder', () => { diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index 05a160a9..6287f6b5 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -1,5 +1,7 @@ 'use babel'; +/* eslint-disable no-invalid-this */ // TODO + import tempy from 'tempy'; import path from 'path'; diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index c8d72f55..81ecaf02 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -1,5 +1,7 @@ 'use babel'; +/* eslint-disable no-invalid-this */ // TODO + import tempy from 'tempy'; import path from 'path'; diff --git a/spec/runner-spec.js b/spec/runner-spec.js index ad08c6b0..f4c96431 100644 --- a/spec/runner-spec.js +++ b/spec/runner-spec.js @@ -1,5 +1,7 @@ 'use babel'; +/* eslint-disable no-invalid-this */ // TODO + import Runner from '../lib/runner'; import ScriptOptions from '../lib/script-options'; diff --git a/spec/script-options-spec.js b/spec/script-options-spec.js index a4dfdbca..d139e33e 100644 --- a/spec/script-options-spec.js +++ b/spec/script-options-spec.js @@ -1,6 +1,6 @@ 'use babel'; +/* eslint-disable no-invalid-this */ // TODO -/* eslint-disable no-underscore-dangle */ import ScriptOptions from '../lib/script-options'; describe('ScriptOptions', () => { From 98804bb1f0544ccc586d0ca705c00f0abe4a4bec Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:00:40 -0500 Subject: [PATCH 303/410] chore: update eslint-config-atomic --- package.json | 2 +- pnpm-lock.yaml | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 0988ad3e..99ff5d0d 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "eslint": "^7.22.0", - "eslint-config-atomic": "^1.12.3", + "eslint-config-atomic": "^1.12.4", "tempy": "^1.0.1" }, "providedServices": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e0c7392..1e2bd009 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,7 +11,7 @@ dependencies: uuid: 8.3.2 devDependencies: eslint: 7.22.0 - eslint-config-atomic: 1.12.3_eslint@7.22.0 + eslint-config-atomic: 1.12.4_eslint@7.22.0 tempy: 1.0.1 lockfileVersion: 5.2 optionalDependencies: @@ -2240,7 +2240,7 @@ packages: eslint-plugin-react-hooks: ^4 || ^3 || ^2.3.0 || ^1.7.0 resolution: integrity: sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== - /eslint-config-atomic/1.12.3_eslint@7.22.0: + /eslint-config-atomic/1.12.4_eslint@7.22.0: dependencies: '@babel/core': 7.13.10 '@typescript-eslint/eslint-plugin': 4.18.0_ef0f217f6395606fd8bbe7b0291eff7e @@ -2263,7 +2263,7 @@ packages: peerDependencies: eslint: '>=7' resolution: - integrity: sha512-FIGaEd7KEgXFJntlYcdU3cGKuPOxInZ2WH+S5zkoG/BhJNdo01/msdnwPu6LTdu6EQ2GnrslUeV5j4a0Ne/ksw== + integrity: sha512-hsdvWQAhXvYY5B94RTDCtT1YMmOdZ4JSVuE45hANcTKYiIsv9LAyW0I05Cujrg60W0TXrfn0gmaTefBWXTTx2w== /eslint-config-prettier/8.1.0_eslint@7.22.0: dependencies: eslint: 7.22.0 @@ -2881,6 +2881,10 @@ packages: /graceful-fs/4.2.5: resolution: integrity: sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw== + /graceful-fs/4.2.6: + dev: true + resolution: + integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== /grim/1.5.0: dependencies: emissary: 1.3.3 @@ -3465,7 +3469,7 @@ packages: integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== /load-json-file/2.0.0: dependencies: - graceful-fs: 4.2.5 + graceful-fs: 4.2.6 parse-json: 2.2.0 pify: 2.3.0 strip-bom: 3.0.0 @@ -4814,7 +4818,7 @@ specifiers: atom-space-pen-views-plus: ^3.0.4 coffeescript: ^2 eslint: ^7.22.0 - eslint-config-atomic: ^1.12.3 + eslint-config-atomic: ^1.12.4 strip-ansi: ^6.0.0 tempy: ^1.0.1 underscore: ^1.12.1 From 542ae9c2a82c4b1699d407789babd79ebb1667bd Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:07:10 -0500 Subject: [PATCH 304/410] refactor: make getShebang and getLang free functions --- lib/code-context-builder.js | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index 6f484cc1..2396c079 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -66,9 +66,9 @@ export default class CodeContextBuilder { const codeContext = new CodeContext(filename, filepath, textSource); codeContext.selection = selection; - codeContext.shebang = this.getShebang(editor); + codeContext.shebang = getShebang(editor); - const lang = this.getLang(editor); + const lang = getLang(editor); if (this.validateLang(lang)) { codeContext.lang = lang; @@ -77,18 +77,14 @@ export default class CodeContextBuilder { return codeContext; } - getShebang(editor) { - if (process.platform === 'win32') {return null;} - const text = editor.getText(); - const lines = text.split('\n'); - const firstLine = lines[0]; - if (!firstLine.match(/^#!/)) {return null;} - - return firstLine.replace(/^#!\s*/, ''); + /** @deprecated use {getShebang} function */ // eslint-disable-next-line class-methods-use-this + getShebang(arg) { + return getShebang(arg); } - getLang(editor) { - return editor.getGrammar().name; + /** @deprecated use {getLang} function */ // eslint-disable-next-line class-methods-use-this + getLang(arg) { + return getLang(arg); } validateLang(lang) { @@ -117,3 +113,17 @@ export default class CodeContextBuilder { return this.emitter.on('did-not-support-language', callback); } } + +export function getShebang(editor) { + if (process.platform === 'win32') {return null;} + const text = editor.getText(); + const lines = text.split('\n'); + const firstLine = lines[0]; + if (!firstLine.match(/^#!/)) {return null;} + + return firstLine.replace(/^#!\s*/, ''); +} + +export function getLang(editor) { + return editor.getGrammar().name; +} From ab138e4238b299a2f0975479a4096292740741fb Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:09:03 -0500 Subject: [PATCH 305/410] refactor: make quoteArguments free function --- lib/command-context.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/command-context.js b/lib/command-context.js index 2ee51e32..abb6169f 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -48,19 +48,20 @@ export default class CommandContext { return commandContext; } + /** @deprecated use {quoteArguments} function */ // eslint-disable-next-line class-methods-use-this quoteArguments(args) { - return args.map((arg) => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`)); + return quoteArguments(args) } getRepresentation() { if (!this.command || !this.args.length) {return '';} // command arguments - const commandArgs = this.options.cmdArgs ? this.quoteArguments(this.options.cmdArgs).join(' ') : ''; + const commandArgs = this.options.cmdArgs ? quoteArguments(this.options.cmdArgs).join(' ') : ''; // script arguments - const args = this.args.length ? this.quoteArguments(this.args).join(' ') : ''; - const scriptArgs = this.options.scriptArgs ? this.quoteArguments(this.options.scriptArgs).join(' ') : ''; + const args = this.args.length ? quoteArguments(this.args).join(' ') : ''; + const scriptArgs = this.options.scriptArgs ? quoteArguments(this.options.scriptArgs).join(' ') : ''; return this.command.trim() + (commandArgs ? ` ${commandArgs}` : '') @@ -68,3 +69,7 @@ export default class CommandContext { + (scriptArgs ? ` ${scriptArgs}` : ''); } } + +export function quoteArguments(args) { + return args.map((arg) => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`)); +} From fb6fcfef9ab2bf9b2ff25215eb7c21552a28dce4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:17:38 -0500 Subject: [PATCH 306/410] chore: fix anonymous-default-export --- lib/grammar-utils.js | 3 ++- lib/grammar-utils/R.js | 3 ++- lib/grammar-utils/d.js | 3 ++- lib/grammar-utils/java.js | 3 ++- lib/grammar-utils/lisp.js | 3 ++- lib/grammar-utils/matlab.js | 3 ++- lib/grammar-utils/nim.js | 3 ++- lib/grammar-utils/operating-system.js | 3 ++- lib/grammar-utils/perl.js | 3 ++- lib/grammar-utils/php.js | 3 ++- lib/grammars.js | 3 ++- 11 files changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index f27d0287..b89e5516 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -7,7 +7,7 @@ import path from 'path'; import { v1 as uuidv1 } from 'uuid'; // Public: GrammarUtils - utilities for determining how to run code -export default { +const GrammarUtils = { tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), // Public: Create a temporary file with the provided code @@ -107,3 +107,4 @@ export default { // Returns an {Object} which assists in creating temp files containing D code D: require('./grammar-utils/d'), }; +export default GrammarUtils; diff --git a/lib/grammar-utils/R.js b/lib/grammar-utils/R.js index f7491ca0..d47d5075 100644 --- a/lib/grammar-utils/R.js +++ b/lib/grammar-utils/R.js @@ -1,7 +1,7 @@ 'use babel'; // Public: GrammarUtils.R - a module which assist the creation of R temporary files -export default { +const GrammarUtilsR = { // Public: Create a temporary file with the provided R code // // * `code` A {String} containing some R code @@ -11,3 +11,4 @@ export default { return module.parent.exports.createTempFileWithCode(code); }, }; +export default GrammarUtilsR; diff --git a/lib/grammar-utils/d.js b/lib/grammar-utils/d.js index b8316e23..7e54857a 100644 --- a/lib/grammar-utils/d.js +++ b/lib/grammar-utils/d.js @@ -7,7 +7,7 @@ import path from 'path'; import { v1 as uuidv1 } from 'uuid'; // Public: GrammarUtils.D - a module which assist the creation of D temporary files -export default { +const GrammarUtilsD = { tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), // Public: Create a temporary file with the provided D code @@ -31,3 +31,4 @@ export default { } }, }; +export default GrammarUtilsD; diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index b03b5823..bbebfb74 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -4,7 +4,7 @@ import os from 'os'; import path from 'path'; -export default { +const GrammarUtilsJava = { // Public: Get atom temp file directory // // Returns {String} containing atom temp file directory @@ -47,3 +47,4 @@ export default { return `${filenameRemoved}.`; }, }; +export default GrammarUtilsJava; diff --git a/lib/grammar-utils/lisp.js b/lib/grammar-utils/lisp.js index 582c9bf4..209a02ad 100644 --- a/lib/grammar-utils/lisp.js +++ b/lib/grammar-utils/lisp.js @@ -4,7 +4,7 @@ import _ from 'underscore'; // Public: GrammarUtils.Lisp - a module which exposes the ability to evaluate // code -export default { +const GrammarUtilsLisp = { // Public: Split a string of code into an array of executable statements // // Returns an {Array} of executable statements. @@ -35,3 +35,4 @@ export default { return statements; }, }; +export default GrammarUtilsLisp; diff --git a/lib/grammar-utils/matlab.js b/lib/grammar-utils/matlab.js index b969f5e8..fc809c5a 100644 --- a/lib/grammar-utils/matlab.js +++ b/lib/grammar-utils/matlab.js @@ -7,7 +7,7 @@ import path from 'path'; import { v1 as uuidv1 } from 'uuid'; // Public: GrammarUtils.MATLAB - a module which assist the creation of MATLAB temporary files -export default { +const GrammarUtilsMatlab = { tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), // Public: Create a temporary file with the provided MATLAB code @@ -31,3 +31,4 @@ export default { } }, }; +export default GrammarUtilsMatlab; diff --git a/lib/grammar-utils/nim.js b/lib/grammar-utils/nim.js index 4d4da5fc..d812c06b 100644 --- a/lib/grammar-utils/nim.js +++ b/lib/grammar-utils/nim.js @@ -4,7 +4,7 @@ import fs from 'fs'; import path from 'path'; // Public: GrammarUtils.Nim - a module which selects the right file to run for Nim projects -export default { +const GrammarUtilsNim = { // Public: Find the right file to run // // * `file` A {String} containing the current editor file @@ -60,3 +60,4 @@ export default { return path.basename(editorfile); }, }; +export default GrammarUtilsNim; diff --git a/lib/grammar-utils/operating-system.js b/lib/grammar-utils/operating-system.js index 5d2f0c2b..3d21b911 100644 --- a/lib/grammar-utils/operating-system.js +++ b/lib/grammar-utils/operating-system.js @@ -4,7 +4,7 @@ import os from 'os'; // Public: GrammarUtils.OperatingSystem - a module which exposes different // platform related helper functions. -export default { +const GrammarUtilsOperatingSystem = { isDarwin() { return this.platform() === 'darwin'; }, @@ -29,3 +29,4 @@ export default { return os.release(); }, }; +export default GrammarUtilsOperatingSystem; diff --git a/lib/grammar-utils/perl.js b/lib/grammar-utils/perl.js index dc9bca5b..40f6756b 100644 --- a/lib/grammar-utils/perl.js +++ b/lib/grammar-utils/perl.js @@ -1,7 +1,7 @@ 'use babel'; // Public: GrammarUtils.Perl - a module which assist the creation of Perl temporary files -export default { +const GrammarUtilsPerl = { // Public: Create a temporary file with the provided Perl code // // * `code` A {String} containing some Perl code @@ -11,3 +11,4 @@ export default { return module.parent.exports.createTempFileWithCode(code); }, }; +export default GrammarUtilsPerl; diff --git a/lib/grammar-utils/php.js b/lib/grammar-utils/php.js index 23a74cea..8484eb1d 100644 --- a/lib/grammar-utils/php.js +++ b/lib/grammar-utils/php.js @@ -1,7 +1,7 @@ 'use babel'; // Public: GrammarUtils.PHP - a module which assist the creation of PHP temporary files -export default { +const GrammarUtilsPhp = { // Public: Create a temporary file with the provided PHP code // // * `code` A {String} containing some PHP code without Date: Sun, 21 Mar 2021 01:22:26 -0500 Subject: [PATCH 307/410] fix: export entry functions directly --- lib/script.js | 396 +++++++++++++++++++++++++------------------------- 1 file changed, 198 insertions(+), 198 deletions(-) diff --git a/lib/script.js b/lib/script.js index ad6ef3ab..09c2c828 100644 --- a/lib/script.js +++ b/lib/script.js @@ -12,207 +12,207 @@ import ScriptProfileRunView from './script-profile-run-view'; import ScriptView from './script-view'; import ViewRuntimeObserver from './view-runtime-observer'; -export default { - config: { - enableExecTime: { - title: 'Output the time it took to execute the script', - type: 'boolean', - default: true, - }, - escapeConsoleOutput: { - title: 'HTML escape console output', - type: 'boolean', - default: true, - }, - ignoreSelection: { - title: 'Ignore selection (file-based runs only)', - type: 'boolean', - default: false, - }, - scrollWithOutput: { - title: 'Scroll with output', - type: 'boolean', - default: true, - }, - stopOnRerun: { - title: 'Stop running process on rerun', - type: 'boolean', - default: false, - }, - cwdBehavior: { - title: 'Default Current Working Directory (CWD) Behavior', - description: 'If no Run Options are set, this setting decides how to determine the CWD', - type: 'string', - default: 'First project directory', - enum: [ - 'First project directory', - 'Project directory of the script', - 'Directory of the script', - ], - }, +export const config = { + enableExecTime: { + title: 'Output the time it took to execute the script', + type: 'boolean', + default: true, }, - // For some reason, the text of these options does not show in package settings view - // default: 'firstProj' - // enum: [ - // {value: 'firstProj', description: 'First project directory (if there is one)'} - // {value: 'scriptProj', description: 'Project directory of the script (if there is one)'} - // {value: 'scriptDir', description: 'Directory of the script'} - // ] - scriptView: null, - scriptOptionsView: null, - scriptProfileRunView: null, - scriptOptions: null, - scriptProfiles: [], - - activate(state) { - this.scriptView = new ScriptView(state.scriptViewState); - this.scriptOptions = new ScriptOptions(); - this.scriptOptionsView = new ScriptOptionsView(this.scriptOptions); - - // profiles loading - this.scriptProfiles = []; - if (state.profiles) { - for (const profile of state.profiles) { - const so = ScriptOptions.createFromOptions(profile.name, profile); - this.scriptProfiles.push(so); - } - } - - this.scriptProfileRunView = new ScriptProfileRunView(this.scriptProfiles); - - const codeContextBuilder = new CodeContextBuilder(); - const runner = new Runner(this.scriptOptions); - - const observer = new ViewRuntimeObserver(this.scriptView); - - this.runtime = new Runtime(runner, codeContextBuilder, [observer]); - - this.subscriptions = new CompositeDisposable(); - this.subscriptions.add(atom.commands.add('atom-workspace', { - 'core:cancel': () => this.closeScriptViewAndStopRunner(), - 'core:close': () => this.closeScriptViewAndStopRunner(), - 'script:close-view': () => this.closeScriptViewAndStopRunner(), - 'script:copy-run-results': () => this.scriptView.copyResults(), - 'script:kill-process': () => this.runtime.stop(), - 'script:run-by-line-number': () => this.runtime.execute('Line Number Based'), - 'script:run': () => this.runtime.execute('Selection Based'), - })); - - // profile created - this.scriptOptionsView.onProfileSave((profileData) => { - // create and fill out profile - const profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); - - const codeContext = this.runtime.codeContextBuilder.buildCodeContext( - atom.workspace.getActiveTextEditor(), 'Selection Based', - ); - profile.lang = codeContext.lang; - - // formatting description - const opts = profile.toObject(); - let desc = `Language: ${codeContext.lang}`; - if (opts.cmd) { desc += `, Command: ${opts.cmd}`; } - if (opts.cmdArgs && opts.cmd) { desc += ` ${opts.cmdArgs.join(' ')}`; } - - profile.description = desc; - this.scriptProfiles.push(profile); - - this.scriptOptionsView.hide(); - this.scriptProfileRunView.show(); - this.scriptProfileRunView.setProfiles(this.scriptProfiles); - }); - - // profile deleted - this.scriptProfileRunView.onProfileDelete((profile) => { - const index = this.scriptProfiles.indexOf(profile); - if (index === -1) { return; } - - if (index !== -1) { this.scriptProfiles.splice(index, 1); } - this.scriptProfileRunView.setProfiles(this.scriptProfiles); - }); - - // profile renamed - this.scriptProfileRunView.onProfileChange((data) => { - const index = this.scriptProfiles.indexOf(data.profile); - if (index === -1 || !this.scriptProfiles[index][data.key]) { return; } - - this.scriptProfiles[index][data.key] = data.value; - this.scriptProfileRunView.show(); - this.scriptProfileRunView.setProfiles(this.scriptProfiles); - }); - - // profile renamed - return this.scriptProfileRunView.onProfileRun((profile) => { - if (!profile) { return; } - this.runtime.execute('Selection Based', null, profile); - }); + escapeConsoleOutput: { + title: 'HTML escape console output', + type: 'boolean', + default: true, }, - - deactivate() { - this.runtime.destroy(); - this.scriptView.removePanel(); - this.scriptOptionsView.close(); - this.scriptProfileRunView.close(); - this.subscriptions.dispose(); - GrammarUtils.deleteTempFiles(); + ignoreSelection: { + title: 'Ignore selection (file-based runs only)', + type: 'boolean', + default: false, }, - - closeScriptViewAndStopRunner() { - this.runtime.stop(); - this.scriptView.removePanel(); + scrollWithOutput: { + title: 'Scroll with output', + type: 'boolean', + default: true, }, - - // Public - // - // Service method that provides the default runtime that's configurable through Atom editor - // Use this service if you want to directly show the script's output in the Atom editor - // - // **Do not destroy this {Runtime} instance!** By doing so you'll break this plugin! - // - // Also note that the Script package isn't activated until you actually try to use it. - // That's why this service won't be automatically consumed. To be sure you consume it - // you may need to manually activate the package: - // - // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! - // - // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example - provideDefaultRuntime() { - return this.runtime; + stopOnRerun: { + title: 'Stop running process on rerun', + type: 'boolean', + default: false, }, - - // Public - // - // Service method that provides a blank runtime. You are free to configure any aspect of it: - // * Add observer (`runtime.addObserver(observer)`) - see {ViewRuntimeObserver} for an example - // * configure script options (`runtime.scriptOptions`) - // - // In contrast to `provideDefaultRuntime` you should dispose this {Runtime} when - // you no longer need it. - // - // Also note that the Script package isn't activated until you actually try to use it. - // That's why this service won't be automatically consumed. To be sure you consume it - // you may need to manually activate the package: - // - // atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! - // - // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example - provideBlankRuntime() { - const runner = new Runner(new ScriptOptions()); - const codeContextBuilder = new CodeContextBuilder(); - - return new Runtime(runner, codeContextBuilder, []); - }, - - serialize() { - // TODO: True serialization needs to take the options view into account - // and handle deserialization - const serializedProfiles = []; - for (const profile of this.scriptProfiles) { serializedProfiles.push(profile.toObject()); } - - return { - scriptViewState: this.scriptView.serialize(), - scriptOptionsViewState: this.scriptOptionsView.serialize(), - profiles: serializedProfiles, - }; + cwdBehavior: { + title: 'Default Current Working Directory (CWD) Behavior', + description: 'If no Run Options are set, this setting decides how to determine the CWD', + type: 'string', + default: 'First project directory', + enum: [ + 'First project directory', + 'Project directory of the script', + 'Directory of the script', + ], }, -}; +} + +// For some reason, the text of these options does not show in package settings view +// default: 'firstProj' +// enum: [ +// {value: 'firstProj', description: 'First project directory (if there is one)'} +// {value: 'scriptProj', description: 'Project directory of the script (if there is one)'} +// {value: 'scriptDir', description: 'Directory of the script'} +// ] +let scriptView = null +let scriptOptionsView = null +let scriptProfileRunView = null +let scriptOptions = null +let scriptProfiles = [] +let runtime = null +const subscriptions = new CompositeDisposable(); + +export function activate(state) { + scriptView = new ScriptView(state.scriptViewState); + scriptOptions = new ScriptOptions(); + scriptOptionsView = new ScriptOptionsView(scriptOptions); + + // profiles loading + scriptProfiles = []; + if (state.profiles) { + for (const profile of state.profiles) { + const so = ScriptOptions.createFromOptions(profile.name, profile); + scriptProfiles.push(so); + } + } + + scriptProfileRunView = new ScriptProfileRunView(scriptProfiles); + + const codeContextBuilder = new CodeContextBuilder(); + const runner = new Runner(scriptOptions); + + const observer = new ViewRuntimeObserver(scriptView); + + runtime = new Runtime(runner, codeContextBuilder, [observer]); + + subscriptions.add(atom.commands.add('atom-workspace', { + 'core:cancel': () => closeScriptViewAndStopRunner(), + 'core:close': () => closeScriptViewAndStopRunner(), + 'script:close-view': () => closeScriptViewAndStopRunner(), + 'script:copy-run-results': () => scriptView.copyResults(), + 'script:kill-process': () => runtime.stop(), + 'script:run-by-line-number': () => runtime.execute('Line Number Based'), + 'script:run': () => runtime.execute('Selection Based'), + })); + + // profile created + scriptOptionsView.onProfileSave((profileData) => { + // create and fill out profile + const profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); + + const codeContext = runtime.codeContextBuilder.buildCodeContext( + atom.workspace.getActiveTextEditor(), 'Selection Based', + ); + profile.lang = codeContext.lang; + + // formatting description + const opts = profile.toObject(); + let desc = `Language: ${codeContext.lang}`; + if (opts.cmd) { desc += `, Command: ${opts.cmd}`; } + if (opts.cmdArgs && opts.cmd) { desc += ` ${opts.cmdArgs.join(' ')}`; } + + profile.description = desc; + scriptProfiles.push(profile); + + scriptOptionsView.hide(); + scriptProfileRunView.show(); + scriptProfileRunView.setProfiles(scriptProfiles); + }); + + // profile deleted + scriptProfileRunView.onProfileDelete((profile) => { + const index = scriptProfiles.indexOf(profile); + if (index === -1) { return; } + + if (index !== -1) { scriptProfiles.splice(index, 1); } + scriptProfileRunView.setProfiles(scriptProfiles); + }); + + // profile renamed + scriptProfileRunView.onProfileChange((data) => { + const index = scriptProfiles.indexOf(data.profile); + if (index === -1 || !scriptProfiles[index][data.key]) { return; } + + scriptProfiles[index][data.key] = data.value; + scriptProfileRunView.show(); + scriptProfileRunView.setProfiles(scriptProfiles); + }); + + // profile renamed + return scriptProfileRunView.onProfileRun((profile) => { + if (!profile) { return; } + runtime.execute('Selection Based', null, profile); + }); +} + +export function deactivate() { + runtime.destroy(); + scriptView.removePanel(); + scriptOptionsView.close(); + scriptProfileRunView.close(); + subscriptions.dispose(); + GrammarUtils.deleteTempFiles(); +} + +export function closeScriptViewAndStopRunner() { + runtime.stop(); + scriptView.removePanel(); +} + +// Public +// +// Service method that provides the default runtime that's configurable through Atom editor +// Use this service if you want to directly show the script's output in the Atom editor +// +// **Do not destroy this {Runtime} instance!** By doing so you'll break this plugin! +// +// Also note that the Script package isn't activated until you actually try to use it. +// That's why this service won't be automatically consumed. To be sure you consume it +// you may need to manually activate the package: +// +// atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! +// +// see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example +export function provideDefaultRuntime() { + return runtime; +} + +// Public +// +// Service method that provides a blank runtime. You are free to configure any aspect of it: +// * Add observer (`runtime.addObserver(observer)`) - see {ViewRuntimeObserver} for an example +// * configure script options (`runtime.scriptOptions`) +// +// In contrast to `provideDefaultRuntime` you should dispose this {Runtime} when +// you no longer need it. +// +// Also note that the Script package isn't activated until you actually try to use it. +// That's why this service won't be automatically consumed. To be sure you consume it +// you may need to manually activate the package: +// +// atom.packages.loadPackage('script').activateNow() # this code doesn't include error handling! +// +// see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example +export function provideBlankRuntime() { + const runner = new Runner(new ScriptOptions()); + const codeContextBuilder = new CodeContextBuilder(); + + return new Runtime(runner, codeContextBuilder, []); +} + +export function serialize() { + // TODO: True serialization needs to take the options view into account + // and handle deserialization + const serializedProfiles = []; + for (const profile of scriptProfiles) { serializedProfiles.push(profile.toObject()); } + + return { + scriptViewState: scriptView.serialize(), + scriptOptionsViewState: scriptOptionsView.serialize(), + profiles: serializedProfiles, + }; +} From 531a015f88714c167b3b1f524d696a7a3298d387 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:34:15 -0500 Subject: [PATCH 308/410] fix: es6 export in garammars/javascript --- lib/grammars.js | 2 +- lib/grammars/javascript.js | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index 841db408..8e0a00f3 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -10,7 +10,7 @@ import doc from './grammars/doc.coffee'; import fortran from './grammars/fortran.coffee'; import haskell from './grammars/haskell.coffee'; import java from './grammars/java.coffee'; -import js from './grammars/javascript'; +import * as js from './grammars/javascript'; import lisp from './grammars/lisp.coffee'; import lua from './grammars/lua.coffee'; import ml from './grammars/ml.coffee'; diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index ce68aad1..2dfc68ff 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -10,7 +10,7 @@ const args = ({ filepath }) => { const cmd = `'${babel}' --filename '${filepath}' --config-file ${babelConfig} < '${filepath}'| node`; return GrammarUtils.formatArgs(cmd); }; -exports.Dart = { +export const Dart = { 'Selection Based': { command: 'dart', args: (context) => { @@ -24,7 +24,7 @@ exports.Dart = { args: ({ filepath }) => [filepath], }, }; -exports.JavaScript = { +export const JavaScript = { 'Selection Based': { command: GrammarUtils.command, args: (context) => { @@ -35,8 +35,9 @@ exports.JavaScript = { }, 'File Based': { command: GrammarUtils.command, args }, }; -exports['Babel ES6 JavaScript'] = exports.JavaScript; -exports['JavaScript with JSX'] = exports.JavaScript; +// TODO respect ES6 exporting +exports['Babel ES6 JavaScript'] = JavaScript; +exports['JavaScript with JSX'] = JavaScript; exports['JavaScript for Automation (JXA)'] = { 'Selection Based': { @@ -48,7 +49,7 @@ exports['JavaScript for Automation (JXA)'] = { args: ({ filepath }) => ['-l', 'JavaScript', filepath], }, }; -exports.TypeScript = { +export const TypeScript = { 'Selection Based': { command: 'ts-node', args: (context) => ['-e', context.getCode()], From 63f290d484d4def78b543bfc9e93e2f89c46237a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:48:06 -0500 Subject: [PATCH 309/410] chore: escape / in regex --- lib/link-paths.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/link-paths.js b/lib/link-paths.js index a613cb08..308c1c05 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -2,7 +2,7 @@ /* eslint-disable no-multi-str, prefer-const, func-names */ let linkPaths; -const regex = new RegExp('((?:\\w:)?/?(?:[-\\w.]+/)*[-\\w.]+):(\\d+)(?::(\\d+))?', 'g'); +const regex = new RegExp('((?:\\w:)?\/?(?:[-\\w.]+\/)*[-\\w.]+):(\\d+)(?::(\\d+))?', 'g'); // ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) // (?:[-\w.]+/)*[-\w.]+) # The path of the file some/file/path.ext // :(\d+) # Line number prefixed with a colon From 2921436eac26a595d62ce6bbcdd7de44893088bb Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:49:31 -0500 Subject: [PATCH 310/410] chore: use regex literal --- lib/link-paths.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/link-paths.js b/lib/link-paths.js index 308c1c05..3970fc81 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -2,7 +2,7 @@ /* eslint-disable no-multi-str, prefer-const, func-names */ let linkPaths; -const regex = new RegExp('((?:\\w:)?\/?(?:[-\\w.]+\/)*[-\\w.]+):(\\d+)(?::(\\d+))?', 'g'); +const regex = /((?:\\w:)?\/?(?:[-\\w.]+\/)*[-\\w.]+):(\\d+)(?::(\\d+))?/g; // ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) // (?:[-\w.]+/)*[-\w.]+) # The path of the file some/file/path.ext // :(\d+) # Line number prefixed with a colon From 83b03e209cbd626fe09a0d649f4deda61baab0f1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:50:24 -0500 Subject: [PATCH 311/410] chore: remove excess \ escaping --- lib/link-paths.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/link-paths.js b/lib/link-paths.js index 3970fc81..23d19157 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -2,7 +2,7 @@ /* eslint-disable no-multi-str, prefer-const, func-names */ let linkPaths; -const regex = /((?:\\w:)?\/?(?:[-\\w.]+\/)*[-\\w.]+):(\\d+)(?::(\\d+))?/g; +const regex = /((?:\w:)?\/?(?:[-\w.]+\/)*[-\w.]+):(\d+)(?::(\d+))?/g; // ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) // (?:[-\w.]+/)*[-\w.]+) # The path of the file some/file/path.ext // :(\d+) # Line number prefixed with a colon From 2f9a6adaa28993d4b05d1c33662924fd61a64f47 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:50:53 -0500 Subject: [PATCH 312/410] chore: eslint fix regex --- lib/link-paths.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/link-paths.js b/lib/link-paths.js index 23d19157..6c3c7344 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -2,9 +2,9 @@ /* eslint-disable no-multi-str, prefer-const, func-names */ let linkPaths; -const regex = /((?:\w:)?\/?(?:[-\w.]+\/)*[-\w.]+):(\d+)(?::(\d+))?/g; +const regex = /((?:\w:)?\/?(?:[\w.-]+\/)*[\w.-]+):(\d+)(?::(\d+))?/g; // ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) -// (?:[-\w.]+/)*[-\w.]+) # The path of the file some/file/path.ext +// (?:[\w.-]+/)*[\w.-]+) # The path of the file some/file/path.ext // :(\d+) # Line number prefixed with a colon // (?::(\d+))? # Column number prefixed with a colon (optional) From 19d08ec347631517d8abca4a75d63770c958e5a1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 01:53:12 -0500 Subject: [PATCH 313/410] chore: remove unused eslint disable directives --- lib/grammar-utils.js | 1 - lib/link-paths.js | 1 - lib/script-profile-run-view.js | 3 --- lib/script-view.js | 1 - spec/grammars-spec.js | 2 -- spec/script-options-view-spec.js | 1 - 6 files changed, 9 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index b89e5516..53ea29f5 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -61,7 +61,6 @@ const GrammarUtils = { return ['-c', command]; }, - /* eslint-disable global-require */ // Public: Get the Java helper object // // Returns an {Object} which assists in preparing java + javac statements diff --git a/lib/link-paths.js b/lib/link-paths.js index 6c3c7344..8917dd7a 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -1,6 +1,5 @@ 'use babel'; -/* eslint-disable no-multi-str, prefer-const, func-names */ let linkPaths; const regex = /((?:\w:)?\/?(?:[\w.-]+\/)*[\w.-]+):(\d+)(?::(\d+))?/g; // ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index e5008900..65e28edf 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -1,6 +1,5 @@ 'use babel'; -/* eslint-disable func-names */ import { CompositeDisposable, Emitter } from 'atom'; import { $$, SelectListView } from 'atom-space-pen-views-plus'; import ScriptInputView from './script-input-view'; @@ -29,9 +28,7 @@ export default class ScriptProfileRunView extends SelectListView { this.buttons = $$(function () { this.div({ class: 'block buttons' }, () => { - /* eslint-disable no-unused-vars */ const css = 'btn inline-block-tight'; - /* eslint-enable no-unused-vars */ this.button({ class: 'btn cancel' }, () => this.span({ class: 'icon icon-x' }, 'Cancel')); this.button({ class: 'btn rename' }, () => this.span({ class: 'icon icon-pencil' }, 'Rename')); this.button({ class: 'btn delete' }, () => this.span({ class: 'icon icon-trashcan' }, 'Delete')); diff --git a/lib/script-view.js b/lib/script-view.js index d54de82a..0f6707bd 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -1,6 +1,5 @@ 'use babel'; -/* eslint-disable func-names */ import { $$ } from 'atom-space-pen-views-plus'; import { MessagePanelView } from 'atom-message-panel'; import _ from 'underscore'; diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 81ecaf02..8f48c064 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -5,7 +5,6 @@ import tempy from 'tempy'; import path from 'path'; -/* eslint-disable no-unused-vars, global-require, no-undef */ import CodeContext from '../lib/code-context'; import OperatingSystem from '../lib/grammar-utils/operating-system'; import grammarMap from '../lib/grammars'; @@ -32,7 +31,6 @@ describe('grammarMap', () => { if (process.platform === 'darwin') { expect(commandContext.command).toBeDefined(); } else { - /* eslint-disable no-console */ console.warn(`This test does not work on ${process.platform}`, commandContext.command); } const argList = commandContext.args(this.codeContext); diff --git a/spec/script-options-view-spec.js b/spec/script-options-view-spec.js index 552b77c1..47bf0170 100644 --- a/spec/script-options-view-spec.js +++ b/spec/script-options-view-spec.js @@ -1,6 +1,5 @@ 'use babel'; -/* eslint-disable no-underscore-dangle */ import ScriptOptionsView from '../lib/script-options-view'; describe('ScriptOptionsView', () => { From d2d127c0f1da0759629a94e221d2073982f40b26 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 21 Mar 2021 06:59:49 +0000 Subject: [PATCH 314/410] chore(release): 3.29.6 [skip ci] --- CHANGELOG.md | 10 ++++++++++ package.json | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 994b72a6..eec73fc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## [3.29.6](https://github.com/atom-ide-community/atom-script/compare/v3.29.5...v3.29.6) (2021-03-21) + + +### Bug Fixes + +* es6 export in garammars/javascript ([531a015](https://github.com/atom-ide-community/atom-script/commit/531a015f88714c167b3b1f524d696a7a3298d387)) +* eslint fix ([e5b807d](https://github.com/atom-ide-community/atom-script/commit/e5b807d91e47528f8d213d9db581123c3db7746a)) +* export entry functions directly ([9783277](https://github.com/atom-ide-community/atom-script/commit/97832771c6e3cf9a1f2943ba2e128d4c720bb067)) +* update dependencies ([7dc0e3d](https://github.com/atom-ide-community/atom-script/commit/7dc0e3d2cd6476fede46c436cb0f71ef180fa718)) + ## [3.29.5](https://github.com/atom-ide-community/atom-script/compare/v3.29.4...v3.29.5) (2021-03-21) diff --git a/package.json b/package.json index 99ff5d0d..66cb6fb1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.29.5", + "version": "3.29.6", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 004525a03a510046410ece45ec936abcf5f2ac2c Mon Sep 17 00:00:00 2001 From: Jan Singon Slany Date: Sat, 6 Mar 2021 18:07:50 +0100 Subject: [PATCH 315/410] feat: make position of output panel configurable --- lib/script-view.js | 24 ++++++++++++++++++++++++ lib/script.js | 13 +++++++++++++ 2 files changed, 37 insertions(+) diff --git a/lib/script-view.js b/lib/script-view.js index 0f6707bd..adf437d4 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -18,6 +18,10 @@ export default class ScriptView extends MessagePanelView { this.scrollTimeout = null; this.ansiFilter = new AnsiFilter(); this.headerView = headerView; + this.position = this.parsePositionConfig(atom.config.get('script.position')); + atom.config.observe('script.position', (newVal) => { + this.position = this.parsePositionConfig(newVal); + }); this.showInTab = this.showInTab.bind(this); this.setHeaderAndShowExecutionTime = this.setHeaderAndShowExecutionTime.bind(this); @@ -27,6 +31,26 @@ export default class ScriptView extends MessagePanelView { linkPaths.listen(this.body); } + parsePositionConfig(value) { + // Get the configured position of the view as one of the + // valid values of the MessagePanelView.position parameter. + let position; + switch (value) { + case 'Top': + return 'top'; + case 'Bottom': + return 'bottom'; + case 'Left': + return 'left'; + case 'Right': + return 'right'; + default: + // Use bottom as the default, because that was the behaviour + // before the position became configurable. + return 'bottom'; + } + } + addShowInTabIcon() { const icon = $$(function () { this.div({ diff --git a/lib/script.js b/lib/script.js index 09c2c828..2eaec907 100644 --- a/lib/script.js +++ b/lib/script.js @@ -49,6 +49,19 @@ export const config = { 'Directory of the script', ], }, + position: { + title: 'Panel position', + description: 'Position of the panel with script output. ' + + '(Changes to this value will be applied upon reopening the panel.)', + type: 'string', + default: 'Bottom', + enum: [ + 'Top', + 'Bottom', + 'Left', + 'Right', + ], + }, } // For some reason, the text of these options does not show in package settings view From 822bfcbb696d44db9749dcc1ae60e8115bd9155c Mon Sep 17 00:00:00 2001 From: Jan Singon Slany Date: Sat, 6 Mar 2021 18:35:58 +0100 Subject: [PATCH 316/410] fix: remove unused variable --- lib/script-view.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/script-view.js b/lib/script-view.js index adf437d4..4155ab6a 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -34,7 +34,6 @@ export default class ScriptView extends MessagePanelView { parsePositionConfig(value) { // Get the configured position of the view as one of the // valid values of the MessagePanelView.position parameter. - let position; switch (value) { case 'Top': return 'top'; From e23e2abab02e62c1e66e233abccacd62ba1c49d2 Mon Sep 17 00:00:00 2001 From: Jan Singon Slany Date: Sun, 21 Mar 2021 15:26:25 +0100 Subject: [PATCH 317/410] fix: use multi-line literal instead of concatenation --- lib/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/script.js b/lib/script.js index 2eaec907..a28ae54a 100644 --- a/lib/script.js +++ b/lib/script.js @@ -51,8 +51,8 @@ export const config = { }, position: { title: 'Panel position', - description: 'Position of the panel with script output. ' - + '(Changes to this value will be applied upon reopening the panel.)', + description: 'Position of the panel with script output. \ + (Changes to this value will be applied upon reopening the panel.)', type: 'string', default: 'Bottom', enum: [ From e21cd5983d2a458c07b50106f95b5080ee7cae37 Mon Sep 17 00:00:00 2001 From: Jan Singon Slany Date: Sun, 21 Mar 2021 15:47:48 +0100 Subject: [PATCH 318/410] fix: use parameters directly as config options --- lib/script-view.js | 25 ++++--------------------- lib/script.js | 10 +++++----- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/lib/script-view.js b/lib/script-view.js index 4155ab6a..2e15a4f5 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -18,9 +18,11 @@ export default class ScriptView extends MessagePanelView { this.scrollTimeout = null; this.ansiFilter = new AnsiFilter(); this.headerView = headerView; - this.position = this.parsePositionConfig(atom.config.get('script.position')); + // Use 'bottom' as the default position, because that was + // the behaviour before the position became configurable: + this.position = 'bottom'; atom.config.observe('script.position', (newVal) => { - this.position = this.parsePositionConfig(newVal); + this.position = newVal; }); this.showInTab = this.showInTab.bind(this); @@ -31,25 +33,6 @@ export default class ScriptView extends MessagePanelView { linkPaths.listen(this.body); } - parsePositionConfig(value) { - // Get the configured position of the view as one of the - // valid values of the MessagePanelView.position parameter. - switch (value) { - case 'Top': - return 'top'; - case 'Bottom': - return 'bottom'; - case 'Left': - return 'left'; - case 'Right': - return 'right'; - default: - // Use bottom as the default, because that was the behaviour - // before the position became configurable. - return 'bottom'; - } - } - addShowInTabIcon() { const icon = $$(function () { this.div({ diff --git a/lib/script.js b/lib/script.js index a28ae54a..072faac8 100644 --- a/lib/script.js +++ b/lib/script.js @@ -54,12 +54,12 @@ export const config = { description: 'Position of the panel with script output. \ (Changes to this value will be applied upon reopening the panel.)', type: 'string', - default: 'Bottom', + default: 'bottom', enum: [ - 'Top', - 'Bottom', - 'Left', - 'Right', + 'top', + 'bottom', + 'left', + 'right', ], }, } From e44a76cd69dae6ae89d8c10f7b366897ff959e39 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 21 Mar 2021 16:05:18 +0000 Subject: [PATCH 319/410] chore(release): 3.30.0 [skip ci] --- CHANGELOG.md | 14 ++++++++++++++ package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eec73fc7..48583590 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# [3.30.0](https://github.com/atom-ide-community/atom-script/compare/v3.29.6...v3.30.0) (2021-03-21) + + +### Bug Fixes + +* remove unused variable ([822bfcb](https://github.com/atom-ide-community/atom-script/commit/822bfcbb696d44db9749dcc1ae60e8115bd9155c)) +* use multi-line literal instead of concatenation ([e23e2ab](https://github.com/atom-ide-community/atom-script/commit/e23e2abab02e62c1e66e233abccacd62ba1c49d2)) +* use parameters directly as config options ([e21cd59](https://github.com/atom-ide-community/atom-script/commit/e21cd5983d2a458c07b50106f95b5080ee7cae37)) + + +### Features + +* make position of output panel configurable ([004525a](https://github.com/atom-ide-community/atom-script/commit/004525a03a510046410ece45ec936abcf5f2ac2c)) + ## [3.29.6](https://github.com/atom-ide-community/atom-script/compare/v3.29.5...v3.29.6) (2021-03-21) diff --git a/package.json b/package.json index 66cb6fb1..b106098b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.29.6", + "version": "3.30.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From e49b613fcff71d643c0fd45b605d331f25ce462e Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:08:03 -0500 Subject: [PATCH 320/410] chore: use prettier --- .github/workflows/CI.yml | 4 ++-- .prettierignore | 6 ++++++ package.json | 3 +++ pnpm-lock.yaml | 10 ++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 .prettierignore diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index b224725b..07caaa03 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -52,8 +52,8 @@ jobs: - name: Install dependencies run: pnpm install - # - name: Format ✨ - # run: pnpm test.format + - name: Format ✨ + run: pnpm test.format - name: Lint ✨ run: pnpm test.lint diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..80457e4a --- /dev/null +++ b/.prettierignore @@ -0,0 +1,6 @@ +node_modules +pnpm-lock.yaml +package-lock.json +CHANGELOG.md +dist +.mypy_cache diff --git a/package.json b/package.json index 66cb6fb1..150199b4 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,8 @@ "devDependencies": { "eslint": "^7.22.0", "eslint-config-atomic": "^1.12.4", + "prettier": "^2.2.1", + "prettier-config-atomic": "^1.0.1", "tempy": "^1.0.1" }, "providedServices": { @@ -55,6 +57,7 @@ } } }, + "prettier": "prettier-config-atomic", "scripts": { "format": "prettier --write .", "test.format": "prettier . --check", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e2bd009..d9be6e1f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,8 @@ dependencies: devDependencies: eslint: 7.22.0 eslint-config-atomic: 1.12.4_eslint@7.22.0 + prettier: 2.2.1 + prettier-config-atomic: 1.0.1 tempy: 1.0.1 lockfileVersion: 5.2 optionalDependencies: @@ -3892,6 +3894,12 @@ packages: node: '>= 0.8.0' resolution: integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + /prettier-config-atomic/1.0.1: + dependencies: + prettier: 2.2.1 + dev: true + resolution: + integrity: sha512-bNW8oMkuuVZI0OXEwwfbGGpdh1Jv4QfOzSMnmueBkSCYcCAnA9iHy+wRVsAeVRZPfB1hjqB9UtxGTnrflITtyg== /prettier/2.2.1: dev: true engines: @@ -4819,6 +4827,8 @@ specifiers: coffeescript: ^2 eslint: ^7.22.0 eslint-config-atomic: ^1.12.4 + prettier: ^2.2.1 + prettier-config-atomic: ^1.0.1 strip-ansi: ^6.0.0 tempy: ^1.0.1 underscore: ^1.12.1 From b3078f7e0633ef893372b63771cc95e6b4bae9ef Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:08:19 -0500 Subject: [PATCH 321/410] chore: format --- .github/workflows/CI.yml | 2 +- CONTRIBUTING.md | 23 +- README.md | 386 +++++++++++++------------- examples/greeter.ts | 10 +- examples/hello.html | 10 +- examples/jxa.js | 6 +- examples/longrun.js | 12 +- examples/longrun.ts | 14 +- examples/modern.js | 6 +- examples/mongodb.js | 2 +- examples/stylish-css.scss | 2 +- lib/code-context-builder.js | 120 ++++---- lib/code-context.js | 54 ++-- lib/command-context.js | 69 ++--- lib/grammar-utils.js | 68 ++--- lib/grammar-utils/R.js | 8 +- lib/grammar-utils/d.js | 32 ++- lib/grammar-utils/java.js | 26 +- lib/grammar-utils/lisp.js | 42 +-- lib/grammar-utils/matlab.js | 32 ++- lib/grammar-utils/nim.js | 46 ++- lib/grammar-utils/operating-system.js | 20 +- lib/grammar-utils/perl.js | 8 +- lib/grammar-utils/php.js | 12 +- lib/grammars.js | 44 +-- lib/grammars/babel.config.js | 8 +- lib/grammars/javascript.js | 82 +++--- lib/header-view.js | 29 +- lib/link-paths.js | 33 +-- lib/runner.js | 176 ++++++------ lib/runtime.js | 106 +++---- lib/script-input-view.js | 76 ++--- lib/script-options-view.js | 215 +++++++------- lib/script-options.js | 61 ++-- lib/script-profile-run-view.js | 186 +++++++------ lib/script-view.js | 201 +++++++------- lib/script.js | 219 ++++++++------- lib/view-runtime-observer.js | 50 ++-- spec/code-context-builder-spec.js | 99 ++++--- spec/code-context-spec.js | 264 +++++++++--------- spec/fixtures/ioTest.js | 10 +- spec/fixtures/outputTest.js | 2 +- spec/fixtures/stdinEndTest.js | 10 +- spec/fixtures/throw.js | 2 +- spec/grammar-utils/lisp-spec.js | 95 +++---- spec/grammars-spec.js | 222 +++++++-------- spec/link-paths-spec.js | 54 ++-- spec/runner-spec.js | 118 ++++---- spec/script-options-spec.js | 95 ++++--- spec/script-options-view-spec.js | 140 +++++----- styles/script.less | 3 +- 51 files changed, 1891 insertions(+), 1719 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 07caaa03..9bd21c5f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -73,7 +73,7 @@ jobs: run: npm install # - name: Build and Commit - # run: npm run build-commit + # run: npm run build-commit - name: Release 🎉 uses: cycjimmy/semantic-release-action@v2 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ac9fa102..ae3a923c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,24 +1,29 @@ # Contributing + See [Atom's Contributing guidelines](https://atom.io/docs/latest/contributing). ## Reporting an issue + Please use [GitHub's Issue Search](https://help.github.com/articles/using-search-to-filter-issues-and-pull-requests/) to help reduce the number of duplicate issues reported. If you find an issue you're facing, feel free to comment on the open issues you're facing to raise with any details that could help debugging the problem. When reporting an issue include information such as: -* **Reproduction steps** if possible. -* The Platform (Operating System) you're on. -* The Atom version you're running. -* The Script package version. -* The Grammar you're attempting to run. -* Consider adding a failing spec, with an Atom package this isn't as simple but could really help speed up debugging the issue. + +- **Reproduction steps** if possible. +- The Platform (Operating System) you're on. +- The Atom version you're running. +- The Script package version. +- The Grammar you're attempting to run. +- Consider adding a failing spec, with an Atom package this isn't as simple but could really help speed up debugging the issue. The more information available when we take a look at your issue the more likely we can deal with it in a quick manner. ## Developing + We love pull requests! If you're reading this section thanks in advance. To help accelerate the review process: -* Consider adding specs. - * Passing tests give reviewers confidence. -* Consider adding verification steps for reviewers. + +- Consider adding specs. + - Passing tests give reviewers confidence. +- Consider adding verification steps for reviewers. diff --git a/README.md b/README.md index efacb381..24885a48 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Run scripts based on file name, a selection of code, or by line number. Currently supported grammars are: | Grammar | File Based | Selection Based | Required Package | Required in [`PATH`] | Notes | -|:------------------------------------|:-----------|:----------------|:------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| :---------------------------------- | :--------- | :-------------- | :---------------------------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Assembly (NASM) | Yes | Yes | [language-x86-64-assembly] | [`nasm`], [`binutils`] | | | 1C (BSL) | Yes | | [language-1c-bsl] | [`oscript`] | | | [Ansible] | Yes | | [language-ansible] | `ansible-playbook` | | @@ -78,7 +78,7 @@ Currently supported grammars are: | [Oz] | Yes | Yes | [language-oz] | `ozc` | | | [Pandoc] Markdown | Yes | | [language-pfm] | [`panzer`] | | | [Pascal] | Yes | Yes | [language-pascal] | `fpc` | | -| [Perl] | Yes | Yes | | | | +| [Perl] | Yes | Yes | | | | | PHP | Yes | Yes | | | | | [PostgreSQL] | Yes | Yes | [language-pgsql] | [`psql`] | Connects as user `PGUSER` to database `PGDATABASE`. Both default to your operating system's `USERNAME`, but can be set in the process environment or in Atom's [`init` file]: `process.env.PGUSER = {user name}` and `process.env.PGDATABASE = {database name}` | | [POV-Ray] | Yes | | [atom-language-povray] | `povengine`/`povray` | | @@ -110,189 +110,189 @@ Currently supported grammars are: | [VBScript] | Yes | Yes | [language-vbscript] | `cscript` | | | [Zsh] | Yes | Yes | | | Runs if your `SHELL` or `#!` line is `zsh`. | -[-wow]: https://atom.io/packages/language-lua-wow -[#70]: https://github.com/atom-ide-community/atom-script/pull/70 -[`binutils`]: https://www.gnu.org/software/binutils/ -[`gfortran`]: https://gcc.gnu.org/wiki/GFortran -[`ghc`]: https://haskell.org/ghc -[`guile`]: https://gnu.org/software/guile -[`init` file]: http://flight-manual.atom.io/hacking-atom/sections/the-init-file -[`latexmk`]: https://ctan.org/pkg/latexmk -[`nasm`]: https://nasm.us/ -[`oscript`]: http://oscript.io -[`panzer`]: https://github.com/msprev/panzer#readme -[`PATH`]: https://en.wikipedia.org/wiki/PATH_(variable) -[`psql`]: https://postgresql.org/docs/current/static/app-psql.html -[`pulp`]: https://github.com/purescript-contrib/pulp#readme -[`sbcl`]: http://sbcl.org -[`scriptcs`]: http://scriptcs.net -[`spim`]: http://spimsimulator.sourceforge.net -[`ts-node`]: https://github.com/TypeStrong/ts-node#readme -[Ansible]: https://ansible.com -[AppleScript]: https://developer.apple.com/library/content/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/ScriptingOnOSX.html#//apple_ref/doc/uid/20000032-BABEBGCF -[atlilypond]: https://atom.io/packages/atlilypond -[atom-fstar]: https://github.com/FStarLang/atom-fstar#readme -[atom-language-io]: https://atom.io/packages/atom-language-io -[atom-language-povray]: https://atom.io/packages/atom-language-povray -[AutoHotKey]: https://autohotkey.com -[babel]: https://babeljs.io -[batch]: https://ss64.com/nt -[bats]: https://github.com/sstephenson/bats#bats-bash-automated-testing-system#readme -[behat-atom]: https://atom.io/packages/behat-atom -[behat]: http://docs.behat.org/en/v2.5/guides/6.cli.html -[bs-platform]: https://npm.im/package/bs-platform -[bucklescript]: https://bucklescript.github.io/bucklescript -[C# Script]: http://csscript.net -[clojure]: https://clojure.org -[coffeescript]: http://coffeescript.org -[crystal]: https://crystal-lang.org -[cucumber]: https://cucumber.io -[D]: https://dlang.org -[dart]: https://dartlang.org -[dartlang]: https://atom.io/packages/dartlang -[dot]: http://graphviz.org/content/dot-language -[elixir]: https://elixir-lang.org -[erlang]: https://erlang.org -[ES6]: https://babeljs.io/learn-es2015 -[F*]: https://fstar-lang.org -[F#]: http://fsharp.org -[file]: https://atom.io/packages/language-batchfile -[fish]: https://fishshell.com -[forth]: https://gnu.org/software/gforth -[fortran]: http://fortranwiki.org/fortran/show/Fortran -[gherkin]: https://cucumber.io/docs/reference#gherkin -[gnuplot]: http://gnuplot.info -[go]: https://golang.org -[graphviz]: http://graphviz.org -[groovy]: http://groovy-lang.org -[haskell]: https://haskell.org -[hy]: http://hylang.org -[icedcoffeescript]: http://maxtaco.github.io/coffee-script -[idris]: https://idris-lang.org -[inno setup]: http://jrsoftware.org/isinfo.php -[io]: http://iolanguage.org -[jolie]: http://jolie-lang.org -[julia]: https://julialang.org -[jxa]: https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html -[kotlin]: https://kotlinlang.org -[LAMMPS]: http://lammps.sandia.gov -[langauge-scheme]: https://atom.io/packages/language-scheme -[language-1c-bsl]: https://atom.io/packages/language-1c-bsl -[language-ansible]: https://atom.io/packages/language-ansible -[language-applescript]: https://atom.io/packages/language-applescript -[language-autohotkey]: https://atom.io/packages/language-autohotkey -[language-babel]: https://atom.io/packages/language-babel -[language-batch]: https://atom.io/packages/language-batch -[language-bats]: https://atom.io/packages/language-bats -[language-crystal-actual]: https://atom.io/packages/language-crystal-actual -[language-d]: https://atom.io/packages/language-d -[language-dot]: https://atom.io/packages/language-dot -[language-elixir]: https://atom.io/packages/language-elixir -[language-erlang]: https://atom.io/packages/language-erlang -[language-fish-shell]: https://atom.io/packages/language-fish-shell -[language-forth]: https://atom.io/packages/language-forth -[language-fortran]: https://atom.io/packages/language-fortran -[language-fsharp]: https://atom.io/packages/language-fsharp -[language-gherkin]: https://atom.io/packages/language-gherkin -[language-gnuplot-atom]: https://atom.io/packages/language-gnuplot-atom -[language-groovy]: https://atom.io/packages/language-groovy -[language-haskell]: https://atom.io/packages/language-haskell -[language-hy]: https://atom.io/packages/language-hy -[language-iced-coffee-script]: https://atom.io/packages/language-iced-coffee-script -[language-idris]: https://atom.io/packages/language-idris -[language-innosetup]: https://atom.io/packages/language-innosetup -[language-javascript-jxa]: https://atom.io/packages/language-javascript-jxa -[language-jolie]: https://atom.io/packages/language-jolie -[language-julia]: https://atom.io/packages/language-julia -[language-kotlin]: https://atom.io/packages/language-kotlin -[language-lammps]: https://atom.io/packages/language-lammps -[language-latex]: https://atom.io/packages/language-latex -[language-lisp]: https://atom.io/packages/language-lisp -[language-livescript]: https://atom.io/packages/language-livescript -[language-lua]: https://atom.io/packages/language-lua -[language-matlab]: https://atom.io/packages/language-matlab -[language-mips]: https://atom.io/packages/language-mips -[language-mongodb]: https://atom.io/packages/language-mongodb -[language-moonscript]: https://atom.io/packages/language-moonscript -[language-ncl]: https://atom.io/packages/language-ncl -[language-newlisp]: https://atom.io/packages/language-newlisp -[language-nim]: https://atom.io/packages/language-nim -[language-nsis]: https://atom.io/packages/language-nsis -[language-ocaml]: https://atom.io/packages/language-ocaml -[language-oz]: https://atom.io/packages/language-oz -[language-pascal]: https://atom.io/packages/language-pascal -[language-pfm]: https://atom.io/packages/language-pfm -[language-pgsql]: https://atom.io/packages/language-pgsql -[language-powershell]: https://atom.io/packages/language-powershell -[language-prolog]: https://atom.io/packages/language-prolog -[language-purescript]: https://atom.io/packages/language-purescript -[language-r]: https://atom.io/packages/language-r -[language-racket]: https://atom.io/packages/language-racket -[language-reason]: https://atom.io/packages/language-reason -[language-renpy]: https://atom.io/packages/language-renpy -[language-robot-framework]: https://atom.io/packages/language-robot-framework -[language-rspec]: https://atom.io/packages/language-rspec -[language-rust]: https://atom.io/packages/language-rust -[language-sage]: https://atom.io/packages/language-sage -[language-scala]: https://atom.io/packages/language-scala -[language-sml]: https://atom.io/packages/language-sml -[language-stata]: https://atom.io/packages/language-stata -[language-swift]: https://atom.io/packages/language-swift -[language-tcltk]: https://atom.io/packages/language-tcltk -[language-vbscript]: https://atom.io/packages/language-vbscript -[language-x86-64-assembly]: https://atom.io/packages/language-x86-64-assembly -[latex]: https://latex-project.org -[lein-exec]: https://github.com/kumarshantanu/lein-exec#readme -[leiningen]: https://leiningen.org -[lilypond]: http://lilypond.org -[lisp]: http://lisp-lang.org -[lit-hskl]: https://wiki.haskell.org/Literate_programming#Haskell_and_literate_programming -[literate]: http://coffeescript.org/#literate -[livescript]: http://livescript.net -[lua]: https://lua.org -[make]: https://gnu.org/software/make/manual/make -[MATLAB]: https://mathworks.com/products/matlab -[mips]: https://imgtec.com/mips -[mongodb]: https://mongodb.com -[moonscript]: https://moonscript.org -[NCL]: https://ncl.ucar.edu -[newlisp]: http://newlisp.org -[nim]: https://nim-lang.org -[nimscript]: https://nim-lang.org/0.11.3/nims.html -[NSIS]: http://nsis.sourceforge.net -[ocaml]: https://ocaml.org -[octave]: https://gnu.org/software/octave -[oz]: https://mozart.github.io -[pandoc]: https://pandoc.org -[Raku]: https://raku.org -[pascal]: https://freepascal.org -[Perl]: https://www.perl.org/ -[PostgreSQL]: https://postgresql.org -[POV-Ray]: http://www.povray.org/ -[powershell]: https://docs.microsoft.com/powershell -[processing-language]: https://atom.io/packages/processing-language -[processing]: https://processing.org -[prolog]: http://swi-prolog.org -[purescript]: http://purescript.org -[R]: https://r-project.org -[racket]: https://racket-lang.org -[rails]: http://rubyonrails.org -[reason]: https://reasonml.github.io -[Ren'Py]: https://renpy.org -[robot framework]: http://robotframework.org -[rspec]: http://rspec.info -[rust]: https://rust-lang.org -[sage]: https://sagemath.org -[sass]: http://sass-lang.com -[scala]: https://scala-lang.org -[scheme]: http://scheme-reports.org -[Standard ML]: http://sml-family.org -[stata]: https://stata.com -[swift]: https://swift.org -[tcl]: https://tcl.tk -[typescript]: https://typescriptlang.org -[VBScript]: https://msdn.microsoft.com/library/t0aew7h6.aspx -[zsh]: http://zsh.org +[-wow]: https://atom.io/packages/language-lua-wow +[#70]: https://github.com/atom-ide-community/atom-script/pull/70 +[`binutils`]: https://www.gnu.org/software/binutils/ +[`gfortran`]: https://gcc.gnu.org/wiki/GFortran +[`ghc`]: https://haskell.org/ghc +[`guile`]: https://gnu.org/software/guile +[`init` file]: http://flight-manual.atom.io/hacking-atom/sections/the-init-file +[`latexmk`]: https://ctan.org/pkg/latexmk +[`nasm`]: https://nasm.us/ +[`oscript`]: http://oscript.io +[`panzer`]: https://github.com/msprev/panzer#readme +[`path`]: https://en.wikipedia.org/wiki/PATH_(variable) +[`psql`]: https://postgresql.org/docs/current/static/app-psql.html +[`pulp`]: https://github.com/purescript-contrib/pulp#readme +[`sbcl`]: http://sbcl.org +[`scriptcs`]: http://scriptcs.net +[`spim`]: http://spimsimulator.sourceforge.net +[`ts-node`]: https://github.com/TypeStrong/ts-node#readme +[ansible]: https://ansible.com +[applescript]: https://developer.apple.com/library/content/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/ScriptingOnOSX.html#//apple_ref/doc/uid/20000032-BABEBGCF +[atlilypond]: https://atom.io/packages/atlilypond +[atom-fstar]: https://github.com/FStarLang/atom-fstar#readme +[atom-language-io]: https://atom.io/packages/atom-language-io +[atom-language-povray]: https://atom.io/packages/atom-language-povray +[autohotkey]: https://autohotkey.com +[babel]: https://babeljs.io +[batch]: https://ss64.com/nt +[bats]: https://github.com/sstephenson/bats#bats-bash-automated-testing-system#readme +[behat-atom]: https://atom.io/packages/behat-atom +[behat]: http://docs.behat.org/en/v2.5/guides/6.cli.html +[bs-platform]: https://npm.im/package/bs-platform +[bucklescript]: https://bucklescript.github.io/bucklescript +[c# script]: http://csscript.net +[clojure]: https://clojure.org +[coffeescript]: http://coffeescript.org +[crystal]: https://crystal-lang.org +[cucumber]: https://cucumber.io +[d]: https://dlang.org +[dart]: https://dartlang.org +[dartlang]: https://atom.io/packages/dartlang +[dot]: http://graphviz.org/content/dot-language +[elixir]: https://elixir-lang.org +[erlang]: https://erlang.org +[es6]: https://babeljs.io/learn-es2015 +[f*]: https://fstar-lang.org +[f#]: http://fsharp.org +[file]: https://atom.io/packages/language-batchfile +[fish]: https://fishshell.com +[forth]: https://gnu.org/software/gforth +[fortran]: http://fortranwiki.org/fortran/show/Fortran +[gherkin]: https://cucumber.io/docs/reference#gherkin +[gnuplot]: http://gnuplot.info +[go]: https://golang.org +[graphviz]: http://graphviz.org +[groovy]: http://groovy-lang.org +[haskell]: https://haskell.org +[hy]: http://hylang.org +[icedcoffeescript]: http://maxtaco.github.io/coffee-script +[idris]: https://idris-lang.org +[inno setup]: http://jrsoftware.org/isinfo.php +[io]: http://iolanguage.org +[jolie]: http://jolie-lang.org +[julia]: https://julialang.org +[jxa]: https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html +[kotlin]: https://kotlinlang.org +[lammps]: http://lammps.sandia.gov +[langauge-scheme]: https://atom.io/packages/language-scheme +[language-1c-bsl]: https://atom.io/packages/language-1c-bsl +[language-ansible]: https://atom.io/packages/language-ansible +[language-applescript]: https://atom.io/packages/language-applescript +[language-autohotkey]: https://atom.io/packages/language-autohotkey +[language-babel]: https://atom.io/packages/language-babel +[language-batch]: https://atom.io/packages/language-batch +[language-bats]: https://atom.io/packages/language-bats +[language-crystal-actual]: https://atom.io/packages/language-crystal-actual +[language-d]: https://atom.io/packages/language-d +[language-dot]: https://atom.io/packages/language-dot +[language-elixir]: https://atom.io/packages/language-elixir +[language-erlang]: https://atom.io/packages/language-erlang +[language-fish-shell]: https://atom.io/packages/language-fish-shell +[language-forth]: https://atom.io/packages/language-forth +[language-fortran]: https://atom.io/packages/language-fortran +[language-fsharp]: https://atom.io/packages/language-fsharp +[language-gherkin]: https://atom.io/packages/language-gherkin +[language-gnuplot-atom]: https://atom.io/packages/language-gnuplot-atom +[language-groovy]: https://atom.io/packages/language-groovy +[language-haskell]: https://atom.io/packages/language-haskell +[language-hy]: https://atom.io/packages/language-hy +[language-iced-coffee-script]: https://atom.io/packages/language-iced-coffee-script +[language-idris]: https://atom.io/packages/language-idris +[language-innosetup]: https://atom.io/packages/language-innosetup +[language-javascript-jxa]: https://atom.io/packages/language-javascript-jxa +[language-jolie]: https://atom.io/packages/language-jolie +[language-julia]: https://atom.io/packages/language-julia +[language-kotlin]: https://atom.io/packages/language-kotlin +[language-lammps]: https://atom.io/packages/language-lammps +[language-latex]: https://atom.io/packages/language-latex +[language-lisp]: https://atom.io/packages/language-lisp +[language-livescript]: https://atom.io/packages/language-livescript +[language-lua]: https://atom.io/packages/language-lua +[language-matlab]: https://atom.io/packages/language-matlab +[language-mips]: https://atom.io/packages/language-mips +[language-mongodb]: https://atom.io/packages/language-mongodb +[language-moonscript]: https://atom.io/packages/language-moonscript +[language-ncl]: https://atom.io/packages/language-ncl +[language-newlisp]: https://atom.io/packages/language-newlisp +[language-nim]: https://atom.io/packages/language-nim +[language-nsis]: https://atom.io/packages/language-nsis +[language-ocaml]: https://atom.io/packages/language-ocaml +[language-oz]: https://atom.io/packages/language-oz +[language-pascal]: https://atom.io/packages/language-pascal +[language-pfm]: https://atom.io/packages/language-pfm +[language-pgsql]: https://atom.io/packages/language-pgsql +[language-powershell]: https://atom.io/packages/language-powershell +[language-prolog]: https://atom.io/packages/language-prolog +[language-purescript]: https://atom.io/packages/language-purescript +[language-r]: https://atom.io/packages/language-r +[language-racket]: https://atom.io/packages/language-racket +[language-reason]: https://atom.io/packages/language-reason +[language-renpy]: https://atom.io/packages/language-renpy +[language-robot-framework]: https://atom.io/packages/language-robot-framework +[language-rspec]: https://atom.io/packages/language-rspec +[language-rust]: https://atom.io/packages/language-rust +[language-sage]: https://atom.io/packages/language-sage +[language-scala]: https://atom.io/packages/language-scala +[language-sml]: https://atom.io/packages/language-sml +[language-stata]: https://atom.io/packages/language-stata +[language-swift]: https://atom.io/packages/language-swift +[language-tcltk]: https://atom.io/packages/language-tcltk +[language-vbscript]: https://atom.io/packages/language-vbscript +[language-x86-64-assembly]: https://atom.io/packages/language-x86-64-assembly +[latex]: https://latex-project.org +[lein-exec]: https://github.com/kumarshantanu/lein-exec#readme +[leiningen]: https://leiningen.org +[lilypond]: http://lilypond.org +[lisp]: http://lisp-lang.org +[lit-hskl]: https://wiki.haskell.org/Literate_programming#Haskell_and_literate_programming +[literate]: http://coffeescript.org/#literate +[livescript]: http://livescript.net +[lua]: https://lua.org +[make]: https://gnu.org/software/make/manual/make +[matlab]: https://mathworks.com/products/matlab +[mips]: https://imgtec.com/mips +[mongodb]: https://mongodb.com +[moonscript]: https://moonscript.org +[ncl]: https://ncl.ucar.edu +[newlisp]: http://newlisp.org +[nim]: https://nim-lang.org +[nimscript]: https://nim-lang.org/0.11.3/nims.html +[nsis]: http://nsis.sourceforge.net +[ocaml]: https://ocaml.org +[octave]: https://gnu.org/software/octave +[oz]: https://mozart.github.io +[pandoc]: https://pandoc.org +[raku]: https://raku.org +[pascal]: https://freepascal.org +[perl]: https://www.perl.org/ +[postgresql]: https://postgresql.org +[pov-ray]: http://www.povray.org/ +[powershell]: https://docs.microsoft.com/powershell +[processing-language]: https://atom.io/packages/processing-language +[processing]: https://processing.org +[prolog]: http://swi-prolog.org +[purescript]: http://purescript.org +[r]: https://r-project.org +[racket]: https://racket-lang.org +[rails]: http://rubyonrails.org +[reason]: https://reasonml.github.io +[ren'py]: https://renpy.org +[robot framework]: http://robotframework.org +[rspec]: http://rspec.info +[rust]: https://rust-lang.org +[sage]: https://sagemath.org +[sass]: http://sass-lang.com +[scala]: https://scala-lang.org +[scheme]: http://scheme-reports.org +[standard ml]: http://sml-family.org +[stata]: https://stata.com +[swift]: https://swift.org +[tcl]: https://tcl.tk +[typescript]: https://typescriptlang.org +[vbscript]: https://msdn.microsoft.com/library/t0aew7h6.aspx +[zsh]: http://zsh.org **NOTE**: Some grammars may require you to install [a custom language package](https://atom.io/search?utf8=✓&q=language). @@ -314,9 +314,9 @@ Make sure to launch Atom from the console/terminal. This gives atom all your use atom . ``` -to get it to run with the *current* directory as the default place to run scripts from. +to get it to run with the _current_ directory as the default place to run scripts from. -If you *really* wish to open atom from a launcher/icon, see [this issue for a variety of workarounds that have been suggested](https://github.com/atom-ide-community/atom-script/issues/61#issuecomment-37337827). +If you _really_ wish to open atom from a launcher/icon, see [this issue for a variety of workarounds that have been suggested](https://github.com/atom-ide-community/atom-script/issues/61#issuecomment-37337827). ## Usage @@ -349,7 +349,7 @@ clipboard, allowing you to paste it into the editor. ### Command and shortcut reference | Command | macOS | Linux/Windows | Notes | -|:---------------------------|:------------------------------------|:----------------------------|:------------------------------------------------------------------------------| +| :------------------------- | :---------------------------------- | :-------------------------- | :---------------------------------------------------------------------------- | | Script: Run | cmd-i | shift-ctrl-b | If text is selected a "Selection Based" is used instead of a "File Based" run | | Script: Run by Line Number | shift-cmd-j | shift-ctrl-j | If text is selected the line number will be the last | | Script: Run Options | shift-cmd-i | shift-ctrl-alt-o | Runs the selection or whole file with the given options | @@ -361,11 +361,11 @@ clipboard, allowing you to paste it into the editor. The following parameters will be replaced in any entry in `args` (command and program arguments). They should all be enclosed in curly brackets `{}` - * `{FILE_ACTIVE}` - Full path to the currently active file in Atom. E.g. `/home/rgbkrk/atom-script/lib/script.coffee` - * `{FILE_ACTIVE_PATH}` - Full path to the folder where the currently active file is. E.g. `/home/rgbkrk/atom-script/lib` - * `{FILE_ACTIVE_NAME}` - Full name and extension of active file. E.g., `script.coffee` - * `{FILE_ACTIVE_NAME_BASE}` - Name of active file WITHOUT extension. E.g., `script` - * `{PROJECT_PATH}` - Full path to the root of the project. This is normally the path Atom has as root. E.g `/home/rgbkrk/atom-script` +- `{FILE_ACTIVE}` - Full path to the currently active file in Atom. E.g. `/home/rgbkrk/atom-script/lib/script.coffee` +- `{FILE_ACTIVE_PATH}` - Full path to the folder where the currently active file is. E.g. `/home/rgbkrk/atom-script/lib` +- `{FILE_ACTIVE_NAME}` - Full name and extension of active file. E.g., `script.coffee` +- `{FILE_ACTIVE_NAME_BASE}` - Name of active file WITHOUT extension. E.g., `script` +- `{PROJECT_PATH}` - Full path to the root of the project. This is normally the path Atom has as root. E.g `/home/rgbkrk/atom-script` Parameters are compatible with `atom-build` package. diff --git a/examples/greeter.ts b/examples/greeter.ts index fc9c7e73..7e44df43 100644 --- a/examples/greeter.ts +++ b/examples/greeter.ts @@ -1,10 +1,10 @@ class Greeter { - constructor(public greeting: string) { } + constructor(public greeting: string) {} greet() { - return this.greeting; + return this.greeting } -}; +} -var greeter = new Greeter("Hello, world!"); +var greeter = new Greeter("Hello, world!") -console.log(greeter.greet()); +console.log(greeter.greet()) diff --git a/examples/hello.html b/examples/hello.html index ca05d70d..d201c78b 100644 --- a/examples/hello.html +++ b/examples/hello.html @@ -1,10 +1,8 @@ - + +

Atom Script

-

Atom Script

- -

Hello World

- - +

Hello World

+ diff --git a/examples/jxa.js b/examples/jxa.js index 020d9608..41232cdc 100755 --- a/examples/jxa.js +++ b/examples/jxa.js @@ -1,7 +1,7 @@ #!/usr/bin/env osascript -l JavaScript -test = Application.currentApplication(); +test = Application.currentApplication() -test.includeStandardAdditions = true; +test.includeStandardAdditions = true -test.displayDialog('Hello world'); +test.displayDialog("Hello world") diff --git a/examples/longrun.js b/examples/longrun.js index 83f6109a..7be94bc7 100644 --- a/examples/longrun.js +++ b/examples/longrun.js @@ -1,11 +1,11 @@ -let i = 1; +let i = 1 const run = setInterval(() => { - console.log(`line ${i}`); - i++; + console.log(`line ${i}`) + i++ if (i === 20) { - stop(); + stop() } -}, 1000); +}, 1000) function stop() { - clearInterval(run); + clearInterval(run) } diff --git a/examples/longrun.ts b/examples/longrun.ts index a1bd7015..23e5dfc6 100644 --- a/examples/longrun.ts +++ b/examples/longrun.ts @@ -1,11 +1,11 @@ -var i: number = 1; -var run = setInterval(function() { - console.log("line " + i); - i++; +var i: number = 1 +var run = setInterval(function () { + console.log("line " + i) + i++ if (i === 20) { - stop(); + stop() } -}, 1000); +}, 1000) function stop(): void { - clearInterval(run); + clearInterval(run) } diff --git a/examples/modern.js b/examples/modern.js index a94ed12a..f7bcff58 100644 --- a/examples/modern.js +++ b/examples/modern.js @@ -1,8 +1,8 @@ -import {exec} from 'child_process' +import { exec } from "child_process" -const timeout = s => new Promise(resolve => setTimeout(resolve, s * 1000)) // ms +const timeout = (s) => new Promise((resolve) => setTimeout(resolve, s * 1000)) // ms -const sleep = async(s, message) => { +const sleep = async (s, message) => { console.log("Awaiting Promise…") // This selected line should run. await timeout(s) return console.log(message) diff --git a/examples/mongodb.js b/examples/mongodb.js index 009072f6..f1a18139 100644 --- a/examples/mongodb.js +++ b/examples/mongodb.js @@ -1 +1 @@ -print('Hello world!'); +print("Hello world!") diff --git a/examples/stylish-css.scss b/examples/stylish-css.scss index f935a2e4..7d34a1e3 100644 --- a/examples/stylish-css.scss +++ b/examples/stylish-css.scss @@ -1,4 +1,4 @@ -$font-stack: Helvetica, sans-serif; +$font-stack: Helvetica, sans-serif; $primary-color: #33dd3d; body { diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index 2396c079..ba4d14a9 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -1,17 +1,17 @@ -'use babel'; +"use babel" -import { Emitter } from 'atom'; +import { Emitter } from "atom" -import CodeContext from './code-context'; -import grammarMap from './grammars'; +import CodeContext from "./code-context" +import grammarMap from "./grammars" export default class CodeContextBuilder { constructor(emitter = new Emitter()) { - this.emitter = emitter; + this.emitter = emitter } destroy() { - this.emitter.dispose(); + this.emitter.dispose() } // Public: Builds code context for specified argType @@ -24,106 +24,112 @@ export default class CodeContextBuilder { // * "File Based" // // returns a {CodeContext} object - buildCodeContext(editor, argType = 'Selection Based') { - if (!editor) {return null;} + buildCodeContext(editor, argType = "Selection Based") { + if (!editor) { + return null + } - const codeContext = this.initCodeContext(editor); + const codeContext = this.initCodeContext(editor) - codeContext.argType = argType; + codeContext.argType = argType - if (argType === 'Line Number Based') { - editor.save(); + if (argType === "Line Number Based") { + editor.save() } else if (codeContext.selection.isEmpty() && codeContext.filepath) { - codeContext.argType = 'File Based'; - if (editor && editor.isModified()) {editor.save();} + codeContext.argType = "File Based" + if (editor && editor.isModified()) { + editor.save() + } } // Selection and Line Number Based runs both benefit from knowing the current line // number - if (argType !== 'File Based') { - const cursor = editor.getLastCursor(); - codeContext.lineNumber = cursor.getScreenRow() + 1; + if (argType !== "File Based") { + const cursor = editor.getLastCursor() + codeContext.lineNumber = cursor.getScreenRow() + 1 } - return codeContext; + return codeContext } initCodeContext(editor) { - const filename = editor.getTitle(); - const filepath = editor.getPath(); - const selection = editor.getLastSelection(); - const ignoreSelection = atom.config.get('script.ignoreSelection'); + const filename = editor.getTitle() + const filepath = editor.getPath() + const selection = editor.getLastSelection() + const ignoreSelection = atom.config.get("script.ignoreSelection") // If the selection was empty or if ignore selection is on, then "select" ALL // of the text // This allows us to run on new files - let textSource; + let textSource if (selection.isEmpty() || ignoreSelection) { - textSource = editor; + textSource = editor } else { - textSource = selection; + textSource = selection } - const codeContext = new CodeContext(filename, filepath, textSource); - codeContext.selection = selection; - codeContext.shebang = getShebang(editor); + const codeContext = new CodeContext(filename, filepath, textSource) + codeContext.selection = selection + codeContext.shebang = getShebang(editor) - const lang = getLang(editor); + const lang = getLang(editor) if (this.validateLang(lang)) { - codeContext.lang = lang; + codeContext.lang = lang } - return codeContext; - } + return codeContext + } // eslint-disable-next-line class-methods-use-this - /** @deprecated use {getShebang} function */ // eslint-disable-next-line class-methods-use-this - getShebang(arg) { - return getShebang(arg); - } + /** @deprecated use {getShebang} function */ getShebang(arg) { + return getShebang(arg) + } // eslint-disable-next-line class-methods-use-this - /** @deprecated use {getLang} function */ // eslint-disable-next-line class-methods-use-this - getLang(arg) { - return getLang(arg); + /** @deprecated use {getLang} function */ getLang(arg) { + return getLang(arg) } validateLang(lang) { - let valid = true; + let valid = true // Determine if no language is selected. - if (lang === 'Null Grammar' || lang === 'Plain Text') { - this.emitter.emit('did-not-specify-language'); - valid = false; + if (lang === "Null Grammar" || lang === "Plain Text") { + this.emitter.emit("did-not-specify-language") + valid = false - // Provide them a dialog to submit an issue on GH, prepopulated with their - // language of choice. + // Provide them a dialog to submit an issue on GH, prepopulated with their + // language of choice. } else if (!(lang in grammarMap)) { - this.emitter.emit('did-not-support-language', { lang }); - valid = false; + this.emitter.emit("did-not-support-language", { lang }) + valid = false } - return valid; + return valid } onDidNotSpecifyLanguage(callback) { - return this.emitter.on('did-not-specify-language', callback); + return this.emitter.on("did-not-specify-language", callback) } onDidNotSupportLanguage(callback) { - return this.emitter.on('did-not-support-language', callback); + return this.emitter.on("did-not-support-language", callback) } } export function getShebang(editor) { - if (process.platform === 'win32') {return null;} - const text = editor.getText(); - const lines = text.split('\n'); - const firstLine = lines[0]; - if (!firstLine.match(/^#!/)) {return null;} + if (process.platform === "win32") { + return null + } + const text = editor.getText() + const lines = text.split("\n") + const firstLine = lines[0] + if (!firstLine.match(/^#!/)) { + return null + } - return firstLine.replace(/^#!\s*/, ''); + return firstLine.replace(/^#!\s*/, "") } export function getLang(editor) { - return editor.getGrammar().name; + return editor.getGrammar().name } diff --git a/lib/code-context.js b/lib/code-context.js index dd4debe3..7d3523c9 100644 --- a/lib/code-context.js +++ b/lib/code-context.js @@ -1,4 +1,4 @@ -'use babel'; +"use babel" export default class CodeContext { // Public: Initializes a new {CodeContext} object for the given file/line @@ -9,11 +9,11 @@ export default class CodeContext { // // Returns a newly created {CodeContext} object. constructor(filename, filepath, textSource = null) { - this.lineNumber = null; - this.shebang = null; - this.filename = filename; - this.filepath = filepath; - this.textSource = textSource; + this.lineNumber = null + this.shebang = null + this.filename = filename + this.filepath = filepath + this.textSource = textSource } // Public: Creates a {String} representation of the file and line number @@ -22,15 +22,17 @@ export default class CodeContext { // // Returns the "file colon line" {String}. fileColonLine(fullPath = true) { - let fileColonLine; + let fileColonLine if (fullPath) { - fileColonLine = this.filepath; + fileColonLine = this.filepath } else { - fileColonLine = this.filename; + fileColonLine = this.filename } - if (!this.lineNumber) { return fileColonLine; } - return `${fileColonLine}:${this.lineNumber}`; + if (!this.lineNumber) { + return fileColonLine + } + return `${fileColonLine}:${this.lineNumber}` } // Public: Retrieves the text from whatever source was given on initialization @@ -39,22 +41,26 @@ export default class CodeContext { // // Returns the code selection {String} getCode(prependNewlines = true) { - const code = this.textSource ? this.textSource.getText() : null; - if (!prependNewlines || !this.lineNumber) {return code;} + const code = this.textSource ? this.textSource.getText() : null + if (!prependNewlines || !this.lineNumber) { + return code + } - const newlineCount = Number(this.lineNumber); - const newlines = Array(newlineCount).join('\n'); - return `${newlines}${code}`; + const newlineCount = Number(this.lineNumber) + const newlines = Array(newlineCount).join("\n") + return `${newlines}${code}` } // Public: Retrieves the command name from @shebang // // Returns the {String} name of the command or {undefined} if not applicable. shebangCommand() { - const sections = this.shebangSections(); - if (!sections) {return null;} + const sections = this.shebangSections() + if (!sections) { + return null + } - return sections[0]; + return sections[0] } // Public: Retrieves the command arguments (such as flags or arguments to @@ -62,10 +68,12 @@ export default class CodeContext { // // Returns the {String} name of the command or {undefined} if not applicable. shebangCommandArgs() { - const sections = this.shebangSections(); - if (!sections) { return []; } + const sections = this.shebangSections() + if (!sections) { + return [] + } - return sections.slice(1, sections.length); + return sections.slice(1, sections.length) } // Public: Splits the shebang string by spaces to extra the command and @@ -73,6 +81,6 @@ export default class CodeContext { // // Returns the {String} name of the command or {undefined} if not applicable. shebangSections() { - return this.shebang ? this.shebang.split(' ') : null; + return this.shebang ? this.shebang.split(" ") : null } } diff --git a/lib/command-context.js b/lib/command-context.js index abb6169f..1163b34b 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -1,75 +1,78 @@ -'use babel'; +"use babel" -import grammarMap from './grammars'; +import grammarMap from "./grammars" export default class CommandContext { constructor() { - this.command = null; - this.workingDirectory = null; - this.args = []; - this.options = {}; + this.command = null + this.workingDirectory = null + this.args = [] + this.options = {} } static build(runtime, runOptions, codeContext) { - const commandContext = new CommandContext(); - commandContext.options = runOptions; - let buildArgsArray; + const commandContext = new CommandContext() + commandContext.options = runOptions + let buildArgsArray try { if (!runOptions.cmd) { // Precondition: lang? and lang of grammarMap - commandContext.command = codeContext.shebangCommand() - || grammarMap[codeContext.lang][codeContext.argType].command; + commandContext.command = + codeContext.shebangCommand() || grammarMap[codeContext.lang][codeContext.argType].command } else { - commandContext.command = runOptions.cmd; + commandContext.command = runOptions.cmd } - buildArgsArray = grammarMap[codeContext.lang][codeContext.argType].args; + buildArgsArray = grammarMap[codeContext.lang][codeContext.argType].args } catch (error) { - runtime.modeNotSupported(codeContext.argType, codeContext.lang); - return false; + runtime.modeNotSupported(codeContext.argType, codeContext.lang) + return false } try { - commandContext.args = buildArgsArray(codeContext); + commandContext.args = buildArgsArray(codeContext) } catch (errorSendByArgs) { - runtime.didNotBuildArgs(errorSendByArgs); - return false; + runtime.didNotBuildArgs(errorSendByArgs) + return false } if (!runOptions.workingDirectory) { // Precondition: lang? and lang of grammarMap - commandContext.workingDirectory = grammarMap[codeContext.lang][codeContext.argType].workingDirectory || ''; + commandContext.workingDirectory = grammarMap[codeContext.lang][codeContext.argType].workingDirectory || "" } else { - commandContext.workingDirectory = runOptions.workingDirectory; + commandContext.workingDirectory = runOptions.workingDirectory } // Return setup information - return commandContext; - } + return commandContext + } // eslint-disable-next-line class-methods-use-this - /** @deprecated use {quoteArguments} function */ // eslint-disable-next-line class-methods-use-this - quoteArguments(args) { + /** @deprecated use {quoteArguments} function */ quoteArguments(args) { return quoteArguments(args) } getRepresentation() { - if (!this.command || !this.args.length) {return '';} + if (!this.command || !this.args.length) { + return "" + } // command arguments - const commandArgs = this.options.cmdArgs ? quoteArguments(this.options.cmdArgs).join(' ') : ''; + const commandArgs = this.options.cmdArgs ? quoteArguments(this.options.cmdArgs).join(" ") : "" // script arguments - const args = this.args.length ? quoteArguments(this.args).join(' ') : ''; - const scriptArgs = this.options.scriptArgs ? quoteArguments(this.options.scriptArgs).join(' ') : ''; + const args = this.args.length ? quoteArguments(this.args).join(" ") : "" + const scriptArgs = this.options.scriptArgs ? quoteArguments(this.options.scriptArgs).join(" ") : "" - return this.command.trim() - + (commandArgs ? ` ${commandArgs}` : '') - + (args ? ` ${args}` : '') - + (scriptArgs ? ` ${scriptArgs}` : ''); + return ( + this.command.trim() + + (commandArgs ? ` ${commandArgs}` : "") + + (args ? ` ${args}` : "") + + (scriptArgs ? ` ${scriptArgs}` : "") + ) } } export function quoteArguments(args) { - return args.map((arg) => (arg.trim().indexOf(' ') === -1 ? arg.trim() : `'${arg}'`)); + return args.map((arg) => (arg.trim().indexOf(" ") === -1 ? arg.trim() : `'${arg}'`)) } diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 53ea29f5..866f0194 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -1,35 +1,35 @@ -'use babel'; +"use babel" // Require some libs used for creating temporary files -import os from 'os'; -import fs from 'fs'; -import path from 'path'; -import { v1 as uuidv1 } from 'uuid'; +import os from "os" +import fs from "fs" +import path from "path" +import { v1 as uuidv1 } from "uuid" // Public: GrammarUtils - utilities for determining how to run code const GrammarUtils = { - tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), + tempFilesDir: path.join(os.tmpdir(), "atom_script_tempfiles"), // Public: Create a temporary file with the provided code // // * `code` A {String} containing some code // // Returns the {String} filepath of the new file - createTempFileWithCode(code, extension = '') { + createTempFileWithCode(code, extension = "") { try { if (!fs.existsSync(this.tempFilesDir)) { - fs.mkdirSync(this.tempFilesDir); + fs.mkdirSync(this.tempFilesDir) } - const tempFilePath = this.tempFilesDir + path.sep + uuidv1() + extension; + const tempFilePath = this.tempFilesDir + path.sep + uuidv1() + extension - const file = fs.openSync(tempFilePath, 'w'); - fs.writeSync(file, code); - fs.closeSync(file); + const file = fs.openSync(tempFilePath, "w") + fs.writeSync(file, code) + fs.closeSync(file) - return tempFilePath; + return tempFilePath } catch (error) { - throw new Error(`Error while creating temporary file (${error})`); + throw new Error(`Error while creating temporary file (${error})`) } }, @@ -38,72 +38,72 @@ const GrammarUtils = { deleteTempFiles() { try { if (fs.existsSync(this.tempFilesDir)) { - const files = fs.readdirSync(this.tempFilesDir); + const files = fs.readdirSync(this.tempFilesDir) if (files.length) { - files.forEach((file) => fs.unlinkSync(this.tempFilesDir + path.sep + file)); + files.forEach((file) => fs.unlinkSync(this.tempFilesDir + path.sep + file)) } - return fs.rmdirSync(this.tempFilesDir); + return fs.rmdirSync(this.tempFilesDir) } - return null; + return null } catch (error) { - throw new Error(`Error while deleting temporary files (${error})`); + throw new Error(`Error while deleting temporary files (${error})`) } }, // Public: Returns cmd or bash, depending on the current OS - command: os.platform() === 'win32' ? 'cmd' : 'bash', + command: os.platform() === "win32" ? "cmd" : "bash", // Public: Format args for cmd or bash, depending on the current OS formatArgs(command) { - if (os.platform() === 'win32') { - return [`/c ${command.replace(/["']/g, '')}`]; + if (os.platform() === "win32") { + return [`/c ${command.replace(/["']/g, "")}`] } - return ['-c', command]; + return ["-c", command] }, // Public: Get the Java helper object // // Returns an {Object} which assists in preparing java + javac statements - Java: require('./grammar-utils/java'), + Java: require("./grammar-utils/java"), // Public: Get the Lisp helper object // // Returns an {Object} which assists in splitting Lisp statements. - Lisp: require('./grammar-utils/lisp'), + Lisp: require("./grammar-utils/lisp"), // Public: Get the MATLAB helper object // // Returns an {Object} which assists in splitting MATLAB statements. - MATLAB: require('./grammar-utils/matlab'), + MATLAB: require("./grammar-utils/matlab"), // Public: Get the OperatingSystem helper object // // Returns an {Object} which assists in writing OS dependent code. - OperatingSystem: require('./grammar-utils/operating-system'), + OperatingSystem: require("./grammar-utils/operating-system"), // Public: Get the R helper object // // Returns an {Object} which assists in creating temp files containing R code - R: require('./grammar-utils/R'), + R: require("./grammar-utils/R"), // Public: Get the Perl helper object // // Returns an {Object} which assists in creating temp files containing Perl code - Perl: require('./grammar-utils/perl'), + Perl: require("./grammar-utils/perl"), // Public: Get the PHP helper object // // Returns an {Object} which assists in creating temp files containing PHP code - PHP: require('./grammar-utils/php'), + PHP: require("./grammar-utils/php"), // Public: Get the Nim helper object // // Returns an {Object} which assists in selecting the right project file for Nim code - Nim: require('./grammar-utils/nim'), + Nim: require("./grammar-utils/nim"), // Public: Get the D helper object // // Returns an {Object} which assists in creating temp files containing D code - D: require('./grammar-utils/d'), -}; -export default GrammarUtils; + D: require("./grammar-utils/d"), +} +export default GrammarUtils diff --git a/lib/grammar-utils/R.js b/lib/grammar-utils/R.js index d47d5075..99cfe0e4 100644 --- a/lib/grammar-utils/R.js +++ b/lib/grammar-utils/R.js @@ -1,4 +1,4 @@ -'use babel'; +"use babel" // Public: GrammarUtils.R - a module which assist the creation of R temporary files const GrammarUtilsR = { @@ -8,7 +8,7 @@ const GrammarUtilsR = { // // Returns the {String} filepath of the new file createTempFileWithCode(code) { - return module.parent.exports.createTempFileWithCode(code); + return module.parent.exports.createTempFileWithCode(code) }, -}; -export default GrammarUtilsR; +} +export default GrammarUtilsR diff --git a/lib/grammar-utils/d.js b/lib/grammar-utils/d.js index 7e54857a..a59eafed 100644 --- a/lib/grammar-utils/d.js +++ b/lib/grammar-utils/d.js @@ -1,14 +1,14 @@ -'use babel'; +"use babel" // Require some libs used for creating temporary files -import os from 'os'; -import fs from 'fs'; -import path from 'path'; -import { v1 as uuidv1 } from 'uuid'; +import os from "os" +import fs from "fs" +import path from "path" +import { v1 as uuidv1 } from "uuid" // Public: GrammarUtils.D - a module which assist the creation of D temporary files const GrammarUtilsD = { - tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), + tempFilesDir: path.join(os.tmpdir(), "atom_script_tempfiles"), // Public: Create a temporary file with the provided D code // @@ -17,18 +17,20 @@ const GrammarUtilsD = { // Returns the {String} filepath of the new file createTempFileWithCode(code) { try { - if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } + if (!fs.existsSync(this.tempFilesDir)) { + fs.mkdirSync(this.tempFilesDir) + } - const tempFilePath = `${this.tempFilesDir + path.sep}m${uuidv1().split('-').join('_')}.d`; + const tempFilePath = `${this.tempFilesDir + path.sep}m${uuidv1().split("-").join("_")}.d` - const file = fs.openSync(tempFilePath, 'w'); - fs.writeSync(file, code); - fs.closeSync(file); + const file = fs.openSync(tempFilePath, "w") + fs.writeSync(file, code) + fs.closeSync(file) - return tempFilePath; + return tempFilePath } catch (error) { - throw new Error(`Error while creating temporary file (${error})`); + throw new Error(`Error while creating temporary file (${error})`) } }, -}; -export default GrammarUtilsD; +} +export default GrammarUtilsD diff --git a/lib/grammar-utils/java.js b/lib/grammar-utils/java.js index bbebfb74..7708360d 100644 --- a/lib/grammar-utils/java.js +++ b/lib/grammar-utils/java.js @@ -1,8 +1,8 @@ -'use babel'; +"use babel" // Java script preparation functions -import os from 'os'; -import path from 'path'; +import os from "os" +import path from "path" const GrammarUtilsJava = { // Public: Get atom temp file directory @@ -16,7 +16,7 @@ const GrammarUtilsJava = { // // Returns {String} containing class name of file getClassName(context) { - return context.filename.replace(/\.java$/, ''); + return context.filename.replace(/\.java$/, "") }, // Public: Get project path of context @@ -25,8 +25,8 @@ const GrammarUtilsJava = { // // Returns {String} containing the matching project path getProjectPath(context) { - const projectPaths = atom.project.getPaths(); - return projectPaths.find((projectPath) => context.filepath.includes(projectPath)); + const projectPaths = atom.project.getPaths() + return projectPaths.find((projectPath) => context.filepath.includes(projectPath)) }, // Public: Get package of file in context @@ -35,16 +35,16 @@ const GrammarUtilsJava = { // // Returns {String} containing class of contextual file getClassPackage(context) { - const projectPath = module.exports.getProjectPath(context); - const projectRemoved = (context.filepath.replace(`${projectPath}/`, '')); - const filenameRemoved = projectRemoved.replace(`/${context.filename}`, ''); + const projectPath = module.exports.getProjectPath(context) + const projectRemoved = context.filepath.replace(`${projectPath}/`, "") + const filenameRemoved = projectRemoved.replace(`/${context.filename}`, "") // File is in root of src directory - no package if (filenameRemoved === projectRemoved) { - return ''; + return "" } - return `${filenameRemoved}.`; + return `${filenameRemoved}.` }, -}; -export default GrammarUtilsJava; +} +export default GrammarUtilsJava diff --git a/lib/grammar-utils/lisp.js b/lib/grammar-utils/lisp.js index 209a02ad..f70d1737 100644 --- a/lib/grammar-utils/lisp.js +++ b/lib/grammar-utils/lisp.js @@ -1,6 +1,6 @@ -'use babel'; +"use babel" -import _ from 'underscore'; +import _ from "underscore" // Public: GrammarUtils.Lisp - a module which exposes the ability to evaluate // code @@ -10,29 +10,33 @@ const GrammarUtilsLisp = { // Returns an {Array} of executable statements. splitStatements(code) { const iterator = (statements, currentCharacter) => { - if (!this.parenDepth) {this.parenDepth = 0;} - if (currentCharacter === '(') { - this.parenDepth += 1; - this.inStatement = true; - } else if (currentCharacter === ')') { - this.parenDepth -= 1; + if (!this.parenDepth) { + this.parenDepth = 0 + } + if (currentCharacter === "(") { + this.parenDepth += 1 + this.inStatement = true + } else if (currentCharacter === ")") { + this.parenDepth -= 1 } - if (!this.statement) {this.statement = '';} - this.statement += currentCharacter; + if (!this.statement) { + this.statement = "" + } + this.statement += currentCharacter if (this.parenDepth === 0 && this.inStatement) { - this.inStatement = false; - statements.push(this.statement.trim()); - this.statement = ''; + this.inStatement = false + statements.push(this.statement.trim()) + this.statement = "" } - return statements; - }; + return statements + } - const statements = _.reduce(code.trim(), iterator, [], {}); + const statements = _.reduce(code.trim(), iterator, [], {}) - return statements; + return statements }, -}; -export default GrammarUtilsLisp; +} +export default GrammarUtilsLisp diff --git a/lib/grammar-utils/matlab.js b/lib/grammar-utils/matlab.js index fc809c5a..d57b4462 100644 --- a/lib/grammar-utils/matlab.js +++ b/lib/grammar-utils/matlab.js @@ -1,14 +1,14 @@ -'use babel'; +"use babel" // Require some libs used for creating temporary files -import os from 'os'; -import fs from 'fs'; -import path from 'path'; -import { v1 as uuidv1 } from 'uuid'; +import os from "os" +import fs from "fs" +import path from "path" +import { v1 as uuidv1 } from "uuid" // Public: GrammarUtils.MATLAB - a module which assist the creation of MATLAB temporary files const GrammarUtilsMatlab = { - tempFilesDir: path.join(os.tmpdir(), 'atom_script_tempfiles'), + tempFilesDir: path.join(os.tmpdir(), "atom_script_tempfiles"), // Public: Create a temporary file with the provided MATLAB code // @@ -17,18 +17,20 @@ const GrammarUtilsMatlab = { // Returns the {String} filepath of the new file createTempFileWithCode(code) { try { - if (!fs.existsSync(this.tempFilesDir)) { fs.mkdirSync(this.tempFilesDir); } + if (!fs.existsSync(this.tempFilesDir)) { + fs.mkdirSync(this.tempFilesDir) + } - const tempFilePath = `${this.tempFilesDir + path.sep}m${uuidv1().split('-').join('_')}.m`; + const tempFilePath = `${this.tempFilesDir + path.sep}m${uuidv1().split("-").join("_")}.m` - const file = fs.openSync(tempFilePath, 'w'); - fs.writeSync(file, code); - fs.closeSync(file); + const file = fs.openSync(tempFilePath, "w") + fs.writeSync(file, code) + fs.closeSync(file) - return tempFilePath; + return tempFilePath } catch (error) { - throw new Error(`Error while creating temporary file (${error})`); + throw new Error(`Error while creating temporary file (${error})`) } }, -}; -export default GrammarUtilsMatlab; +} +export default GrammarUtilsMatlab diff --git a/lib/grammar-utils/nim.js b/lib/grammar-utils/nim.js index d812c06b..6858fd29 100644 --- a/lib/grammar-utils/nim.js +++ b/lib/grammar-utils/nim.js @@ -1,7 +1,7 @@ -'use babel'; +"use babel" -import fs from 'fs'; -import path from 'path'; +import fs from "fs" +import path from "path" // Public: GrammarUtils.Nim - a module which selects the right file to run for Nim projects const GrammarUtilsNim = { @@ -12,28 +12,26 @@ const GrammarUtilsNim = { // Returns the {String} filepath of file to run projectDir(editorfile) { - return path.dirname(editorfile); + return path.dirname(editorfile) }, findNimProjectFile(editorfile) { - if (path.extname(editorfile) === '.nims') { + if (path.extname(editorfile) === ".nims") { // if we have an .nims file - const tfile = editorfile.slice(0, -1); + const tfile = editorfile.slice(0, -1) if (fs.existsSync(tfile)) { // it has a corresponding .nim file. so thats a config file. // we run the .nim file instead. - return path.basename(tfile); + return path.basename(tfile) } // it has no corresponding .nim file, it is a standalone script - return path.basename(editorfile); + return path.basename(editorfile) } // check if we are running on a file with config - if (fs.existsSync(`${editorfile}s`) - || fs.existsSync(`${editorfile}.cfg`) - || fs.existsSync(`${editorfile}cfg`)) { - return path.basename(editorfile); + if (fs.existsSync(`${editorfile}s`) || fs.existsSync(`${editorfile}.cfg`) || fs.existsSync(`${editorfile}cfg`)) { + return path.basename(editorfile) } // assume we want to run a project @@ -41,23 +39,23 @@ const GrammarUtilsNim = { // a config file with the same name and // run this instead of the one in the editor // tab - const filepath = path.dirname(editorfile); - const files = fs.readdirSync(filepath); - files.sort(); + const filepath = path.dirname(editorfile) + const files = fs.readdirSync(filepath) + files.sort() for (const file of files) { - const name = `${filepath}/${file}`; + const name = `${filepath}/${file}` if (fs.statSync(name).isFile()) { - if (path.extname(name) === '.nims' - || path.extname(name) === '.nimcgf' - || path.extname(name) === '.cfg') { - const tfile = name.slice(0, -1); - if (fs.existsSync(tfile)) {return path.basename(tfile);} + if (path.extname(name) === ".nims" || path.extname(name) === ".nimcgf" || path.extname(name) === ".cfg") { + const tfile = name.slice(0, -1) + if (fs.existsSync(tfile)) { + return path.basename(tfile) + } } } } // just run what we got - return path.basename(editorfile); + return path.basename(editorfile) }, -}; -export default GrammarUtilsNim; +} +export default GrammarUtilsNim diff --git a/lib/grammar-utils/operating-system.js b/lib/grammar-utils/operating-system.js index 3d21b911..8f742a33 100644 --- a/lib/grammar-utils/operating-system.js +++ b/lib/grammar-utils/operating-system.js @@ -1,32 +1,32 @@ -'use babel'; +"use babel" -import os from 'os'; +import os from "os" // Public: GrammarUtils.OperatingSystem - a module which exposes different // platform related helper functions. const GrammarUtilsOperatingSystem = { isDarwin() { - return this.platform() === 'darwin'; + return this.platform() === "darwin" }, isWindows() { - return this.platform() === 'win32'; + return this.platform() === "win32" }, isLinux() { - return this.platform() === 'linux'; + return this.platform() === "linux" }, platform() { - return os.platform(); + return os.platform() }, architecture() { - return os.arch(); + return os.arch() }, release() { - return os.release(); + return os.release() }, -}; -export default GrammarUtilsOperatingSystem; +} +export default GrammarUtilsOperatingSystem diff --git a/lib/grammar-utils/perl.js b/lib/grammar-utils/perl.js index 40f6756b..a000c3bb 100644 --- a/lib/grammar-utils/perl.js +++ b/lib/grammar-utils/perl.js @@ -1,4 +1,4 @@ -'use babel'; +"use babel" // Public: GrammarUtils.Perl - a module which assist the creation of Perl temporary files const GrammarUtilsPerl = { @@ -8,7 +8,7 @@ const GrammarUtilsPerl = { // // Returns the {String} filepath of the new file createTempFileWithCode(code) { - return module.parent.exports.createTempFileWithCode(code); + return module.parent.exports.createTempFileWithCode(code) }, -}; -export default GrammarUtilsPerl; +} +export default GrammarUtilsPerl diff --git a/lib/grammar-utils/php.js b/lib/grammar-utils/php.js index 8484eb1d..3b57b321 100644 --- a/lib/grammar-utils/php.js +++ b/lib/grammar-utils/php.js @@ -1,4 +1,4 @@ -'use babel'; +"use babel" // Public: GrammarUtils.PHP - a module which assist the creation of PHP temporary files const GrammarUtilsPhp = { @@ -8,8 +8,10 @@ const GrammarUtilsPhp = { // // Returns the {String} filepath of the new file createTempFileWithCode(code) { - if (!/^\s*<\?php/.test(code)) { code = ` { - const cmd = `'${babel}' --filename '${filepath}' --config-file ${babelConfig} < '${filepath}'| node`; - return GrammarUtils.formatArgs(cmd); -}; + const cmd = `'${babel}' --filename '${filepath}' --config-file ${babelConfig} < '${filepath}'| node` + return GrammarUtils.formatArgs(cmd) +} export const Dart = { - 'Selection Based': { - command: 'dart', + "Selection Based": { + command: "dart", args: (context) => { - const code = context.getCode(); - const tmpFile = GrammarUtils.createTempFileWithCode(code, '.dart'); - return [tmpFile]; + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dart") + return [tmpFile] }, }, - 'File Based': { - command: 'dart', + "File Based": { + command: "dart", args: ({ filepath }) => [filepath], }, -}; +} export const JavaScript = { - 'Selection Based': { + "Selection Based": { command: GrammarUtils.command, args: (context) => { - const code = context.getCode(); - const filepath = GrammarUtils.createTempFileWithCode(code, '.js'); - return args({ filepath }); + const code = context.getCode() + const filepath = GrammarUtils.createTempFileWithCode(code, ".js") + return args({ filepath }) }, }, - 'File Based': { command: GrammarUtils.command, args }, -}; + "File Based": { command: GrammarUtils.command, args }, +} // TODO respect ES6 exporting -exports['Babel ES6 JavaScript'] = JavaScript; -exports['JavaScript with JSX'] = JavaScript; +exports["Babel ES6 JavaScript"] = JavaScript +exports["JavaScript with JSX"] = JavaScript -exports['JavaScript for Automation (JXA)'] = { - 'Selection Based': { - command: 'osascript', - args: (context) => ['-l', 'JavaScript', '-e', context.getCode()], +exports["JavaScript for Automation (JXA)"] = { + "Selection Based": { + command: "osascript", + args: (context) => ["-l", "JavaScript", "-e", context.getCode()], }, - 'File Based': { - command: 'osascript', - args: ({ filepath }) => ['-l', 'JavaScript', filepath], + "File Based": { + command: "osascript", + args: ({ filepath }) => ["-l", "JavaScript", filepath], }, -}; +} export const TypeScript = { - 'Selection Based': { - command: 'ts-node', - args: (context) => ['-e', context.getCode()], + "Selection Based": { + command: "ts-node", + args: (context) => ["-e", context.getCode()], }, - 'File Based': { - command: 'ts-node', + "File Based": { + command: "ts-node", args: ({ filepath }) => [filepath], }, -}; +} diff --git a/lib/header-view.js b/lib/header-view.js index 5ce95959..434b61b1 100644 --- a/lib/header-view.js +++ b/lib/header-view.js @@ -1,23 +1,28 @@ -'use babel'; +"use babel" -import { View } from 'atom-space-pen-views-plus'; +import { View } from "atom-space-pen-views-plus" export default class HeaderView extends View { static content() { - return this.div({ class: 'header-view' }, () => { - this.span({ class: 'heading-title', outlet: 'title' }); - return this.span({ class: 'heading-status', outlet: 'status' }); - }); + return this.div({ class: "header-view" }, () => { + this.span({ class: "heading-title", outlet: "title" }) + return this.span({ class: "heading-status", outlet: "status" }) + }) } setStatus(status) { - this.status.removeClass('icon-alert icon-check icon-hourglass icon-stop'); + this.status.removeClass("icon-alert icon-check icon-hourglass icon-stop") switch (status) { - case 'start': return this.status.addClass('icon-hourglass'); - case 'stop': return this.status.addClass('icon-check'); - case 'kill': return this.status.addClass('icon-stop'); - case 'err': return this.status.addClass('icon-alert'); - default: return null; + case "start": + return this.status.addClass("icon-hourglass") + case "stop": + return this.status.addClass("icon-check") + case "kill": + return this.status.addClass("icon-stop") + case "err": + return this.status.addClass("icon-alert") + default: + return null } } } diff --git a/lib/link-paths.js b/lib/link-paths.js index 8917dd7a..8cf023dc 100644 --- a/lib/link-paths.js +++ b/lib/link-paths.js @@ -1,25 +1,26 @@ -'use babel'; +"use babel" -let linkPaths; -const regex = /((?:\w:)?\/?(?:[\w.-]+\/)*[\w.-]+):(\d+)(?::(\d+))?/g; +let linkPaths +const regex = /((?:\w:)?\/?(?:[\w.-]+\/)*[\w.-]+):(\d+)(?::(\d+))?/g // ((?:\w:)?/? # Prefix of the path either '/' or 'C:/' (optional) // (?:[\w.-]+/)*[\w.-]+) # The path of the file some/file/path.ext // :(\d+) # Line number prefixed with a colon // (?::(\d+))? # Column number prefixed with a colon (optional) -const template = '$&'; +const template = '$&' -export default linkPaths = (lines) => lines.replace(regex, template); +export default linkPaths = (lines) => lines.replace(regex, template) -linkPaths.listen = (parentView) => parentView.on('click', '.-linked-path', function () { - const el = this; - let { path, line, column } = el.dataset; - line = Number(line) - 1; - // column number is optional - column = column ? Number(column) - 1 : 0; +linkPaths.listen = (parentView) => + parentView.on("click", ".-linked-path", function () { + const el = this + let { path, line, column } = el.dataset + line = Number(line) - 1 + // column number is optional + column = column ? Number(column) - 1 : 0 - atom.workspace.open(path, { - initialLine: line, - initialColumn: column, - }); -}); + atom.workspace.open(path, { + initialLine: line, + initialColumn: column, + }) + }) diff --git a/lib/runner.js b/lib/runner.js index 91bc12e4..204da4fc 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -1,8 +1,8 @@ -'use babel'; +"use babel" -import { Emitter, BufferedProcess } from 'atom'; -import fs from 'fs'; -import path from 'path'; +import { Emitter, BufferedProcess } from "atom" +import fs from "fs" +import path from "path" export default class Runner { // Public: Creates a Runner instance @@ -10,141 +10,157 @@ export default class Runner { // * `scriptOptions` a {ScriptOptions} object instance // * `emitter` Atom's {Emitter} instance. You probably don't need to overwrite it constructor(scriptOptions) { - this.bufferedProcess = null; - this.stdoutFunc = this.stdoutFunc.bind(this); - this.stderrFunc = this.stderrFunc.bind(this); - this.onExit = this.onExit.bind(this); - this.createOnErrorFunc = this.createOnErrorFunc.bind(this); - this.scriptOptions = scriptOptions; - this.emitter = new Emitter(); + this.bufferedProcess = null + this.stdoutFunc = this.stdoutFunc.bind(this) + this.stderrFunc = this.stderrFunc.bind(this) + this.onExit = this.onExit.bind(this) + this.createOnErrorFunc = this.createOnErrorFunc.bind(this) + this.scriptOptions = scriptOptions + this.emitter = new Emitter() } run(command, extraArgs, codeContext, inputString = null) { - this.startTime = new Date(); + this.startTime = new Date() - const args = this.args(codeContext, extraArgs); - const options = this.options(); - const stdout = this.stdoutFunc; - const stderr = this.stderrFunc; - const exit = this.onExit; + const args = this.args(codeContext, extraArgs) + const options = this.options() + const stdout = this.stdoutFunc + const stderr = this.stderrFunc + const exit = this.onExit this.bufferedProcess = new BufferedProcess({ - command, args, options, stdout, stderr, exit, - }); + command, + args, + options, + stdout, + stderr, + exit, + }) if (inputString) { - this.bufferedProcess.process.stdin.write(inputString); - this.bufferedProcess.process.stdin.end(); + this.bufferedProcess.process.stdin.write(inputString) + this.bufferedProcess.process.stdin.end() } - this.bufferedProcess.onWillThrowError(this.createOnErrorFunc(command)); + this.bufferedProcess.onWillThrowError(this.createOnErrorFunc(command)) } stdoutFunc(output) { - this.emitter.emit('did-write-to-stdout', { message: output }); + this.emitter.emit("did-write-to-stdout", { message: output }) } onDidWriteToStdout(callback) { - return this.emitter.on('did-write-to-stdout', callback); + return this.emitter.on("did-write-to-stdout", callback) } stderrFunc(output) { - this.emitter.emit('did-write-to-stderr', { message: output }); + this.emitter.emit("did-write-to-stderr", { message: output }) } onDidWriteToStderr(callback) { - return this.emitter.on('did-write-to-stderr', callback); + return this.emitter.on("did-write-to-stderr", callback) } destroy() { - this.emitter.dispose(); + this.emitter.dispose() } getCwd() { - let cwd = this.scriptOptions.workingDirectory; + let cwd = this.scriptOptions.workingDirectory if (!cwd) { - switch (atom.config.get('script.cwdBehavior')) { - case 'First project directory': { - const paths = atom.project.getPaths(); + switch (atom.config.get("script.cwdBehavior")) { + case "First project directory": { + const paths = atom.project.getPaths() if (paths && paths.length > 0) { try { - cwd = fs.statSync(paths[0]).isDirectory() ? paths[0] : path.join(paths[0], '..'); - } catch (error) { /* Don't throw */ } + cwd = fs.statSync(paths[0]).isDirectory() ? paths[0] : path.join(paths[0], "..") + } catch (error) { + /* Don't throw */ + } } - break; + break } - case 'Project directory of the script': { - cwd = this.getProjectPath(); - break; + case "Project directory of the script": { + cwd = this.getProjectPath() + break } - case 'Directory of the script': { - const pane = atom.workspace.getActivePaneItem(); - cwd = (pane && pane.buffer && pane.buffer.file && pane.buffer.file.getParent - && pane.buffer.file.getParent() && pane.buffer.file.getParent().getPath - && pane.buffer.file.getParent().getPath()) || ''; - break; + case "Directory of the script": { + const pane = atom.workspace.getActivePaneItem() + cwd = + (pane && + pane.buffer && + pane.buffer.file && + pane.buffer.file.getParent && + pane.buffer.file.getParent() && + pane.buffer.file.getParent().getPath && + pane.buffer.file.getParent().getPath()) || + "" + break } } } - return cwd; + return cwd } stop() { if (this.bufferedProcess) { - this.bufferedProcess.kill(); - this.bufferedProcess = null; + this.bufferedProcess.kill() + this.bufferedProcess = null } } onExit(returnCode) { - this.bufferedProcess = null; - let executionTime; + this.bufferedProcess = null + let executionTime - if ((atom.config.get('script.enableExecTime') === true) && this.startTime) { - executionTime = (new Date().getTime() - this.startTime.getTime()) / 1000; + if (atom.config.get("script.enableExecTime") === true && this.startTime) { + executionTime = (new Date().getTime() - this.startTime.getTime()) / 1000 } - this.emitter.emit('did-exit', { executionTime, returnCode }); + this.emitter.emit("did-exit", { executionTime, returnCode }) } onDidExit(callback) { - return this.emitter.on('did-exit', callback); + return this.emitter.on("did-exit", callback) } createOnErrorFunc(command) { return (nodeError) => { - this.bufferedProcess = null; - this.emitter.emit('did-not-run', { command }); - nodeError.handle(); - }; + this.bufferedProcess = null + this.emitter.emit("did-not-run", { command }) + nodeError.handle() + } } onDidNotRun(callback) { - return this.emitter.on('did-not-run', callback); + return this.emitter.on("did-not-run", callback) } options() { return { cwd: this.getCwd(), env: this.scriptOptions.mergedEnv(process.env), - }; + } } fillVarsInArg(arg, codeContext, projectPath) { if (codeContext.filepath) { - arg = arg.replace(/{FILE_ACTIVE}/g, codeContext.filepath); - arg = arg.replace(/{FILE_ACTIVE_PATH}/g, path.join(codeContext.filepath, '..')); + arg = arg.replace(/{FILE_ACTIVE}/g, codeContext.filepath) + arg = arg.replace(/{FILE_ACTIVE_PATH}/g, path.join(codeContext.filepath, "..")) } if (codeContext.filename) { - arg = arg.replace(/{FILE_ACTIVE_NAME}/g, codeContext.filename); - arg = arg.replace(/{FILE_ACTIVE_NAME_BASE}/g, path.basename(codeContext.filename, path.extname(codeContext.filename))); + arg = arg.replace(/{FILE_ACTIVE_NAME}/g, codeContext.filename) + arg = arg.replace( + /{FILE_ACTIVE_NAME_BASE}/g, + path.basename(codeContext.filename, path.extname(codeContext.filename)) + ) } if (projectPath) { - arg = arg.replace(/{PROJECT_PATH}/g, projectPath); + arg = arg.replace(/{PROJECT_PATH}/g, projectPath) } - return arg; + return arg } args(codeContext, extraArgs) { @@ -154,41 +170,41 @@ export default class Runner { // cmdArgs = customed command args from: // - a user's profil // - the 'Configure Run Options' panel - const { cmdArgs } = this.scriptOptions; + const { cmdArgs } = this.scriptOptions // Let's overdrive the default args with the customed ones - let args = (cmdArgs.length) ? cmdArgs : extraArgs; + let args = cmdArgs.length ? cmdArgs : extraArgs // Do not forget to concat the script args after the command args - const { scriptArgs } = this.scriptOptions; - args = args.concat(scriptArgs); + const { scriptArgs } = this.scriptOptions + args = args.concat(scriptArgs) - const projectPath = this.getProjectPath || ''; + const projectPath = this.getProjectPath || "" args = args.map((arg) => { - if (typeof arg !== 'string') { + if (typeof arg !== "string") { // TODO why this happens? // https://github.com/atom-community/atom-script/issues/2082 - arg = ''; + arg = "" } - return this.fillVarsInArg(arg, codeContext, projectPath); - }); + return this.fillVarsInArg(arg, codeContext, projectPath) + }) if (!this.scriptOptions.cmd) { - args = codeContext.shebangCommandArgs().concat(args); + args = codeContext.shebangCommandArgs().concat(args) } - return args; + return args } getProjectPath() { - const filePath = atom.workspace.getActiveTextEditor().getPath(); - const projectPaths = atom.project.getPaths(); + const filePath = atom.workspace.getActiveTextEditor().getPath() + const projectPaths = atom.project.getPaths() for (const projectPath of projectPaths) { if (filePath.indexOf(projectPath) > -1) { if (fs.statSync(projectPath).isDirectory()) { - return projectPath; + return projectPath } - return path.join(projectPath, '..'); + return path.join(projectPath, "..") } } - return null; + return null } } diff --git a/lib/runtime.js b/lib/runtime.js index df6c94f3..5cffc2d7 100644 --- a/lib/runtime.js +++ b/lib/runtime.js @@ -1,22 +1,22 @@ -'use babel'; +"use babel" -import { Emitter } from 'atom'; +import { Emitter } from "atom" -import _ from 'underscore'; +import _ from "underscore" -import CommandContext from './command-context'; +import CommandContext from "./command-context" export default class Runtime { // Public: Initializes a new {Runtime} instance // // This class is responsible for properly configuring {Runner} constructor(runner, codeContextBuilder, observers = []) { - this.runner = runner; - this.codeContextBuilder = codeContextBuilder; - this.observers = observers; - this.emitter = new Emitter(); - this.scriptOptions = this.runner.scriptOptions; - _.each(this.observers, (observer) => observer.observe(this)); + this.runner = runner + this.codeContextBuilder = codeContextBuilder + this.observers = observers + this.emitter = new Emitter() + this.scriptOptions = this.runner.scriptOptions + _.each(this.observers, (observer) => observer.observe(this)) } // Public: Adds a new observer and asks it to listen for {Runner} events @@ -26,19 +26,19 @@ export default class Runtime { // (see {ViewRuntimeObserver} for what you are expected to handle) // * `destroy` - where you can do your cleanup addObserver(observer) { - this.observers.push(observer); - observer.observe(this); + this.observers.push(observer) + observer.observe(this) } // Public: disposes dependencies // // This should be called when you no longer need to use this class destroy() { - this.stop(); - this.runner.destroy(); - _.each(this.observers, (observer) => observer.destroy()); - this.emitter.dispose(); - this.codeContextBuilder.destroy(); + this.stop() + this.runner.destroy() + _.each(this.observers, (observer) => observer.destroy()) + this.emitter.dispose() + this.codeContextBuilder.destroy() } // Public: Executes code @@ -48,87 +48,91 @@ export default class Runtime { // * "Line Number Based" // * "File Based" // input (Optional) - {String} that'll be provided to the `stdin` of the new process - execute(argType = 'Selection Based', input = null, options = null) { - if (atom.config.get('script.stopOnRerun')) {this.stop();} - this.emitter.emit('start'); + execute(argType = "Selection Based", input = null, options = null) { + if (atom.config.get("script.stopOnRerun")) { + this.stop() + } + this.emitter.emit("start") - const codeContext = this.codeContextBuilder.buildCodeContext( - atom.workspace.getActiveTextEditor(), argType, - ); + const codeContext = this.codeContextBuilder.buildCodeContext(atom.workspace.getActiveTextEditor(), argType) // In the future we could handle a runner without the language being part // of the grammar map, using the options runner - if (!codeContext || !codeContext.lang) {return;} + if (!codeContext || !codeContext.lang) { + return + } - const executionOptions = !options ? this.scriptOptions : options; - const commandContext = CommandContext.build(this, executionOptions, codeContext); + const executionOptions = !options ? this.scriptOptions : options + const commandContext = CommandContext.build(this, executionOptions, codeContext) - if (!commandContext) {return;} + if (!commandContext) { + return + } if (commandContext.workingDirectory) { - executionOptions.workingDirectory = commandContext.workingDirectory; + executionOptions.workingDirectory = commandContext.workingDirectory } - this.emitter.emit('did-context-create', { + this.emitter.emit("did-context-create", { lang: codeContext.lang, filename: codeContext.filename, lineNumber: codeContext.lineNumber, - }); + }) - this.runner.scriptOptions = executionOptions; - this.runner.run(commandContext.command, commandContext.args, codeContext, input); - this.emitter.emit('started', commandContext); + this.runner.scriptOptions = executionOptions + this.runner.run(commandContext.command, commandContext.args, codeContext, input) + this.emitter.emit("started", commandContext) } // Public: stops execution of the current fork stop() { - this.emitter.emit('stop'); - this.runner.stop(); - this.emitter.emit('stopped'); + this.emitter.emit("stop") + this.runner.stop() + this.emitter.emit("stopped") } // Public: Dispatched when the execution is starting onStart(callback) { - return this.emitter.on('start', callback); + return this.emitter.on("start", callback) } // Public: Dispatched when the execution is started onStarted(callback) { - return this.emitter.on('started', callback); + return this.emitter.on("started", callback) } // Public: Dispatched when the execution is stopping onStop(callback) { - return this.emitter.on('stop', callback); + return this.emitter.on("stop", callback) } // Public: Dispatched when the execution is stopped onStopped(callback) { - return this.emitter.on('stopped', callback); + return this.emitter.on("stopped", callback) } // Public: Dispatched when the language is not specified onDidNotSpecifyLanguage(callback) { - return this.codeContextBuilder.onDidNotSpecifyLanguage(callback); + return this.codeContextBuilder.onDidNotSpecifyLanguage(callback) } // Public: Dispatched when the language is not supported // lang - {String} with the language name onDidNotSupportLanguage(callback) { - return this.codeContextBuilder.onDidNotSupportLanguage(callback); + return this.codeContextBuilder.onDidNotSupportLanguage(callback) } // Public: Dispatched when the mode is not supported // lang - {String} with the language name // argType - {String} with the run mode specified onDidNotSupportMode(callback) { - return this.emitter.on('did-not-support-mode', callback); + return this.emitter.on("did-not-support-mode", callback) } // Public: Dispatched when building run arguments resulted in an error // error - {Error} onDidNotBuildArgs(callback) { - return this.emitter.on('did-not-build-args', callback); + return this.emitter.on("did-not-build-args", callback) } // Public: Dispatched when the {CodeContext} is successfully created @@ -136,39 +140,39 @@ export default class Runtime { // filename - {String} with the filename // lineNumber - {Number} with the line number (may be null) onDidContextCreate(callback) { - return this.emitter.on('did-context-create', callback); + return this.emitter.on("did-context-create", callback) } // Public: Dispatched when the process you run writes something to stdout // message - {String} with the output onDidWriteToStdout(callback) { - return this.runner.onDidWriteToStdout(callback); + return this.runner.onDidWriteToStdout(callback) } // Public: Dispatched when the process you run writes something to stderr // message - {String} with the output onDidWriteToStderr(callback) { - return this.runner.onDidWriteToStderr(callback); + return this.runner.onDidWriteToStderr(callback) } // Public: Dispatched when the process you run exits // returnCode - {Number} with the process' exit code // executionTime - {Number} with the process' exit code onDidExit(callback) { - return this.runner.onDidExit(callback); + return this.runner.onDidExit(callback) } // Public: Dispatched when the code you run did not manage to run // command - {String} with the run command onDidNotRun(callback) { - return this.runner.onDidNotRun(callback); + return this.runner.onDidNotRun(callback) } modeNotSupported(argType, lang) { - this.emitter.emit('did-not-support-mode', { argType, lang }); + this.emitter.emit("did-not-support-mode", { argType, lang }) } didNotBuildArgs(error) { - this.emitter.emit('did-not-build-args', { error }); + this.emitter.emit("did-not-build-args", { error }) } } diff --git a/lib/script-input-view.js b/lib/script-input-view.js index 16b18ea1..a979c0f1 100644 --- a/lib/script-input-view.js +++ b/lib/script-input-view.js @@ -1,77 +1,81 @@ -'use babel'; +"use babel" -import { Emitter, CompositeDisposable } from 'atom'; -import { View } from 'atom-space-pen-views-plus'; +import { Emitter, CompositeDisposable } from "atom" +import { View } from "atom-space-pen-views-plus" export default class ScriptInputView extends View { static content() { - this.div({ class: 'script-input-view' }, () => { - this.div({ class: 'caption' }, ''); - this.tag('atom-text-editor', { mini: '', class: 'editor mini' }); - }); + this.div({ class: "script-input-view" }, () => { + this.div({ class: "caption" }, "") + this.tag("atom-text-editor", { mini: "", class: "editor mini" }) + }) } initialize(options) { - this.options = options; - this.emitter = new Emitter(); + this.options = options + this.emitter = new Emitter() - this.panel = atom.workspace.addModalPanel({ item: this }); - this.panel.hide(); + this.panel = atom.workspace.addModalPanel({ item: this }) + this.panel.hide() - this.editor = this.find('atom-text-editor').get(0).getModel(); + this.editor = this.find("atom-text-editor").get(0).getModel() // set default text if (this.options.default) { - this.editor.setText(this.options.default); - this.editor.selectAll(); + this.editor.setText(this.options.default) + this.editor.selectAll() } // caption text if (this.options.caption) { - this.find('.caption').text(this.options.caption); + this.find(".caption").text(this.options.caption) } - this.find('atom-text-editor').on('keydown', (e) => { + this.find("atom-text-editor").on("keydown", (e) => { if (e.keyCode === 27) { - e.stopPropagation(); - this.emitter.emit('on-cancel'); - this.hide(); + e.stopPropagation() + this.emitter.emit("on-cancel") + this.hide() } - }); + }) - this.subscriptions = new CompositeDisposable(); - this.subscriptions.add(atom.commands.add('atom-workspace', { - 'core:confirm': () => { - this.emitter.emit('on-confirm', this.editor.getText().trim()); - this.hide(); - }, - })); + this.subscriptions = new CompositeDisposable() + this.subscriptions.add( + atom.commands.add("atom-workspace", { + "core:confirm": () => { + this.emitter.emit("on-confirm", this.editor.getText().trim()) + this.hide() + }, + }) + ) } onConfirm(callback) { - return this.emitter.on('on-confirm', callback); + return this.emitter.on("on-confirm", callback) } onCancel(callback) { - return this.emitter.on('on-cancel', callback); + return this.emitter.on("on-cancel", callback) } focus() { - this.find('atom-text-editor').focus(); + this.find("atom-text-editor").focus() } show() { - this.panel.show(); - this.focus(); + this.panel.show() + this.focus() } hide() { - this.panel.hide(); - this.destroy(); + this.panel.hide() + this.destroy() } destroy() { - if (this.subscriptions) {this.subscriptions.dispose();} - this.panel.destroy(); + if (this.subscriptions) { + this.subscriptions.dispose() + } + this.panel.destroy() } } diff --git a/lib/script-options-view.js b/lib/script-options-view.js index c45435ee..e740d641 100644 --- a/lib/script-options-view.js +++ b/lib/script-options-view.js @@ -1,182 +1,195 @@ -'use babel'; +"use babel" -import { CompositeDisposable, Emitter } from 'atom'; -import { View } from 'atom-space-pen-views-plus'; -import _ from 'underscore'; -import ScriptInputView from './script-input-view'; +import { CompositeDisposable, Emitter } from "atom" +import { View } from "atom-space-pen-views-plus" +import _ from "underscore" +import ScriptInputView from "./script-input-view" export default class ScriptOptionsView extends View { static content() { - this.div({ class: 'options-view' }, () => { - this.h4({ class: 'modal-header' }, 'Configure Run Options'); - this.div({ class: 'modal-body' }, () => { + this.div({ class: "options-view" }, () => { + this.h4({ class: "modal-header" }, "Configure Run Options") + this.div({ class: "modal-body" }, () => { this.table(() => { this.tr(() => { - this.td({ class: 'first' }, () => this.label('Current Working Directory:')); - this.td({ class: 'second' }, () => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCwd' })); - }); + this.td({ class: "first" }, () => this.label("Current Working Directory:")) + this.td({ class: "second" }, () => + this.tag("atom-text-editor", { mini: "", class: "editor mini", outlet: "inputCwd" }) + ) + }) this.tr(() => { - this.td(() => this.label('Command')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommand' })); - }); + this.td(() => this.label("Command")) + this.td(() => this.tag("atom-text-editor", { mini: "", class: "editor mini", outlet: "inputCommand" })) + }) this.tr(() => { - this.td(() => this.label('Command Arguments:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputCommandArgs' })); - }); + this.td(() => this.label("Command Arguments:")) + this.td(() => this.tag("atom-text-editor", { mini: "", class: "editor mini", outlet: "inputCommandArgs" })) + }) this.tr(() => { - this.td(() => this.label('Program Arguments:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputScriptArgs' })); - }); + this.td(() => this.label("Program Arguments:")) + this.td(() => this.tag("atom-text-editor", { mini: "", class: "editor mini", outlet: "inputScriptArgs" })) + }) this.tr(() => { - this.td(() => this.label('Environment Variables:')); - this.td(() => this.tag('atom-text-editor', { mini: '', class: 'editor mini', outlet: 'inputEnv' })); - }); - }); - }); - this.div({ class: 'modal-footer' }, () => { - const css = 'btn inline-block-tight'; - this.button({ class: `btn ${css} cancel`, outlet: 'buttonCancel', click: 'close' }, () => this.span({ class: 'icon icon-x' }, 'Cancel')); - this.span({ class: 'pull-right' }, () => { - this.button({ class: `btn ${css} save-profile`, outlet: 'buttonSaveProfile', click: 'saveProfile' }, () => this.span({ class: 'icon icon-file-text' }, 'Save as profile')); - this.button({ class: `btn ${css} run`, outlet: 'buttonRun', click: 'run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run')); - }); - }); - }); + this.td(() => this.label("Environment Variables:")) + this.td(() => this.tag("atom-text-editor", { mini: "", class: "editor mini", outlet: "inputEnv" })) + }) + }) + }) + this.div({ class: "modal-footer" }, () => { + const css = "btn inline-block-tight" + this.button({ class: `btn ${css} cancel`, outlet: "buttonCancel", click: "close" }, () => + this.span({ class: "icon icon-x" }, "Cancel") + ) + this.span({ class: "pull-right" }, () => { + this.button({ class: `btn ${css} save-profile`, outlet: "buttonSaveProfile", click: "saveProfile" }, () => + this.span({ class: "icon icon-file-text" }, "Save as profile") + ) + this.button({ class: `btn ${css} run`, outlet: "buttonRun", click: "run" }, () => + this.span({ class: "icon icon-playback-play" }, "Run") + ) + }) + }) + }) } initialize(runOptions) { - this.runOptions = runOptions; - this.emitter = new Emitter(); - - this.subscriptions = new CompositeDisposable(); - this.subscriptions.add(atom.commands.add('atom-workspace', { - 'core:cancel': () => this.hide(), - 'core:close': () => this.hide(), - 'script:close-options': () => this.hide(), - 'script:run-options': () => (this.panel.isVisible() ? this.hide() : this.show()), - 'script:save-options': () => this.saveOptions(), - })); + this.runOptions = runOptions + this.emitter = new Emitter() + + this.subscriptions = new CompositeDisposable() + this.subscriptions.add( + atom.commands.add("atom-workspace", { + "core:cancel": () => this.hide(), + "core:close": () => this.hide(), + "script:close-options": () => this.hide(), + "script:run-options": () => (this.panel.isVisible() ? this.hide() : this.show()), + "script:save-options": () => this.saveOptions(), + }) + ) // handling focus traversal and run on enter - this.find('atom-text-editor').on('keydown', (e) => { - if (e.keyCode !== 9 && e.keyCode !== 13) {return true;} + this.find("atom-text-editor").on("keydown", (e) => { + if (e.keyCode !== 9 && e.keyCode !== 13) { + return true + } switch (e.keyCode) { case 9: { - e.preventDefault(); - e.stopPropagation(); - const row = this.find(e.target).parents('tr:first').nextAll('tr:first'); + e.preventDefault() + e.stopPropagation() + const row = this.find(e.target).parents("tr:first").nextAll("tr:first") if (row.length) { - return row.find('atom-text-editor').focus(); + return row.find("atom-text-editor").focus() } - return this.buttonCancel.focus(); + return this.buttonCancel.focus() } - case 13: return this.run(); + case 13: + return this.run() } - return null; - }); + return null + }) - this.panel = atom.workspace.addModalPanel({ item: this }); - this.panel.hide(); + this.panel = atom.workspace.addModalPanel({ item: this }) + this.panel.hide() } static splitArgs(argText) { - const text = argText.trim(); - const argSubstringRegex = /([^\s"']+)|((["'])(.*?)\3)/g; - const args = []; - let lastMatchEndPosition = -1; - let match = argSubstringRegex.exec(text); + const text = argText.trim() + const argSubstringRegex = /([^\s"']+)|((["'])(.*?)\3)/g + const args = [] + let lastMatchEndPosition = -1 + let match = argSubstringRegex.exec(text) while (match !== null) { - const matchWithoutQuotes = match[1] || match[4]; + const matchWithoutQuotes = match[1] || match[4] // Combine current result with last match, if last match ended where this // one begins. if (lastMatchEndPosition === match.index) { - args[args.length - 1] += matchWithoutQuotes; + args[args.length - 1] += matchWithoutQuotes } else { - args.push(matchWithoutQuotes); + args.push(matchWithoutQuotes) } - lastMatchEndPosition = argSubstringRegex.lastIndex; - match = argSubstringRegex.exec(text); + lastMatchEndPosition = argSubstringRegex.lastIndex + match = argSubstringRegex.exec(text) } - return args; + return args } getOptions() { return { workingDirectory: this.inputCwd.get(0).getModel().getText(), cmd: this.inputCommand.get(0).getModel().getText(), - cmdArgs: this.constructor.splitArgs( - this.inputCommandArgs.get(0).getModel().getText(), - ), + cmdArgs: this.constructor.splitArgs(this.inputCommandArgs.get(0).getModel().getText()), env: this.inputEnv.get(0).getModel().getText(), - scriptArgs: this.constructor.splitArgs( - this.inputScriptArgs.get(0).getModel().getText(), - ), - }; + scriptArgs: this.constructor.splitArgs(this.inputScriptArgs.get(0).getModel().getText()), + } } saveOptions() { - const options = this.getOptions(); + const options = this.getOptions() for (const option in options) { - const value = options[option]; - this.runOptions[option] = value; + const value = options[option] + this.runOptions[option] = value } } onProfileSave(callback) { - return this.emitter.on('on-profile-save', callback); + return this.emitter.on("on-profile-save", callback) } // Saves specified options as new profile saveProfile() { - this.hide(); + this.hide() - const options = this.getOptions(); + const options = this.getOptions() - const inputView = new ScriptInputView({ caption: 'Enter profile name:' }); - inputView.onCancel(() => this.show()); + const inputView = new ScriptInputView({ caption: "Enter profile name:" }) + inputView.onCancel(() => this.show()) inputView.onConfirm((profileName) => { - if (!profileName) {return;} - _.forEach(this.find('atom-text-editor'), (editor) => { - editor.getModel().setText(''); - }); + if (!profileName) { + return + } + _.forEach(this.find("atom-text-editor"), (editor) => { + editor.getModel().setText("") + }) // clean up the options - this.saveOptions(); + this.saveOptions() // add to global profiles list - this.emitter.emit('on-profile-save', { name: profileName, options }); - }); + this.emitter.emit("on-profile-save", { name: profileName, options }) + }) - inputView.show(); + inputView.show() } close() { - this.hide(); + this.hide() } destroy() { - if (this.subscriptions) {this.subscriptions.dispose();} + if (this.subscriptions) { + this.subscriptions.dispose() + } } show() { - this.panel.show(); - this.inputCwd.focus(); + this.panel.show() + this.inputCwd.focus() } hide() { - this.panel.hide(); - atom.workspace.getActivePane().activate(); + this.panel.hide() + atom.workspace.getActivePane().activate() } run() { - this.saveOptions(); - this.hide(); - atom.commands.dispatch(this.getWorkspaceView(), 'script:run'); + this.saveOptions() + this.hide() + atom.commands.dispatch(this.getWorkspaceView(), "script:run") } getWorkspaceView() { - return atom.views.getView(atom.workspace); + return atom.views.getView(atom.workspace) } } diff --git a/lib/script-options.js b/lib/script-options.js index 6d2d9329..3b576b18 100644 --- a/lib/script-options.js +++ b/lib/script-options.js @@ -1,24 +1,27 @@ -'use babel'; +"use babel" -import _ from 'underscore'; +import _ from "underscore" export default class ScriptOptions { constructor() { - this.name = ''; - this.description = ''; - this.lang = ''; - this.workingDirectory = null; - this.cmd = null; - this.cmdArgs = []; - this.env = null; - this.scriptArgs = []; + this.name = "" + this.description = "" + this.lang = "" + this.workingDirectory = null + this.cmd = null + this.cmdArgs = [] + this.env = null + this.scriptArgs = [] } static createFromOptions(name, options) { - const so = new ScriptOptions(); - so.name = name; - for (const key in options) { const value = options[key]; so[key] = value; } - return so; + const so = new ScriptOptions() + so.name = name + for (const key in options) { + const value = options[key] + so[key] = value + } + return so } toObject() { @@ -31,7 +34,7 @@ export default class ScriptOptions { cmdArgs: this.cmdArgs, env: this.env, scriptArgs: this.scriptArgs, - }; + } } // Public: Serializes the user specified environment vars as an {object} @@ -39,17 +42,19 @@ export default class ScriptOptions { // // Returns an {Object} representation of the user specified environment. getEnv() { - if (!this.env) {return {};} + if (!this.env) { + return {} + } - const mapping = {}; + const mapping = {} - for (const pair of this.env.trim().split(';')) { - const [key, value] = pair.split('=', 2); - mapping[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, '$1'); - mapping[key] = mapping[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); + for (const pair of this.env.trim().split(";")) { + const [key, value] = pair.split("=", 2) + mapping[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, "$1") + mapping[key] = mapping[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, "$1") } - return mapping; + return mapping } // Public: Merges two environment objects @@ -58,15 +63,15 @@ export default class ScriptOptions { // // Returns the merged environment {Object}. mergedEnv(otherEnv) { - const otherCopy = _.extend({}, otherEnv); - const mergedEnv = _.extend(otherCopy, this.getEnv()); + const otherCopy = _.extend({}, otherEnv) + const mergedEnv = _.extend(otherCopy, this.getEnv()) for (const key in mergedEnv) { - const value = mergedEnv[key]; - mergedEnv[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, '$1'); - mergedEnv[key] = mergedEnv[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, '$1'); + const value = mergedEnv[key] + mergedEnv[key] = `${value}`.replace(/"((?:[^"\\]|\\"|\\[^"])+)"/, "$1") + mergedEnv[key] = mergedEnv[key].replace(/'((?:[^'\\]|\\'|\\[^'])+)'/, "$1") } - return mergedEnv; + return mergedEnv } } diff --git a/lib/script-profile-run-view.js b/lib/script-profile-run-view.js index 65e28edf..a03618c2 100644 --- a/lib/script-profile-run-view.js +++ b/lib/script-profile-run-view.js @@ -1,131 +1,143 @@ -'use babel'; +"use babel" -import { CompositeDisposable, Emitter } from 'atom'; -import { $$, SelectListView } from 'atom-space-pen-views-plus'; -import ScriptInputView from './script-input-view'; +import { CompositeDisposable, Emitter } from "atom" +import { $$, SelectListView } from "atom-space-pen-views-plus" +import ScriptInputView from "./script-input-view" export default class ScriptProfileRunView extends SelectListView { initialize(profiles) { - this.profiles = profiles; - super.initialize(...arguments); - - this.emitter = new Emitter(); - - this.subscriptions = new CompositeDisposable(); - this.subscriptions.add(atom.commands.add('atom-workspace', { - 'core:cancel': () => this.hide(), - 'core:close': () => this.hide(), - 'script:run-with-profile': () => (this.panel.isVisible() ? this.hide() : this.show()), - })); - - this.setItems(this.profiles); - this.initializeView(); + this.profiles = profiles + super.initialize(...arguments) + + this.emitter = new Emitter() + + this.subscriptions = new CompositeDisposable() + this.subscriptions.add( + atom.commands.add("atom-workspace", { + "core:cancel": () => this.hide(), + "core:close": () => this.hide(), + "script:run-with-profile": () => (this.panel.isVisible() ? this.hide() : this.show()), + }) + ) + + this.setItems(this.profiles) + this.initializeView() } initializeView() { - this.addClass('overlay from-top script-profile-run-view'); + this.addClass("overlay from-top script-profile-run-view") // @panel.hide() this.buttons = $$(function () { - this.div({ class: 'block buttons' }, () => { - const css = 'btn inline-block-tight'; - this.button({ class: 'btn cancel' }, () => this.span({ class: 'icon icon-x' }, 'Cancel')); - this.button({ class: 'btn rename' }, () => this.span({ class: 'icon icon-pencil' }, 'Rename')); - this.button({ class: 'btn delete' }, () => this.span({ class: 'icon icon-trashcan' }, 'Delete')); - this.button({ class: 'btn run' }, () => this.span({ class: 'icon icon-playback-play' }, 'Run')); - }); - }); + this.div({ class: "block buttons" }, () => { + const css = "btn inline-block-tight" + this.button({ class: "btn cancel" }, () => this.span({ class: "icon icon-x" }, "Cancel")) + this.button({ class: "btn rename" }, () => this.span({ class: "icon icon-pencil" }, "Rename")) + this.button({ class: "btn delete" }, () => this.span({ class: "icon icon-trashcan" }, "Delete")) + this.button({ class: "btn run" }, () => this.span({ class: "icon icon-playback-play" }, "Run")) + }) + }) // event handlers - this.buttons.find('.btn.cancel').on('click', () => this.hide()); - this.buttons.find('.btn.rename').on('click', () => this.rename()); - this.buttons.find('.btn.delete').on('click', () => this.delete()); - this.buttons.find('.btn.run').on('click', () => this.run()); + this.buttons.find(".btn.cancel").on("click", () => this.hide()) + this.buttons.find(".btn.rename").on("click", () => this.rename()) + this.buttons.find(".btn.delete").on("click", () => this.delete()) + this.buttons.find(".btn.run").on("click", () => this.run()) // fix focus traversal (from run button to filter editor) - this.buttons.find('.btn.run').on('keydown', (e) => { + this.buttons.find(".btn.run").on("keydown", (e) => { if (e.keyCode === 9) { - e.stopPropagation(); - e.preventDefault(); - this.focusFilterEditor(); + e.stopPropagation() + e.preventDefault() + this.focusFilterEditor() } - }); + }) // hide panel on ecsape - this.on('keydown', (e) => { - if (e.keyCode === 27) { this.hide(); } - if (e.keyCode === 13) { this.run(); } - }); + this.on("keydown", (e) => { + if (e.keyCode === 27) { + this.hide() + } + if (e.keyCode === 13) { + this.run() + } + }) // append buttons container - this.append(this.buttons); + this.append(this.buttons) - const selector = '.rename, .delete, .run'; + const selector = ".rename, .delete, .run" if (this.profiles.length) { - this.buttons.find(selector).show(); + this.buttons.find(selector).show() } else { - this.buttons.find(selector).hide(); + this.buttons.find(selector).hide() } - this.panel = atom.workspace.addModalPanel({ item: this }); - this.panel.hide(); + this.panel = atom.workspace.addModalPanel({ item: this }) + this.panel.hide() } onProfileDelete(callback) { - return this.emitter.on('on-profile-delete', callback); + return this.emitter.on("on-profile-delete", callback) } onProfileChange(callback) { - return this.emitter.on('on-profile-change', callback); + return this.emitter.on("on-profile-change", callback) } onProfileRun(callback) { - return this.emitter.on('on-profile-run', callback); + return this.emitter.on("on-profile-run", callback) } rename() { - const profile = this.getSelectedItem(); - if (!profile) { return; } + const profile = this.getSelectedItem() + if (!profile) { + return + } - const inputView = new ScriptInputView({ caption: 'Enter new profile name:', default: profile.name }); - inputView.onCancel(() => this.show()); + const inputView = new ScriptInputView({ caption: "Enter new profile name:", default: profile.name }) + inputView.onCancel(() => this.show()) inputView.onConfirm((newProfileName) => { - if (!newProfileName) { return; } - this.emitter.emit('on-profile-change', { profile, key: 'name', value: newProfileName }); - }); + if (!newProfileName) { + return + } + this.emitter.emit("on-profile-change", { profile, key: "name", value: newProfileName }) + }) - inputView.show(); + inputView.show() } delete() { - const profile = this.getSelectedItem(); - if (!profile) { return; } + const profile = this.getSelectedItem() + if (!profile) { + return + } atom.confirm({ - message: 'Delete profile', + message: "Delete profile", detailedMessage: `Are you sure you want to delete "${profile.name}" profile?`, buttons: { No: () => this.focusFilterEditor(), - Yes: () => this.emitter.emit('on-profile-delete', profile), + Yes: () => this.emitter.emit("on-profile-delete", profile), }, - }); + }) } getFilterKey() { - return 'name'; + return "name" } getEmptyMessage() { - return 'No profiles found'; + return "No profiles found" } viewForItem(item) { return $$(function () { - this.li({ class: 'two-lines profile' }, () => { - this.div({ class: 'primary-line name' }, () => this.text(item.name)); - this.div({ class: 'secondary-line description' }, () => this.text(item.description)); - }); - }); + this.li({ class: "two-lines profile" }, () => { + this.div({ class: "primary-line name" }, () => this.text(item.name)) + this.div({ class: "secondary-line description" }, () => this.text(item.description)) + }) + }) } cancel() {} @@ -133,43 +145,47 @@ export default class ScriptProfileRunView extends SelectListView { confirmed() {} show() { - this.panel.show(); - this.focusFilterEditor(); + this.panel.show() + this.focusFilterEditor() } hide() { - this.panel.hide(); - atom.workspace.getActivePane().activate(); + this.panel.hide() + atom.workspace.getActivePane().activate() } // Updates profiles setProfiles(profiles) { - this.profiles = profiles; - this.setItems(this.profiles); + this.profiles = profiles + this.setItems(this.profiles) // toggle profile controls - const selector = '.rename, .delete, .run'; + const selector = ".rename, .delete, .run" if (this.profiles.length) { - this.buttons.find(selector).show(); + this.buttons.find(selector).show() } else { - this.buttons.find(selector).hide(); + this.buttons.find(selector).hide() } - this.populateList(); - this.focusFilterEditor(); + this.populateList() + this.focusFilterEditor() } close() {} destroy() { - if (this.subscriptions) {this.subscriptions.dispose();} + if (this.subscriptions) { + this.subscriptions.dispose() + } } run() { - const profile = this.getSelectedItem(); - if (!profile) { return; } + const profile = this.getSelectedItem() + if (!profile) { + return + } - this.emitter.emit('on-profile-run', profile); - this.hide(); + this.emitter.emit("on-profile-run", profile) + this.hide() } } diff --git a/lib/script-view.js b/lib/script-view.js index 2e15a4f5..c41b630d 100644 --- a/lib/script-view.js +++ b/lib/script-view.js @@ -1,111 +1,113 @@ -'use babel'; +"use babel" -import { $$ } from 'atom-space-pen-views-plus'; -import { MessagePanelView } from 'atom-message-panel'; -import _ from 'underscore'; -import AnsiFilter from 'ansi-to-html'; -import stripAnsi from 'strip-ansi'; +import { $$ } from "atom-space-pen-views-plus" +import { MessagePanelView } from "atom-message-panel" +import _ from "underscore" +import AnsiFilter from "ansi-to-html" +import stripAnsi from "strip-ansi" -import HeaderView from './header-view'; -import linkPaths from './link-paths'; +import HeaderView from "./header-view" +import linkPaths from "./link-paths" // Runs a portion of a script through an interpreter and displays it line by line export default class ScriptView extends MessagePanelView { constructor() { - const headerView = new HeaderView(); - super({ title: headerView, rawTitle: true, closeMethod: 'destroy' }); + const headerView = new HeaderView() + super({ title: headerView, rawTitle: true, closeMethod: "destroy" }) - this.scrollTimeout = null; - this.ansiFilter = new AnsiFilter(); - this.headerView = headerView; + this.scrollTimeout = null + this.ansiFilter = new AnsiFilter() + this.headerView = headerView // Use 'bottom' as the default position, because that was // the behaviour before the position became configurable: - this.position = 'bottom'; - atom.config.observe('script.position', (newVal) => { - this.position = newVal; - }); + this.position = "bottom" + atom.config.observe("script.position", (newVal) => { + this.position = newVal + }) - this.showInTab = this.showInTab.bind(this); - this.setHeaderAndShowExecutionTime = this.setHeaderAndShowExecutionTime.bind(this); - this.addClass('script-view'); - this.addShowInTabIcon(); + this.showInTab = this.showInTab.bind(this) + this.setHeaderAndShowExecutionTime = this.setHeaderAndShowExecutionTime.bind(this) + this.addClass("script-view") + this.addShowInTabIcon() - linkPaths.listen(this.body); + linkPaths.listen(this.body) } addShowInTabIcon() { const icon = $$(function () { this.div({ - class: 'heading-show-in-tab inline-block icon-file-text', - style: 'cursor: pointer;', - outlet: 'btnShowInTab', - title: 'Show output in new tab', - }); - }); + class: "heading-show-in-tab inline-block icon-file-text", + style: "cursor: pointer;", + outlet: "btnShowInTab", + title: "Show output in new tab", + }) + }) - icon.click(this.showInTab); - icon.insertBefore(this.btnAutoScroll); + icon.click(this.showInTab) + icon.insertBefore(this.btnAutoScroll) } showInTab() { // concat output - let output = ''; - for (const message of this.messages) { output += message.text(); } + let output = "" + for (const message of this.messages) { + output += message.text() + } // represent command context - let context = ''; + let context = "" if (this.commandContext) { - context = `[Command: ${this.commandContext.getRepresentation()}]\n`; + context = `[Command: ${this.commandContext.getRepresentation()}]\n` } // open new tab and set content to output - atom.workspace.open().then((editor) => editor.setText(stripAnsi(context + output))); + atom.workspace.open().then((editor) => editor.setText(stripAnsi(context + output))) } setHeaderAndShowExecutionTime(returnCode, executionTime) { if (executionTime) { - this.display('stdout', `[Finished in ${executionTime.toString()}s]`); + this.display("stdout", `[Finished in ${executionTime.toString()}s]`) } else { - this.display('stdout'); + this.display("stdout") } if (returnCode === 0) { - this.setHeaderStatus('stop'); + this.setHeaderStatus("stop") } else { - this.setHeaderStatus('err'); + this.setHeaderStatus("err") } } - resetView(title = 'Loading...') { + resetView(title = "Loading...") { // Display window and load message - this.attach(); + this.attach() - this.setHeaderTitle(title); - this.setHeaderStatus('start'); + this.setHeaderTitle(title) + this.setHeaderStatus("start") // Get script view ready - this.clear(); + this.clear() } removePanel() { - this.stop(); - this.detach(); + this.stop() + this.detach() // the 'close' method from MessagePanelView actually destroys the panel - Object.getPrototypeOf(ScriptView.prototype).close.apply(this); + Object.getPrototypeOf(ScriptView.prototype).close.apply(this) } // This is triggered when hitting the 'close' button on the panel // We are not actually closing the panel here since we want to trigger // 'script:close-view' which will eventually remove the panel via 'removePanel' close() { - const workspaceView = atom.views.getView(atom.workspace); - atom.commands.dispatch(workspaceView, 'script:close-view'); + const workspaceView = atom.views.getView(atom.workspace) + atom.commands.dispatch(workspaceView, "script:close-view") } stop() { - this.display('stdout', '^C'); - this.setHeaderStatus('kill'); + this.display("stdout", "^C") + this.setHeaderStatus("kill") } createGitHubIssueLink(argType, lang) { @@ -116,108 +118,115 @@ export default class ScriptView extends MessagePanelView { // encodedURI = encodedURI.replace(/#/g, '%23'); const err = $$(function () { - this.p({ class: 'block' }, `${argType} runner not available for ${lang}.`); + this.p({ class: "block" }, `${argType} runner not available for ${lang}.`) // this.p({ class: 'block' }, () => { // this.text('If it should exist, add an '); // this.a({ href: encodedURI }, 'issue on GitHub'); // this.text(', or send your own pull request.'); // }, // ); - }); - this.handleError(err); + }) + this.handleError(err) } showUnableToRunError(command) { - this.add($$(function () { - this.h1('Unable to run'); - this.pre(_.escape(command)); - this.h2('Did you start Atom from the command line?'); - this.pre(' atom .'); - this.h2('Is it in your PATH?'); - this.pre(`PATH: ${_.escape(process.env.PATH)}`); - })); + this.add( + $$(function () { + this.h1("Unable to run") + this.pre(_.escape(command)) + this.h2("Did you start Atom from the command line?") + this.pre(" atom .") + this.h2("Is it in your PATH?") + this.pre(`PATH: ${_.escape(process.env.PATH)}`) + }) + ) } showNoLanguageSpecified() { const err = $$(function () { - this.p('You must select a language in the lower right, or save the file with an appropriate extension.'); - }); - this.handleError(err); + this.p("You must select a language in the lower right, or save the file with an appropriate extension.") + }) + this.handleError(err) } showLanguageNotSupported(lang) { const err = $$(function () { - this.p({ class: 'block' }, `Command not configured for ${lang}!`); - this.p({ class: 'block' }, () => { - this.text('Add an '); - this.a({ href: `https://github.com/atom-ide-community/atom-script/issues/new?title=Add%20support%20for%20${lang}` }, 'issue on GitHub'); - this.text(' or send your own Pull Request.'); - }); - }); - this.handleError(err); + this.p({ class: "block" }, `Command not configured for ${lang}!`) + this.p({ class: "block" }, () => { + this.text("Add an ") + this.a( + { href: `https://github.com/atom-ide-community/atom-script/issues/new?title=Add%20support%20for%20${lang}` }, + "issue on GitHub" + ) + this.text(" or send your own Pull Request.") + }) + }) + this.handleError(err) } handleError(err) { // Display error and kill process - this.setHeaderTitle('Error'); - this.setHeaderStatus('err'); - this.add(err); - this.stop(); + this.setHeaderTitle("Error") + this.setHeaderStatus("err") + this.add(err) + this.stop() } setHeaderStatus(status) { - this.headerView.setStatus(status); + this.headerView.setStatus(status) } setHeaderTitle(title) { - this.headerView.title.text(title); + this.headerView.title.text(title) } display(css, line) { - if (atom.config.get('script.escapeConsoleOutput')) { - line = _.escape(line); + if (atom.config.get("script.escapeConsoleOutput")) { + line = _.escape(line) } try { - line = this.ansiFilter.toHtml(line); + line = this.ansiFilter.toHtml(line) } catch (e) { // TODO why this happens https://github.com/atom-community/atom-script/issues/2358 - console.error(e); + console.error(e) } - line = linkPaths(line); + line = linkPaths(line) - const { clientHeight, scrollTop, scrollHeight } = this.body[0]; + const { clientHeight, scrollTop, scrollHeight } = this.body[0] // indicates that the panel is scrolled to the bottom, thus we know that // we are not interfering with the user's manual scrolling - const atEnd = scrollTop >= (scrollHeight - clientHeight); + const atEnd = scrollTop >= scrollHeight - clientHeight - this.add($$(function () { - this.pre({ class: `line ${css}` }, () => this.raw(line)); - })); + this.add( + $$(function () { + this.pre({ class: `line ${css}` }, () => this.raw(line)) + }) + ) - if (atom.config.get('script.scrollWithOutput') && atEnd) { + if (atom.config.get("script.scrollWithOutput") && atEnd) { // Scroll down in a polling loop 'cause // we don't know when the reflow will finish. // See: http://stackoverflow.com/q/5017923/407845 - this.checkScrollAgain(5)(); + this.checkScrollAgain(5)() } } checkScrollAgain(times) { return () => { - this.body.scrollToBottom(); + this.body.scrollToBottom() - clearTimeout(this.scrollTimeout); + clearTimeout(this.scrollTimeout) if (times > 1) { - this.scrollTimeout = setTimeout(this.checkScrollAgain(times - 1), 50); + this.scrollTimeout = setTimeout(this.checkScrollAgain(times - 1), 50) } - }; + } } copyResults() { if (this.results) { - atom.clipboard.write(stripAnsi(this.results)); + atom.clipboard.write(stripAnsi(this.results)) } } } diff --git a/lib/script.js b/lib/script.js index 072faac8..d648161a 100644 --- a/lib/script.js +++ b/lib/script.js @@ -1,66 +1,58 @@ -'use babel'; +"use babel" -import { CompositeDisposable } from 'atom'; +import { CompositeDisposable } from "atom" -import CodeContextBuilder from './code-context-builder'; -import GrammarUtils from './grammar-utils'; -import Runner from './runner'; -import Runtime from './runtime'; -import ScriptOptions from './script-options'; -import ScriptOptionsView from './script-options-view'; -import ScriptProfileRunView from './script-profile-run-view'; -import ScriptView from './script-view'; -import ViewRuntimeObserver from './view-runtime-observer'; +import CodeContextBuilder from "./code-context-builder" +import GrammarUtils from "./grammar-utils" +import Runner from "./runner" +import Runtime from "./runtime" +import ScriptOptions from "./script-options" +import ScriptOptionsView from "./script-options-view" +import ScriptProfileRunView from "./script-profile-run-view" +import ScriptView from "./script-view" +import ViewRuntimeObserver from "./view-runtime-observer" export const config = { enableExecTime: { - title: 'Output the time it took to execute the script', - type: 'boolean', + title: "Output the time it took to execute the script", + type: "boolean", default: true, }, escapeConsoleOutput: { - title: 'HTML escape console output', - type: 'boolean', + title: "HTML escape console output", + type: "boolean", default: true, }, ignoreSelection: { - title: 'Ignore selection (file-based runs only)', - type: 'boolean', + title: "Ignore selection (file-based runs only)", + type: "boolean", default: false, }, scrollWithOutput: { - title: 'Scroll with output', - type: 'boolean', + title: "Scroll with output", + type: "boolean", default: true, }, stopOnRerun: { - title: 'Stop running process on rerun', - type: 'boolean', + title: "Stop running process on rerun", + type: "boolean", default: false, }, cwdBehavior: { - title: 'Default Current Working Directory (CWD) Behavior', - description: 'If no Run Options are set, this setting decides how to determine the CWD', - type: 'string', - default: 'First project directory', - enum: [ - 'First project directory', - 'Project directory of the script', - 'Directory of the script', - ], + title: "Default Current Working Directory (CWD) Behavior", + description: "If no Run Options are set, this setting decides how to determine the CWD", + type: "string", + default: "First project directory", + enum: ["First project directory", "Project directory of the script", "Directory of the script"], }, position: { - title: 'Panel position', - description: 'Position of the panel with script output. \ - (Changes to this value will be applied upon reopening the panel.)', - type: 'string', - default: 'bottom', - enum: [ - 'top', - 'bottom', - 'left', - 'right', - ], + title: "Panel position", + description: + "Position of the panel with script output. \ + (Changes to this value will be applied upon reopening the panel.)", + type: "string", + default: "bottom", + enum: ["top", "bottom", "left", "right"], }, } @@ -77,103 +69,118 @@ let scriptProfileRunView = null let scriptOptions = null let scriptProfiles = [] let runtime = null -const subscriptions = new CompositeDisposable(); +const subscriptions = new CompositeDisposable() export function activate(state) { - scriptView = new ScriptView(state.scriptViewState); - scriptOptions = new ScriptOptions(); - scriptOptionsView = new ScriptOptionsView(scriptOptions); + scriptView = new ScriptView(state.scriptViewState) + scriptOptions = new ScriptOptions() + scriptOptionsView = new ScriptOptionsView(scriptOptions) // profiles loading - scriptProfiles = []; + scriptProfiles = [] if (state.profiles) { for (const profile of state.profiles) { - const so = ScriptOptions.createFromOptions(profile.name, profile); - scriptProfiles.push(so); + const so = ScriptOptions.createFromOptions(profile.name, profile) + scriptProfiles.push(so) } } - scriptProfileRunView = new ScriptProfileRunView(scriptProfiles); + scriptProfileRunView = new ScriptProfileRunView(scriptProfiles) - const codeContextBuilder = new CodeContextBuilder(); - const runner = new Runner(scriptOptions); + const codeContextBuilder = new CodeContextBuilder() + const runner = new Runner(scriptOptions) - const observer = new ViewRuntimeObserver(scriptView); + const observer = new ViewRuntimeObserver(scriptView) - runtime = new Runtime(runner, codeContextBuilder, [observer]); + runtime = new Runtime(runner, codeContextBuilder, [observer]) - subscriptions.add(atom.commands.add('atom-workspace', { - 'core:cancel': () => closeScriptViewAndStopRunner(), - 'core:close': () => closeScriptViewAndStopRunner(), - 'script:close-view': () => closeScriptViewAndStopRunner(), - 'script:copy-run-results': () => scriptView.copyResults(), - 'script:kill-process': () => runtime.stop(), - 'script:run-by-line-number': () => runtime.execute('Line Number Based'), - 'script:run': () => runtime.execute('Selection Based'), - })); + subscriptions.add( + atom.commands.add("atom-workspace", { + "core:cancel": () => closeScriptViewAndStopRunner(), + "core:close": () => closeScriptViewAndStopRunner(), + "script:close-view": () => closeScriptViewAndStopRunner(), + "script:copy-run-results": () => scriptView.copyResults(), + "script:kill-process": () => runtime.stop(), + "script:run-by-line-number": () => runtime.execute("Line Number Based"), + "script:run": () => runtime.execute("Selection Based"), + }) + ) // profile created scriptOptionsView.onProfileSave((profileData) => { // create and fill out profile - const profile = ScriptOptions.createFromOptions(profileData.name, profileData.options); + const profile = ScriptOptions.createFromOptions(profileData.name, profileData.options) const codeContext = runtime.codeContextBuilder.buildCodeContext( - atom.workspace.getActiveTextEditor(), 'Selection Based', - ); - profile.lang = codeContext.lang; + atom.workspace.getActiveTextEditor(), + "Selection Based" + ) + profile.lang = codeContext.lang // formatting description - const opts = profile.toObject(); - let desc = `Language: ${codeContext.lang}`; - if (opts.cmd) { desc += `, Command: ${opts.cmd}`; } - if (opts.cmdArgs && opts.cmd) { desc += ` ${opts.cmdArgs.join(' ')}`; } + const opts = profile.toObject() + let desc = `Language: ${codeContext.lang}` + if (opts.cmd) { + desc += `, Command: ${opts.cmd}` + } + if (opts.cmdArgs && opts.cmd) { + desc += ` ${opts.cmdArgs.join(" ")}` + } - profile.description = desc; - scriptProfiles.push(profile); + profile.description = desc + scriptProfiles.push(profile) - scriptOptionsView.hide(); - scriptProfileRunView.show(); - scriptProfileRunView.setProfiles(scriptProfiles); - }); + scriptOptionsView.hide() + scriptProfileRunView.show() + scriptProfileRunView.setProfiles(scriptProfiles) + }) // profile deleted scriptProfileRunView.onProfileDelete((profile) => { - const index = scriptProfiles.indexOf(profile); - if (index === -1) { return; } + const index = scriptProfiles.indexOf(profile) + if (index === -1) { + return + } - if (index !== -1) { scriptProfiles.splice(index, 1); } - scriptProfileRunView.setProfiles(scriptProfiles); - }); + if (index !== -1) { + scriptProfiles.splice(index, 1) + } + scriptProfileRunView.setProfiles(scriptProfiles) + }) // profile renamed scriptProfileRunView.onProfileChange((data) => { - const index = scriptProfiles.indexOf(data.profile); - if (index === -1 || !scriptProfiles[index][data.key]) { return; } + const index = scriptProfiles.indexOf(data.profile) + if (index === -1 || !scriptProfiles[index][data.key]) { + return + } - scriptProfiles[index][data.key] = data.value; - scriptProfileRunView.show(); - scriptProfileRunView.setProfiles(scriptProfiles); - }); + scriptProfiles[index][data.key] = data.value + scriptProfileRunView.show() + scriptProfileRunView.setProfiles(scriptProfiles) + }) // profile renamed return scriptProfileRunView.onProfileRun((profile) => { - if (!profile) { return; } - runtime.execute('Selection Based', null, profile); - }); + if (!profile) { + return + } + runtime.execute("Selection Based", null, profile) + }) } export function deactivate() { - runtime.destroy(); - scriptView.removePanel(); - scriptOptionsView.close(); - scriptProfileRunView.close(); - subscriptions.dispose(); - GrammarUtils.deleteTempFiles(); + runtime.destroy() + scriptView.removePanel() + scriptOptionsView.close() + scriptProfileRunView.close() + subscriptions.dispose() + GrammarUtils.deleteTempFiles() } export function closeScriptViewAndStopRunner() { - runtime.stop(); - scriptView.removePanel(); + runtime.stop() + scriptView.removePanel() } // Public @@ -191,7 +198,7 @@ export function closeScriptViewAndStopRunner() { // // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example export function provideDefaultRuntime() { - return runtime; + return runtime } // Public @@ -211,21 +218,23 @@ export function provideDefaultRuntime() { // // see https://github.com/s1mplex/Atom-Script-Runtime-Consumer-Sample for a full example export function provideBlankRuntime() { - const runner = new Runner(new ScriptOptions()); - const codeContextBuilder = new CodeContextBuilder(); + const runner = new Runner(new ScriptOptions()) + const codeContextBuilder = new CodeContextBuilder() - return new Runtime(runner, codeContextBuilder, []); + return new Runtime(runner, codeContextBuilder, []) } export function serialize() { // TODO: True serialization needs to take the options view into account // and handle deserialization - const serializedProfiles = []; - for (const profile of scriptProfiles) { serializedProfiles.push(profile.toObject()); } + const serializedProfiles = [] + for (const profile of scriptProfiles) { + serializedProfiles.push(profile.toObject()) + } return { scriptViewState: scriptView.serialize(), scriptOptionsViewState: scriptOptionsView.serialize(), profiles: serializedProfiles, - }; + } } diff --git a/lib/view-runtime-observer.js b/lib/view-runtime-observer.js index 23149a6b..c08a6e75 100644 --- a/lib/view-runtime-observer.js +++ b/lib/view-runtime-observer.js @@ -1,32 +1,42 @@ -'use babel'; +"use babel" -import { CompositeDisposable } from 'atom'; +import { CompositeDisposable } from "atom" export default class ViewRuntimeObserver { constructor(view, subscriptions = new CompositeDisposable()) { - this.view = view; - this.subscriptions = subscriptions; + this.view = view + this.subscriptions = subscriptions } observe(runtime) { - this.subscriptions.add(runtime.onStart(() => this.view.resetView())); - this.subscriptions.add(runtime.onStarted((ev) => { this.view.commandContext = ev; })); - this.subscriptions.add(runtime.onStopped(() => this.view.stop())); - this.subscriptions.add(runtime.onDidWriteToStderr((ev) => this.view.display('stderr', ev.message))); - this.subscriptions.add(runtime.onDidWriteToStdout((ev) => this.view.display('stdout', ev.message))); - this.subscriptions.add(runtime.onDidExit((ev) => this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime))); - this.subscriptions.add(runtime.onDidNotRun((ev) => this.view.showUnableToRunError(ev.command))); - this.subscriptions.add(runtime.onDidContextCreate((ev) => { - const title = `${ev.lang} - ${ev.filename}${ev.lineNumber ? `:${ev.lineNumber}` : ''}`; - this.view.setHeaderTitle(title); - })); - this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => this.view.showNoLanguageSpecified())); - this.subscriptions.add(runtime.onDidNotSupportLanguage((ev) => this.view.showLanguageNotSupported(ev.lang))); - this.subscriptions.add(runtime.onDidNotSupportMode((ev) => this.view.createGitHubIssueLink(ev.argType, ev.lang))); - this.subscriptions.add(runtime.onDidNotBuildArgs((ev) => this.view.handleError(ev.error))); + this.subscriptions.add(runtime.onStart(() => this.view.resetView())) + this.subscriptions.add( + runtime.onStarted((ev) => { + this.view.commandContext = ev + }) + ) + this.subscriptions.add(runtime.onStopped(() => this.view.stop())) + this.subscriptions.add(runtime.onDidWriteToStderr((ev) => this.view.display("stderr", ev.message))) + this.subscriptions.add(runtime.onDidWriteToStdout((ev) => this.view.display("stdout", ev.message))) + this.subscriptions.add( + runtime.onDidExit((ev) => this.view.setHeaderAndShowExecutionTime(ev.returnCode, ev.executionTime)) + ) + this.subscriptions.add(runtime.onDidNotRun((ev) => this.view.showUnableToRunError(ev.command))) + this.subscriptions.add( + runtime.onDidContextCreate((ev) => { + const title = `${ev.lang} - ${ev.filename}${ev.lineNumber ? `:${ev.lineNumber}` : ""}` + this.view.setHeaderTitle(title) + }) + ) + this.subscriptions.add(runtime.onDidNotSpecifyLanguage(() => this.view.showNoLanguageSpecified())) + this.subscriptions.add(runtime.onDidNotSupportLanguage((ev) => this.view.showLanguageNotSupported(ev.lang))) + this.subscriptions.add(runtime.onDidNotSupportMode((ev) => this.view.createGitHubIssueLink(ev.argType, ev.lang))) + this.subscriptions.add(runtime.onDidNotBuildArgs((ev) => this.view.handleError(ev.error))) } destroy() { - if (this.subscriptions) {this.subscriptions.dispose();} + if (this.subscriptions) { + this.subscriptions.dispose() + } } } diff --git a/spec/code-context-builder-spec.js b/spec/code-context-builder-spec.js index 46d83f42..d7f859c7 100644 --- a/spec/code-context-builder-spec.js +++ b/spec/code-context-builder-spec.js @@ -1,10 +1,8 @@ -'use babel'; +"use babel" // TODO -/* eslint-disable no-invalid-this */ // TODO +/* eslint-disable no-invalid-this */ import CodeContextBuilder from "../lib/code-context-builder" -import CodeContextBuilder from '../lib/code-context-builder'; - -describe('CodeContextBuilder', () => { +describe("CodeContextBuilder", () => { beforeEach(() => { this.editorMock = { getTitle() {}, @@ -13,52 +11,67 @@ describe('CodeContextBuilder', () => { getLastSelection() { return { isEmpty() { - return false; + return false }, - }; + } }, getGrammar() { - return { name: 'JavaScript' }; + return { name: "JavaScript" } }, getLastCursor() {}, save() {}, - }; + } - spyOn(this.editorMock, 'getTitle').andReturn('file.js'); - spyOn(this.editorMock, 'getPath').andReturn('path/to/file.js'); - spyOn(this.editorMock, 'getText').andReturn('console.log("hello")\n'); - this.codeContextBuilder = new CodeContextBuilder(); - }); + spyOn(this.editorMock, "getTitle").andReturn("file.js") + spyOn(this.editorMock, "getPath").andReturn("path/to/file.js") + spyOn(this.editorMock, "getText").andReturn('console.log("hello")\n') + this.codeContextBuilder = new CodeContextBuilder() + }) - describe('initCodeContext', () => { - it('sets correct text source for empty selection', () => { - const selection = { isEmpty() { return true; } }; - spyOn(this.editorMock, 'getLastSelection').andReturn(selection); - const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); - expect(codeContext.textSource).toEqual(this.editorMock); - expect(codeContext.filename).toEqual('file.js'); - expect(codeContext.filepath).toEqual('path/to/file.js'); - }); + describe("initCodeContext", () => { + it("sets correct text source for empty selection", () => { + const selection = { + isEmpty() { + return true + }, + } + spyOn(this.editorMock, "getLastSelection").andReturn(selection) + const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock) + expect(codeContext.textSource).toEqual(this.editorMock) + expect(codeContext.filename).toEqual("file.js") + expect(codeContext.filepath).toEqual("path/to/file.js") + }) - it('sets correct text source for non-empty selection', () => { - const selection = { isEmpty() { return false; } }; - spyOn(this.editorMock, 'getLastSelection').andReturn(selection); - const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); - expect(codeContext.textSource).toEqual(selection); - expect(codeContext.selection).toEqual(selection); - }); + it("sets correct text source for non-empty selection", () => { + const selection = { + isEmpty() { + return false + }, + } + spyOn(this.editorMock, "getLastSelection").andReturn(selection) + const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock) + expect(codeContext.textSource).toEqual(selection) + expect(codeContext.selection).toEqual(selection) + }) - it('sets correct lang', () => { - const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock); - expect(codeContext.lang).toEqual('JavaScript'); - }); - }); + it("sets correct lang", () => { + const codeContext = this.codeContextBuilder.initCodeContext(this.editorMock) + expect(codeContext.lang).toEqual("JavaScript") + }) + }) - describe('buildCodeContext', () => ['Selection Based', 'Line Number Based'].map((argType) => it(`sets lineNumber with screenRow + 1 when ${argType}`, () => { - const cursor = { getScreenRow() { return 1; } }; - spyOn(this.editorMock, 'getLastCursor').andReturn(cursor); - const codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType); - expect(codeContext.argType).toEqual(argType); - expect(codeContext.lineNumber).toEqual(2); - }))); -}); + describe("buildCodeContext", () => + ["Selection Based", "Line Number Based"].map((argType) => + it(`sets lineNumber with screenRow + 1 when ${argType}`, () => { + const cursor = { + getScreenRow() { + return 1 + }, + } + spyOn(this.editorMock, "getLastCursor").andReturn(cursor) + const codeContext = this.codeContextBuilder.buildCodeContext(this.editorMock, argType) + expect(codeContext.argType).toEqual(argType) + expect(codeContext.lineNumber).toEqual(2) + }) + )) +}) diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index 6287f6b5..f97fce24 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -1,132 +1,148 @@ -'use babel'; +"use babel" // TODO -/* eslint-disable no-invalid-this */ // TODO +/* eslint-disable no-invalid-this */ import tempy from "tempy" +import path from "path" -import tempy from 'tempy'; -import path from 'path'; +import CodeContext from "../lib/code-context" -import CodeContext from '../lib/code-context'; - -describe('CodeContext', () => { - const testFile = 'test.txt'; - let testFilePath; +describe("CodeContext", () => { + const testFile = "test.txt" + let testFilePath beforeEach(() => { - testFilePath = path.join(tempy.directory(), testFile); - this.codeContext = new CodeContext(testFile, testFilePath, null); + testFilePath = path.join(tempy.directory(), testFile) + this.codeContext = new CodeContext(testFile, testFilePath, null) // TODO: Test using an actual editor or a selection? - this.dummyTextSource = {}; - this.dummyTextSource.getText = () => "print 'hello world!'"; - }); - - describe('fileColonLine when lineNumber is not set', () => { - it('returns the full filepath when fullPath is truthy', () => { - expect(this.codeContext.fileColonLine()).toEqual(testFilePath); - expect(this.codeContext.fileColonLine(true)).toEqual(testFilePath); - }); - - it('returns only the filename and line number when fullPath is falsy', () => { - expect(this.codeContext.fileColonLine(false)).toEqual(testFile); - }); - }); - - describe('fileColonLine when lineNumber is set', () => { - it('returns the full filepath when fullPath is truthy', () => { - this.codeContext.lineNumber = 42; - expect(this.codeContext.fileColonLine()).toEqual(`${testFilePath}:42`); - expect(this.codeContext.fileColonLine(true)).toEqual(`${testFilePath}:42`); - }); - - it('returns only the filename and line number when fullPath is falsy', () => { - this.codeContext.lineNumber = 42; - expect(this.codeContext.fileColonLine(false)).toEqual(`${testFile}:42`); - }); - }); - - describe('getCode', () => { - it('returns undefined if no textSource is available', () => { - expect(this.codeContext.getCode()).toBe(null); - }); - - it('returns a string prepended with newlines when prependNewlines is truthy', () => { - this.codeContext.textSource = this.dummyTextSource; - this.codeContext.lineNumber = 3; - - const code = this.codeContext.getCode(true); - expect(typeof code).toEqual('string'); + this.dummyTextSource = {} + this.dummyTextSource.getText = () => "print 'hello world!'" + }) + + describe("fileColonLine when lineNumber is not set", () => { + it("returns the full filepath when fullPath is truthy", () => { + expect(this.codeContext.fileColonLine()).toEqual(testFilePath) + expect(this.codeContext.fileColonLine(true)).toEqual(testFilePath) + }) + + it("returns only the filename and line number when fullPath is falsy", () => { + expect(this.codeContext.fileColonLine(false)).toEqual(testFile) + }) + }) + + describe("fileColonLine when lineNumber is set", () => { + it("returns the full filepath when fullPath is truthy", () => { + this.codeContext.lineNumber = 42 + expect(this.codeContext.fileColonLine()).toEqual(`${testFilePath}:42`) + expect(this.codeContext.fileColonLine(true)).toEqual(`${testFilePath}:42`) + }) + + it("returns only the filename and line number when fullPath is falsy", () => { + this.codeContext.lineNumber = 42 + expect(this.codeContext.fileColonLine(false)).toEqual(`${testFile}:42`) + }) + }) + + describe("getCode", () => { + it("returns undefined if no textSource is available", () => { + expect(this.codeContext.getCode()).toBe(null) + }) + + it("returns a string prepended with newlines when prependNewlines is truthy", () => { + this.codeContext.textSource = this.dummyTextSource + this.codeContext.lineNumber = 3 + + const code = this.codeContext.getCode(true) + expect(typeof code).toEqual("string") // Since Array#join will create newlines for one less than the the number // of elements line number 3 means there should be two newlines - expect(code).toMatch("\n\nprint 'hello world!'"); - }); - - it('returns the text from the textSource when available', () => { - this.codeContext.textSource = this.dummyTextSource; - - const code = this.codeContext.getCode(); - expect(typeof code).toEqual('string'); - expect(code).toMatch("print 'hello world!'"); - }); - }); - - describe('shebangCommand when no shebang was found', () => it('returns undefined when no shebang is found', () => { - const lines = this.dummyTextSource.getText(); - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommand()).toBe(null); - })); - - describe('shebangCommand when a shebang was found', () => { - it('returns the command from the shebang', () => { - const lines = "#!/bin/bash\necho 'hello from bash!'"; - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommand()).toMatch('bash'); - }); - - it('returns /usr/bin/env as the command if applicable', () => { - const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommand()).toMatch('env'); - }); - - it('returns a command with non-alphabet characters', () => { - const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommand()).toMatch('python2.7'); - }); - }); - - describe('shebangCommandArgs when no shebang was found', () => it('returns [] when no shebang is found', () => { - const lines = this.dummyTextSource.getText(); - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommandArgs()).toMatch([]); - })); - - describe('shebangCommandArgs when a shebang was found', () => { - it('returns the command from the shebang', () => { - const lines = "#!/bin/bash\necho 'hello from bash!'"; - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommandArgs()).toMatch([]); - }); - - it('returns the true command as the first argument when /usr/bin/env is used', () => { - const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'"; - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - const args = this.codeContext.shebangCommandArgs(); - expect(args[0]).toMatch('ruby'); - expect(args).toMatch(['ruby', '-w']); - }); - - it('returns the command args when the command had non-alphabet characters', () => { - const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'"; - const firstLine = lines.split('\n')[0]; - if (firstLine.match(/^#!/)) { this.codeContext.shebang = firstLine; } - expect(this.codeContext.shebangCommandArgs()).toMatch([]); - }); - }); -}); + expect(code).toMatch("\n\nprint 'hello world!'") + }) + + it("returns the text from the textSource when available", () => { + this.codeContext.textSource = this.dummyTextSource + + const code = this.codeContext.getCode() + expect(typeof code).toEqual("string") + expect(code).toMatch("print 'hello world!'") + }) + }) + + describe("shebangCommand when no shebang was found", () => + it("returns undefined when no shebang is found", () => { + const lines = this.dummyTextSource.getText() + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + expect(this.codeContext.shebangCommand()).toBe(null) + })) + + describe("shebangCommand when a shebang was found", () => { + it("returns the command from the shebang", () => { + const lines = "#!/bin/bash\necho 'hello from bash!'" + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + expect(this.codeContext.shebangCommand()).toMatch("bash") + }) + + it("returns /usr/bin/env as the command if applicable", () => { + const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'" + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + expect(this.codeContext.shebangCommand()).toMatch("env") + }) + + it("returns a command with non-alphabet characters", () => { + const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'" + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + expect(this.codeContext.shebangCommand()).toMatch("python2.7") + }) + }) + + describe("shebangCommandArgs when no shebang was found", () => + it("returns [] when no shebang is found", () => { + const lines = this.dummyTextSource.getText() + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + expect(this.codeContext.shebangCommandArgs()).toMatch([]) + })) + + describe("shebangCommandArgs when a shebang was found", () => { + it("returns the command from the shebang", () => { + const lines = "#!/bin/bash\necho 'hello from bash!'" + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + expect(this.codeContext.shebangCommandArgs()).toMatch([]) + }) + + it("returns the true command as the first argument when /usr/bin/env is used", () => { + const lines = "#!/usr/bin/env ruby -w\nputs 'hello from ruby!'" + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + const args = this.codeContext.shebangCommandArgs() + expect(args[0]).toMatch("ruby") + expect(args).toMatch(["ruby", "-w"]) + }) + + it("returns the command args when the command had non-alphabet characters", () => { + const lines = "#!/usr/bin/python2.7\nprint 'hello from python!'" + const firstLine = lines.split("\n")[0] + if (firstLine.match(/^#!/)) { + this.codeContext.shebang = firstLine + } + expect(this.codeContext.shebangCommandArgs()).toMatch([]) + }) + }) +}) diff --git a/spec/fixtures/ioTest.js b/spec/fixtures/ioTest.js index 7fa743e1..76589d20 100644 --- a/spec/fixtures/ioTest.js +++ b/spec/fixtures/ioTest.js @@ -1,8 +1,8 @@ -process.stdin.setEncoding('utf8'); +process.stdin.setEncoding("utf8") -process.stdin.on('readable', () => { - const chunk = process.stdin.read(); +process.stdin.on("readable", () => { + const chunk = process.stdin.read() if (chunk) { - console.log(`TEST: ${chunk}`); + console.log(`TEST: ${chunk}`) } -}); +}) diff --git a/spec/fixtures/outputTest.js b/spec/fixtures/outputTest.js index e921523b..77281176 100644 --- a/spec/fixtures/outputTest.js +++ b/spec/fixtures/outputTest.js @@ -1 +1 @@ -console.log('hello'); +console.log("hello") diff --git a/spec/fixtures/stdinEndTest.js b/spec/fixtures/stdinEndTest.js index cea8b882..4f421933 100644 --- a/spec/fixtures/stdinEndTest.js +++ b/spec/fixtures/stdinEndTest.js @@ -1,6 +1,6 @@ -process.stdin.resume(); -process.stdin.setEncoding('utf8'); +process.stdin.resume() +process.stdin.setEncoding("utf8") -process.stdin.on('end', () => { - console.log('stdin terminated'); -}); +process.stdin.on("end", () => { + console.log("stdin terminated") +}) diff --git a/spec/fixtures/throw.js b/spec/fixtures/throw.js index 83025124..2e31bba8 100644 --- a/spec/fixtures/throw.js +++ b/spec/fixtures/throw.js @@ -1 +1 @@ -throw new Error('kaboom'); +throw new Error("kaboom") diff --git a/spec/grammar-utils/lisp-spec.js b/spec/grammar-utils/lisp-spec.js index eee6a956..e87b0795 100644 --- a/spec/grammar-utils/lisp-spec.js +++ b/spec/grammar-utils/lisp-spec.js @@ -1,47 +1,48 @@ -'use babel'; - -import GrammarUtils from '../../lib/grammar-utils'; - -describe('GrammarUtils', () => describe('Lisp', () => { - const toStatements = GrammarUtils.Lisp.splitStatements; - - it('returns empty array for empty code', () => { - const code = ''; - expect(toStatements(code)).toEqual([]); - }); - - it('does not split single statement', () => { - const code = '(print "dummy")'; - expect(toStatements(code)).toEqual([code]); - }); - - it('splits two simple statements', () => { - const code = '(print "dummy")(print "statement")'; - expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); - }); - - it('splits two simple statements in many lines', () => { - const code = '(print "dummy") \n\n (print "statement")'; - expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']); - }); - - it('does not split single line complex statement', () => { - const code = '(when t(setq a 2)(+ i 1))'; - expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))']); - }); - - it('does not split multi line complex statement', () => { - const code = '(when t(setq a 2) \n \t (+ i 1))'; - expect(toStatements(code)).toEqual(['(when t(setq a 2) \n \t (+ i 1))']); - }); - - it('splits single line complex statements', () => { - const code = '(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))'; - expect(toStatements(code)).toEqual(['(when t(setq a 2)(+ i 1))', '(when t(setq a 5)(+ i 3))']); - }); - - it('splits multi line complex statements', () => { - const code = '(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))'; - expect(toStatements(code)).toEqual(['(when t(\nsetq a 2)(+ i 1))', '(when t(\n\t setq a 5)(+ i 3))']); - }); -})); +"use babel" + +import GrammarUtils from "../../lib/grammar-utils" + +describe("GrammarUtils", () => + describe("Lisp", () => { + const toStatements = GrammarUtils.Lisp.splitStatements + + it("returns empty array for empty code", () => { + const code = "" + expect(toStatements(code)).toEqual([]) + }) + + it("does not split single statement", () => { + const code = '(print "dummy")' + expect(toStatements(code)).toEqual([code]) + }) + + it("splits two simple statements", () => { + const code = '(print "dummy")(print "statement")' + expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']) + }) + + it("splits two simple statements in many lines", () => { + const code = '(print "dummy") \n\n (print "statement")' + expect(toStatements(code)).toEqual(['(print "dummy")', '(print "statement")']) + }) + + it("does not split single line complex statement", () => { + const code = "(when t(setq a 2)(+ i 1))" + expect(toStatements(code)).toEqual(["(when t(setq a 2)(+ i 1))"]) + }) + + it("does not split multi line complex statement", () => { + const code = "(when t(setq a 2) \n \t (+ i 1))" + expect(toStatements(code)).toEqual(["(when t(setq a 2) \n \t (+ i 1))"]) + }) + + it("splits single line complex statements", () => { + const code = "(when t(setq a 2)(+ i 1))(when t(setq a 5)(+ i 3))" + expect(toStatements(code)).toEqual(["(when t(setq a 2)(+ i 1))", "(when t(setq a 5)(+ i 3))"]) + }) + + it("splits multi line complex statements", () => { + const code = "(when t(\nsetq a 2)(+ i 1)) \n\t (when t(\n\t setq a 5)(+ i 3))" + expect(toStatements(code)).toEqual(["(when t(\nsetq a 2)(+ i 1))", "(when t(\n\t setq a 5)(+ i 3))"]) + }) + })) diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 8f48c064..91c9463c 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -1,133 +1,137 @@ -'use babel'; +"use babel" // TODO -/* eslint-disable no-invalid-this */ // TODO +/* eslint-disable no-invalid-this */ import tempy from "tempy" +import path from "path" -import tempy from 'tempy'; -import path from 'path'; +import CodeContext from "../lib/code-context" +import OperatingSystem from "../lib/grammar-utils/operating-system" +import grammarMap from "../lib/grammars" -import CodeContext from '../lib/code-context'; -import OperatingSystem from '../lib/grammar-utils/operating-system'; -import grammarMap from '../lib/grammars'; - -describe('grammarMap', () => { - const testFile = 'test.txt'; - let testFilePath; +describe("grammarMap", () => { + const testFile = "test.txt" + let testFilePath beforeEach(() => { - testFilePath = path.join(tempy.directory(), testFile); - this.codeContext = new CodeContext(testFile, testFilePath, null); + testFilePath = path.join(tempy.directory(), testFile) + this.codeContext = new CodeContext(testFile, testFilePath, null) // TODO: Test using an actual editor or a selection? - this.dummyTextSource = {}; - this.dummyTextSource.getText = () => ''; - }); + this.dummyTextSource = {} + this.dummyTextSource.getText = () => "" + }) it("has a command and an args function set for each grammar's mode", () => { - this.codeContext.textSource = this.dummyTextSource; + this.codeContext.textSource = this.dummyTextSource for (const lang in grammarMap) { - const modes = grammarMap[lang]; + const modes = grammarMap[lang] for (const mode in modes) { - const commandContext = modes[mode]; + const commandContext = modes[mode] // TODO: fix the test for linux and windows - if (process.platform === 'darwin') { - expect(commandContext.command).toBeDefined(); + if (process.platform === "darwin") { + expect(commandContext.command).toBeDefined() } else { - console.warn(`This test does not work on ${process.platform}`, commandContext.command); + console.warn(`This test does not work on ${process.platform}`, commandContext.command) } - const argList = commandContext.args(this.codeContext); - expect(argList).toBeDefined(); + const argList = commandContext.args(this.codeContext) + expect(argList).toBeDefined() } } - }); + }) - describe('Operating system specific runners', () => { + describe("Operating system specific runners", () => { beforeEach(() => { - this.originalPlatform = OperatingSystem.platform; + this.originalPlatform = OperatingSystem.platform this.reloadGrammar = () => { - delete require.cache[require.resolve('../lib/grammars')]; - delete require.cache[require.resolve('../lib/grammars/index')]; - delete require.cache[require.resolve('../lib/grammars/c')]; - this.grammarMap = require('../lib/grammars'); - }; - }); + delete require.cache[require.resolve("../lib/grammars")] + delete require.cache[require.resolve("../lib/grammars/index")] + delete require.cache[require.resolve("../lib/grammars/c")] + this.grammarMap = require("../lib/grammars") + } + }) afterEach(() => { - OperatingSystem.platform = this.originalPlatform; - this.reloadGrammar(); - }); - - describe('C', () => it('returns the appropriate File Based runner on Mac OS X', () => { - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); - - const grammar = this.grammarMap.C; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang/); - })); - - describe('C++', () => it('returns the appropriate File Based runner on Mac OS X', () => { - if (process.platform === 'win32') {return;} - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); - - const grammar = this.grammarMap['C++']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang\+\+/); - })); - - describe('F#', () => { + OperatingSystem.platform = this.originalPlatform + this.reloadGrammar() + }) + + describe("C", () => + it("returns the appropriate File Based runner on Mac OS X", () => { + OperatingSystem.platform = () => "darwin" + this.reloadGrammar() + + const grammar = this.grammarMap.C + const fileBasedRunner = grammar["File Based"] + const args = fileBasedRunner.args(this.codeContext) + expect(fileBasedRunner.command).toEqual("bash") + expect(args[0]).toEqual("-c") + expect(args[1]).toMatch(/^xcrun clang/) + })) + + describe("C++", () => + it("returns the appropriate File Based runner on Mac OS X", () => { + if (process.platform === "win32") { + return + } + OperatingSystem.platform = () => "darwin" + this.reloadGrammar() + + const grammar = this.grammarMap["C++"] + const fileBasedRunner = grammar["File Based"] + const args = fileBasedRunner.args(this.codeContext) + expect(fileBasedRunner.command).toEqual("bash") + expect(args[0]).toEqual("-c") + expect(args[1]).toMatch(/^xcrun clang\+\+/) + })) + + describe("F#", () => { it('returns "fsi" as command for File Based runner on Windows', () => { - OperatingSystem.platform = () => 'win32'; - this.reloadGrammar(); + OperatingSystem.platform = () => "win32" + this.reloadGrammar() - const grammar = this.grammarMap['F#']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('fsi'); - expect(args[0]).toEqual('--exec'); - expect(args[1]).toEqual(this.codeContext.filepath); - }); + const grammar = this.grammarMap["F#"] + const fileBasedRunner = grammar["File Based"] + const args = fileBasedRunner.args(this.codeContext) + expect(fileBasedRunner.command).toEqual("fsi") + expect(args[0]).toEqual("--exec") + expect(args[1]).toEqual(this.codeContext.filepath) + }) it('returns "fsharpi" as command for File Based runner when platform is not Windows', () => { - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); - - const grammar = this.grammarMap['F#']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('fsharpi'); - expect(args[0]).toEqual('--exec'); - expect(args[1]).toEqual(this.codeContext.filepath); - }); - }); - - describe('Objective-C', () => it('returns the appropriate File Based runner on Mac OS X', () => { - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); - - const grammar = this.grammarMap['Objective-C']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang/); - })); - - describe('Objective-C++', () => it('returns the appropriate File Based runner on Mac OS X', () => { - OperatingSystem.platform = () => 'darwin'; - this.reloadGrammar(); - - const grammar = this.grammarMap['Objective-C++']; - const fileBasedRunner = grammar['File Based']; - const args = fileBasedRunner.args(this.codeContext); - expect(fileBasedRunner.command).toEqual('bash'); - expect(args[0]).toEqual('-c'); - expect(args[1]).toMatch(/^xcrun clang\+\+/); - })); - }); -}); + OperatingSystem.platform = () => "darwin" + this.reloadGrammar() + + const grammar = this.grammarMap["F#"] + const fileBasedRunner = grammar["File Based"] + const args = fileBasedRunner.args(this.codeContext) + expect(fileBasedRunner.command).toEqual("fsharpi") + expect(args[0]).toEqual("--exec") + expect(args[1]).toEqual(this.codeContext.filepath) + }) + }) + + describe("Objective-C", () => + it("returns the appropriate File Based runner on Mac OS X", () => { + OperatingSystem.platform = () => "darwin" + this.reloadGrammar() + + const grammar = this.grammarMap["Objective-C"] + const fileBasedRunner = grammar["File Based"] + const args = fileBasedRunner.args(this.codeContext) + expect(fileBasedRunner.command).toEqual("bash") + expect(args[0]).toEqual("-c") + expect(args[1]).toMatch(/^xcrun clang/) + })) + + describe("Objective-C++", () => + it("returns the appropriate File Based runner on Mac OS X", () => { + OperatingSystem.platform = () => "darwin" + this.reloadGrammar() + + const grammar = this.grammarMap["Objective-C++"] + const fileBasedRunner = grammar["File Based"] + const args = fileBasedRunner.args(this.codeContext) + expect(fileBasedRunner.command).toEqual("bash") + expect(args[0]).toEqual("-c") + expect(args[1]).toMatch(/^xcrun clang\+\+/) + })) + }) +}) diff --git a/spec/link-paths-spec.js b/spec/link-paths-spec.js index 3e4fbe97..aff5c1ff 100644 --- a/spec/link-paths-spec.js +++ b/spec/link-paths-spec.js @@ -1,32 +1,32 @@ -'use babel'; +"use babel" -import linkPaths from '../lib/link-paths'; +import linkPaths from "../lib/link-paths" -describe('linkPaths', () => { - it('detects file paths with line numbers', () => { - const result = linkPaths('foo() b/c.js:44:55'); - expect(result).toContain('foo() { + it("detects file paths with line numbers", () => { + const result = linkPaths("foo() b/c.js:44:55") + expect(result).toContain("foo() { - const result = linkPaths('foo() C:/b/c.js:44:55'); - expect(result).toContain('data-path="C:/b/c.js"'); - }); + it("detects file paths with Windows style drive prefix", () => { + const result = linkPaths("foo() C:/b/c.js:44:55") + expect(result).toContain('data-path="C:/b/c.js"') + }) - it('allow ommitting the column number', () => { - const result = linkPaths('foo() b/c.js:44'); - expect(result).toContain('data-line="44"'); - expect(result).toContain('data-column=""'); - }); + it("allow ommitting the column number", () => { + const result = linkPaths("foo() b/c.js:44") + expect(result).toContain('data-line="44"') + expect(result).toContain('data-column=""') + }) - it('links multiple paths', () => { - const multilineResult = linkPaths('foo() b/c.js:44:5\nbar() b/c.js:45:56'); - expect(multilineResult).toContain('foo() { + const multilineResult = linkPaths("foo() b/c.js:44:5\nbar() b/c.js:45:56") + expect(multilineResult).toContain("foo() { +describe("Runner", () => { beforeEach(() => { - this.command = 'node'; - this.runOptions = new ScriptOptions(); - this.runOptions.cmd = this.command; - this.runner = new Runner(this.runOptions); - }); + this.command = "node" + this.runOptions = new ScriptOptions() + this.runOptions.cmd = this.command + this.runner = new Runner(this.runOptions) + }) afterEach(() => { - this.runner.destroy(); - }); + this.runner.destroy() + }) - describe('run', () => { - it('with no input', () => { + describe("run", () => { + it("with no input", () => { runs(() => { - this.output = null; + this.output = null this.runner.onDidWriteToStdout((output) => { - this.output = output; - }); - this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); - }); + this.output = output + }) + this.runner.run(this.command, ["./spec/fixtures/outputTest.js"], {}) + }) - waitsFor(() => this.output !== null, 'File should execute', 2000); + waitsFor(() => this.output !== null, "File should execute", 2000) - runs(() => expect(this.output).toEqual({ message: 'hello\n' })); - }); + runs(() => expect(this.output).toEqual({ message: "hello\n" })) + }) - it('with an input string', () => { + it("with an input string", () => { runs(() => { - this.output = null; + this.output = null this.runner.onDidWriteToStdout((output) => { - this.output = output; - }); - this.runner.run(this.command, ['./spec/fixtures/ioTest.js'], {}, 'hello'); - }); + this.output = output + }) + this.runner.run(this.command, ["./spec/fixtures/ioTest.js"], {}, "hello") + }) - waitsFor(() => this.output !== null, 'File should execute', 2000); + waitsFor(() => this.output !== null, "File should execute", 2000) - runs(() => expect(this.output).toEqual({ message: 'TEST: hello\n' })); - }); + runs(() => expect(this.output).toEqual({ message: "TEST: hello\n" })) + }) - it('exits', () => { + it("exits", () => { runs(() => { - this.exited = false; + this.exited = false this.runner.onDidExit(() => { - this.exited = true; - }); - this.runner.run(this.command, ['./spec/fixtures/outputTest.js'], {}); - }); + this.exited = true + }) + this.runner.run(this.command, ["./spec/fixtures/outputTest.js"], {}) + }) - waitsFor(() => this.exited, 'Should receive exit callback', 2000); - }); + waitsFor(() => this.exited, "Should receive exit callback", 2000) + }) - it('notifies about writing to stderr', () => { + it("notifies about writing to stderr", () => { runs(() => { - this.failedEvent = null; + this.failedEvent = null this.runner.onDidWriteToStderr((event) => { - this.failedEvent = event; - }); - this.runner.run(this.command, ['./spec/fixtures/throw.js'], {}); - }); + this.failedEvent = event + }) + this.runner.run(this.command, ["./spec/fixtures/throw.js"], {}) + }) - waitsFor(() => this.failedEvent, 'Should receive failure callback', 2000); + waitsFor(() => this.failedEvent, "Should receive failure callback", 2000) - runs(() => expect(this.failedEvent.message).toMatch(/kaboom/)); - }); + runs(() => expect(this.failedEvent.message).toMatch(/kaboom/)) + }) - it('terminates stdin', () => { + it("terminates stdin", () => { runs(() => { - this.output = null; + this.output = null this.runner.onDidWriteToStdout((output) => { - this.output = output; - }); - this.runner.run(this.command, ['./spec/fixtures/stdinEndTest.js'], {}, 'unused input'); - }); + this.output = output + }) + this.runner.run(this.command, ["./spec/fixtures/stdinEndTest.js"], {}, "unused input") + }) - waitsFor(() => this.output !== null, 'File should execute', 2000); + waitsFor(() => this.output !== null, "File should execute", 2000) - runs(() => expect(this.output).toEqual({ message: 'stdin terminated\n' })); - }); - }); -}); + runs(() => expect(this.output).toEqual({ message: "stdin terminated\n" })) + }) + }) +}) diff --git a/spec/script-options-spec.js b/spec/script-options-spec.js index d139e33e..4b5414c9 100644 --- a/spec/script-options-spec.js +++ b/spec/script-options-spec.js @@ -1,56 +1,55 @@ -'use babel'; -/* eslint-disable no-invalid-this */ // TODO +"use babel" // TODO +/* eslint-disable no-invalid-this */ import ScriptOptions from "../lib/script-options" -import ScriptOptions from '../lib/script-options'; - -describe('ScriptOptions', () => { +describe("ScriptOptions", () => { beforeEach(() => { - this.scriptOptions = new ScriptOptions(); + this.scriptOptions = new ScriptOptions() this.dummyEnv = { - SCRIPT_CI: 'true', - SCRIPT_ENV: 'test', - _NUMBERS: '123', - }; - this.dummyEnvString = "SCRIPT_CI=true;SCRIPT_ENV='test';_NUMBERS=\"123\""; - }); + SCRIPT_CI: "true", + SCRIPT_ENV: "test", + _NUMBERS: "123", + } + this.dummyEnvString = "SCRIPT_CI=true;SCRIPT_ENV='test';_NUMBERS=\"123\"" + }) - describe('getEnv', () => { - it('should default to an empty env object', () => { - const env = this.scriptOptions.getEnv(); - expect(env).toEqual({}); - }); + describe("getEnv", () => { + it("should default to an empty env object", () => { + const env = this.scriptOptions.getEnv() + expect(env).toEqual({}) + }) - it('should parse a custom user environment', () => { - this.scriptOptions.env = this.dummyEnvString; - const env = this.scriptOptions.getEnv(); - expect(env).toEqual(this.dummyEnv); - }); - }); + it("should parse a custom user environment", () => { + this.scriptOptions.env = this.dummyEnvString + const env = this.scriptOptions.getEnv() + expect(env).toEqual(this.dummyEnv) + }) + }) - describe('mergedEnv', () => { - it('should default to the orignal env object', () => { - const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); - expect(mergedEnv).toEqual(this.dummyEnv); - }); + describe("mergedEnv", () => { + it("should default to the orignal env object", () => { + const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv) + expect(mergedEnv).toEqual(this.dummyEnv) + }) - it('should retain the original environment', () => { - this.scriptOptions.env = "TEST_VAR_1=one;TEST_VAR_2=\"two\";TEST_VAR_3='three'"; - const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); - expect(mergedEnv.SCRIPT_CI).toEqual('true'); - expect(mergedEnv.SCRIPT_ENV).toEqual('test'); - expect(mergedEnv._NUMBERS).toEqual('123'); - expect(mergedEnv.TEST_VAR_1).toEqual('one'); - expect(mergedEnv.TEST_VAR_2).toEqual('two'); - expect(mergedEnv.TEST_VAR_3).toEqual('three'); - }); + it("should retain the original environment", () => { + this.scriptOptions.env = "TEST_VAR_1=one;TEST_VAR_2=\"two\";TEST_VAR_3='three'" + const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv) + expect(mergedEnv.SCRIPT_CI).toEqual("true") + expect(mergedEnv.SCRIPT_ENV).toEqual("test") + expect(mergedEnv._NUMBERS).toEqual("123") + expect(mergedEnv.TEST_VAR_1).toEqual("one") + expect(mergedEnv.TEST_VAR_2).toEqual("two") + expect(mergedEnv.TEST_VAR_3).toEqual("three") + }) - it('should support special character values', () => { - this.scriptOptions.env = "TEST_VAR_1=o-n-e;TEST_VAR_2=\"nested\\\"doublequotes\\\"\";TEST_VAR_3='nested\\'singlequotes\\'';TEST_VAR_4='s p a c e s'"; - const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv); - expect(mergedEnv.TEST_VAR_1).toEqual('o-n-e'); - expect(mergedEnv.TEST_VAR_2).toEqual('nested\\"doublequotes\\"'); - expect(mergedEnv.TEST_VAR_3).toEqual("nested\\'singlequotes\\'"); - expect(mergedEnv.TEST_VAR_4).toEqual('s p a c e s'); - }); - }); -}); + it("should support special character values", () => { + this.scriptOptions.env = + "TEST_VAR_1=o-n-e;TEST_VAR_2=\"nested\\\"doublequotes\\\"\";TEST_VAR_3='nested\\'singlequotes\\'';TEST_VAR_4='s p a c e s'" + const mergedEnv = this.scriptOptions.mergedEnv(this.dummyEnv) + expect(mergedEnv.TEST_VAR_1).toEqual("o-n-e") + expect(mergedEnv.TEST_VAR_2).toEqual('nested\\"doublequotes\\"') + expect(mergedEnv.TEST_VAR_3).toEqual("nested\\'singlequotes\\'") + expect(mergedEnv.TEST_VAR_4).toEqual("s p a c e s") + }) + }) +}) diff --git a/spec/script-options-view-spec.js b/spec/script-options-view-spec.js index 47bf0170..dbd929b3 100644 --- a/spec/script-options-view-spec.js +++ b/spec/script-options-view-spec.js @@ -1,66 +1,80 @@ -'use babel'; +"use babel" -import ScriptOptionsView from '../lib/script-options-view'; +import ScriptOptionsView from "../lib/script-options-view" -describe('ScriptOptionsView', () => { - describe('splitArgs', () => { - [{ - text: '', - expectedArgs: [], - description: 'returns an empty array for empty string', - }, { - text: ' \t\n', - expectedArgs: [], - description: 'returns an empty array for just whitespace', - }, { - text: 'arg1 arg2', - expectedArgs: ['arg1', 'arg2'], - description: 'splits arguments on whitespace', - }, { - text: 'arg1=val1 arg2', - expectedArgs: ['arg1=val1', 'arg2'], - description: 'keeps argument values', - }, { - text: '"foo bar" arg2', - expectedArgs: ['foo bar', 'arg2'], - description: 'does not split quoted arguments on whitespace', - }, { - text: '\'foo bar\' arg2', - expectedArgs: ['foo bar', 'arg2'], - description: 'recognizes single quotes', - }, { - text: '"foo bar" "another string"', - expectedArgs: ['foo bar', 'another string'], - description: 'handles multiple quoted arguments', - }, { - text: '\'foo bar\' \'another string\'', - expectedArgs: ['foo bar', 'another string'], - description: 'handles multiple single quoted arguments', - }, { - text: '"foo bar" \'another string\'', - expectedArgs: ['foo bar', 'another string'], - description: 'handles multiple quoted arguments, with mixed single and double quotes', - }, { - text: 'arg1="foo bar"', - expectedArgs: ['arg1=foo bar'], - description: 'strips quotes from argument values', - }, { - text: 'arg1=\'foo bar\'', - expectedArgs: ['arg1=foo bar'], - description: 'strips single quotes from argument values', - }, { - text: '-e \'(load "{FILE_ACTIVE}")\'', - expectedArgs: ['-e', '(load "{FILE_ACTIVE}")'], - description: 'keeps nested quotes intact', - }, { - text: 'we"ird way to inc"l"ude spaces in arg"s', - expectedArgs: ['weird way to include spaces in args'], - description: 'supports multiple top level quotes', - }].forEach(({ text, expectedArgs, description }) => { +describe("ScriptOptionsView", () => { + describe("splitArgs", () => { + ;[ + { + text: "", + expectedArgs: [], + description: "returns an empty array for empty string", + }, + { + text: " \t\n", + expectedArgs: [], + description: "returns an empty array for just whitespace", + }, + { + text: "arg1 arg2", + expectedArgs: ["arg1", "arg2"], + description: "splits arguments on whitespace", + }, + { + text: "arg1=val1 arg2", + expectedArgs: ["arg1=val1", "arg2"], + description: "keeps argument values", + }, + { + text: '"foo bar" arg2', + expectedArgs: ["foo bar", "arg2"], + description: "does not split quoted arguments on whitespace", + }, + { + text: "'foo bar' arg2", + expectedArgs: ["foo bar", "arg2"], + description: "recognizes single quotes", + }, + { + text: '"foo bar" "another string"', + expectedArgs: ["foo bar", "another string"], + description: "handles multiple quoted arguments", + }, + { + text: "'foo bar' 'another string'", + expectedArgs: ["foo bar", "another string"], + description: "handles multiple single quoted arguments", + }, + { + text: "\"foo bar\" 'another string'", + expectedArgs: ["foo bar", "another string"], + description: "handles multiple quoted arguments, with mixed single and double quotes", + }, + { + text: 'arg1="foo bar"', + expectedArgs: ["arg1=foo bar"], + description: "strips quotes from argument values", + }, + { + text: "arg1='foo bar'", + expectedArgs: ["arg1=foo bar"], + description: "strips single quotes from argument values", + }, + { + text: "-e '(load \"{FILE_ACTIVE}\")'", + expectedArgs: ["-e", '(load "{FILE_ACTIVE}")'], + description: "keeps nested quotes intact", + }, + { + text: 'we"ird way to inc"l"ude spaces in arg"s', + expectedArgs: ["weird way to include spaces in args"], + description: "supports multiple top level quotes", + }, + ].forEach(({ text, expectedArgs, description }) => { it(description, () => { - const args = ScriptOptionsView.splitArgs(text); - expect(args).toEqual(expectedArgs); - }); - }); - }); -}); + const args = ScriptOptionsView.splitArgs(text) + expect(args).toEqual(expectedArgs) + }) + }) + }) +}) diff --git a/styles/script.less b/styles/script.less index fd3dd1c3..b0f873dc 100644 --- a/styles/script.less +++ b/styles/script.less @@ -51,7 +51,8 @@ .buttons { margin-top: 1rem; - .rename, .cancel { + .rename, + .cancel { float: left; margin-right: 5px; } From ae9b6f3f4c4e2cce105fe0d1eee49f010d9e5530 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:13:35 -0500 Subject: [PATCH 322/410] chore: misc format --- .mailmap | 104 ++++++++++++++++++++++++------------------------ LICENSE.md | 2 +- coffeelint.json | 5 --- package.json | 36 ++++++++--------- 4 files changed, 71 insertions(+), 76 deletions(-) delete mode 100644 coffeelint.json diff --git a/.mailmap b/.mailmap index 9722533f..ffcf05d1 100644 --- a/.mailmap +++ b/.mailmap @@ -1,54 +1,54 @@ -Alexey Slaykovsky Alexey Slaykovsky -Andy Hayden Andy Hayden -Ash Wilson Ash Wilson -Calvin Bottoms Calvin Bottoms -Calyhre Calyhre -Christian Kjaer Laustsen Christian Kjaer Laustsen -Ciaran Downey Ciaran Downey -Dan Dan -Daniel Bayley Daniel Bayley -Daniel Chatfield Daniel Chatfield -Dustin Blackman Dustin Blackman -Erran Carey Erran Carey -Florian Lefèvre Florian Lefèvre -Hans Rødtang Hans Rødtang -Hikaru Ojima Hikaru Ojima -Ilya Palkin Ilya Palkin -Ivan Storck Ivan Storck -Jake Sankey Jake Sankey -Johan Bruning Johan Bruning +Alexey Slaykovsky Alexey Slaykovsky +Andy Hayden Andy Hayden +Ash Wilson Ash Wilson +Calvin Bottoms Calvin Bottoms +Calyhre Calyhre +Christian Kjaer Laustsen Christian Kjaer Laustsen +Ciaran Downey Ciaran Downey +Dan Dan +Daniel Bayley Daniel Bayley +Daniel Chatfield Daniel Chatfield +Dustin Blackman Dustin Blackman +Erran Carey Erran Carey +Florian Lefèvre Florian Lefèvre +Hans Rødtang Hans Rødtang +Hikaru Ojima Hikaru Ojima +Ilya Palkin Ilya Palkin +Ivan Storck Ivan Storck +Jake Sankey Jake Sankey +Johan Bruning Johan Bruning Kyle Kelley Kyle Kelley -Kyle Kelley Kyle Kelley -Kyle Kelley rgbkrk -Lance Batson Lance Batson -Lance Batson Lance Batson -Lance Batson Lance Batson -Liam Dawson Liam Dawson -Lucas Magno Lucas Magno -Marek Piechut Marek Piechut -Mirek Rusin Mirek Rusin -Otto Robba Otto Robba -Pedro Rodriguez Pedro Rodriguez -Rafael Belvederese Rafael Belvederese -Rnhmjoj Rnhmjoj -Rodolfo Carvalho Rodolfo Carvalho -Sagi Sagi -Sergey Koshelev Sergey Koshelev -ThiconZ ThiconZ -ThiconZ ThiconZ -Tomasz Grodzki Tomasz Grodzki -Will Sahatdjian Will Sahatdjian -Yeonghoon Park Yeonghoon Park -benjamin benjamin -bryanweatherly bryanweatherly -cdingpeng cdingpeng -cormullion cormullion -dev dev -elclanrs elclanrs -fazo96 fazo96 -gerane gerane -jbtule jbtule -kami kami -liamdawson liamdawson -morinmorin morinmorin +Kyle Kelley Kyle Kelley +Kyle Kelley rgbkrk +Lance Batson Lance Batson +Lance Batson Lance Batson +Lance Batson Lance Batson +Liam Dawson Liam Dawson +Lucas Magno Lucas Magno +Marek Piechut Marek Piechut +Mirek Rusin Mirek Rusin +Otto Robba Otto Robba +Pedro Rodriguez Pedro Rodriguez +Rafael Belvederese Rafael Belvederese +Rnhmjoj Rnhmjoj +Rodolfo Carvalho Rodolfo Carvalho +Sagi Sagi +Sergey Koshelev Sergey Koshelev +ThiconZ ThiconZ +ThiconZ ThiconZ +Tomasz Grodzki Tomasz Grodzki +Will Sahatdjian Will Sahatdjian +Yeonghoon Park Yeonghoon Park +benjamin benjamin +bryanweatherly bryanweatherly +cdingpeng cdingpeng +cormullion cormullion +dev dev +elclanrs elclanrs +fazo96 fazo96 +gerane gerane +jbtule jbtule +kami kami +liamdawson liamdawson +morinmorin morinmorin icedvariables macodeblacko@gmail.com <=> diff --git a/LICENSE.md b/LICENSE.md index 6f8830e3..94f330bb 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -Copyright (c) 2014 Kyle Kelley +Copyright (c) 2021 Kyle Kelley, Atom Community Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/coffeelint.json b/coffeelint.json deleted file mode 100644 index 49595dd6..00000000 --- a/coffeelint.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "max_line_length": { - "level": "ignore" - } -} diff --git a/package.json b/package.json index 150199b4..0b85d7c9 100644 --- a/package.json +++ b/package.json @@ -10,17 +10,14 @@ "engines": { "atom": ">=0.174.0" }, - "activationCommands": { - "atom-text-editor": [ - "script:run", - "script:run-by-line-number", - "script:run-options", - "script:run-with-profile" - ] + "prettier": "prettier-config-atomic", + "scripts": { + "format": "prettier --write .", + "test.format": "prettier . --check", + "lint": "eslint . --fix", + "test.lint": "eslint .", + "test": "atom --test spec" }, - "activationHooks": [ - "core:loaded-shell-environment" - ], "dependencies": { "@babel/cli": "^7.13.10", "@babel/core": "^7.13.10", @@ -43,6 +40,17 @@ "prettier-config-atomic": "^1.0.1", "tempy": "^1.0.1" }, + "activationCommands": { + "atom-text-editor": [ + "script:run", + "script:run-by-line-number", + "script:run-options", + "script:run-with-profile" + ] + }, + "activationHooks": [ + "core:loaded-shell-environment" + ], "providedServices": { "default-script-runtime": { "description": "Provides default runtime that's configurable through Atom editor", @@ -57,14 +65,6 @@ } } }, - "prettier": "prettier-config-atomic", - "scripts": { - "format": "prettier --write .", - "test.format": "prettier . --check", - "lint": "eslint . --fix", - "test.lint": "eslint .", - "test": "atom --test spec" - }, "keywords": [ "script", "runner", From 2056c30ba132efd4cb4d09acdb804f347482c480 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:32:18 -0500 Subject: [PATCH 323/410] feat: decaffeinate ``` decaffeinate --use-js-modules --loose --disallow-invalid-constructors ./lib/grammars/ ``` --- lib/grammars/apple.coffee | 17 - lib/grammars/apple.js | 26 ++ lib/grammars/c.coffee | 109 ------ lib/grammars/c.js | 179 +++++++++ lib/grammars/coffeescript.coffee | 34 -- lib/grammars/coffeescript.js | 55 +++ lib/grammars/database.coffee | 32 -- lib/grammars/database.js | 52 +++ lib/grammars/doc.coffee | 65 ---- lib/grammars/doc.js | 127 +++++++ lib/grammars/fortran.coffee | 19 - lib/grammars/fortran.js | 24 ++ lib/grammars/haskell.coffee | 11 - lib/grammars/haskell.js | 17 + lib/grammars/index.coffee | 352 ------------------ lib/grammars/index.js | 621 +++++++++++++++++++++++++++++++ lib/grammars/java.coffee | 40 -- lib/grammars/java.js | 62 +++ lib/grammars/lisp.coffee | 36 -- lib/grammars/lisp.js | 62 +++ lib/grammars/lua.coffee | 24 -- lib/grammars/lua.js | 37 ++ lib/grammars/ml.coffee | 44 --- lib/grammars/ml.js | 66 ++++ lib/grammars/perl.coffee | 24 -- lib/grammars/perl.js | 37 ++ lib/grammars/php.coffee | 25 -- lib/grammars/php.js | 37 ++ lib/grammars/python.coffee | 27 -- lib/grammars/python.js | 39 ++ lib/grammars/ruby.coffee | 33 -- lib/grammars/ruby.js | 56 +++ lib/grammars/shell.coffee | 45 --- lib/grammars/shell.js | 71 ++++ lib/grammars/windows.coffee | 43 --- lib/grammars/windows.js | 66 ++++ 36 files changed, 1634 insertions(+), 980 deletions(-) delete mode 100644 lib/grammars/apple.coffee create mode 100644 lib/grammars/apple.js delete mode 100644 lib/grammars/c.coffee create mode 100644 lib/grammars/c.js delete mode 100644 lib/grammars/coffeescript.coffee create mode 100644 lib/grammars/coffeescript.js delete mode 100644 lib/grammars/database.coffee create mode 100644 lib/grammars/database.js delete mode 100644 lib/grammars/doc.coffee create mode 100644 lib/grammars/doc.js delete mode 100644 lib/grammars/fortran.coffee create mode 100644 lib/grammars/fortran.js delete mode 100644 lib/grammars/haskell.coffee create mode 100644 lib/grammars/haskell.js delete mode 100644 lib/grammars/index.coffee create mode 100644 lib/grammars/index.js delete mode 100644 lib/grammars/java.coffee create mode 100644 lib/grammars/java.js delete mode 100644 lib/grammars/lisp.coffee create mode 100644 lib/grammars/lisp.js delete mode 100644 lib/grammars/lua.coffee create mode 100644 lib/grammars/lua.js delete mode 100644 lib/grammars/ml.coffee create mode 100644 lib/grammars/ml.js delete mode 100644 lib/grammars/perl.coffee create mode 100644 lib/grammars/perl.js delete mode 100644 lib/grammars/php.coffee create mode 100644 lib/grammars/php.js delete mode 100644 lib/grammars/python.coffee create mode 100644 lib/grammars/python.js delete mode 100644 lib/grammars/ruby.coffee create mode 100644 lib/grammars/ruby.js delete mode 100644 lib/grammars/shell.coffee create mode 100644 lib/grammars/shell.js delete mode 100644 lib/grammars/windows.coffee create mode 100644 lib/grammars/windows.js diff --git a/lib/grammars/apple.coffee b/lib/grammars/apple.coffee deleted file mode 100644 index 49d29dcd..00000000 --- a/lib/grammars/apple.coffee +++ /dev/null @@ -1,17 +0,0 @@ -#{OperatingSystem} = require '../grammar-utils' - -module.exports = #if OperatingSystem.isDarwin() - - AppleScript: - 'Selection Based': - command: 'osascript' - args: (context) -> ['-e', context.getCode()] - - 'File Based': - command: 'osascript' - args: ({filepath}) -> [filepath] - - Swift: - 'File Based': - command: 'swift' - args: ({filepath}) -> [filepath] diff --git a/lib/grammars/apple.js b/lib/grammars/apple.js new file mode 100644 index 00000000..bff0a281 --- /dev/null +++ b/lib/grammars/apple.js @@ -0,0 +1,26 @@ +//{OperatingSystem} = require '../grammar-utils' + +export let AppleScript = { + "Selection Based": { + command: "osascript", + args(context) { + return ["-e", context.getCode()] + }, + }, + + "File Based": { + command: "osascript", + args({ filepath }) { + return [filepath] + }, + }, +} + +export let Swift = { + "File Based": { + command: "swift", + args({ filepath }) { + return [filepath] + }, + }, +} diff --git a/lib/grammars/c.coffee b/lib/grammars/c.coffee deleted file mode 100644 index ed2d5c40..00000000 --- a/lib/grammars/c.coffee +++ /dev/null @@ -1,109 +0,0 @@ -path = require 'path' -{OperatingSystem, command} = GrammarUtils = require '../grammar-utils' - -os = OperatingSystem.platform() -windows = OperatingSystem.isWindows() - -options = '-Wall -include stdio.h' - -args = ({filepath}) -> - args = switch os - when 'darwin' - "xcrun clang #{options} -fcolor-diagnostics '#{filepath}' -o /tmp/c.out && /tmp/c.out" - when 'linux' - "cc #{options} '#{filepath}' -o /tmp/c.out && /tmp/c.out" - return ['-c', args] - -exports.C = - 'File Based': - command: 'bash' - args: ({filepath}) -> - args = switch os - when 'darwin' - "xcrun clang #{options} -fcolor-diagnostics '#{filepath}' -o /tmp/c.out && /tmp/c.out" - when 'linux' - "cc #{options} '#{filepath}' -o /tmp/c.out && /tmp/c.out" - return ['-c', args] - - 'Selection Based': - command: 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.c') - args = switch os - when 'darwin' - "xcrun clang #{options} -fcolor-diagnostics #{tmpFile} -o /tmp/c.out && /tmp/c.out" - when 'linux' - "cc #{options} #{tmpFile} -o /tmp/c.out && /tmp/c.out" - return ['-c', args] - -exports['C#'] = - 'Selection Based': { - command - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.cs') - exe = tmpFile.replace /\.cs$/, '.exe' - if windows - return ["/c csc /out:#{exe} #{tmpFile} && #{exe}"] - else ['-c', "csc /out:#{exe} #{tmpFile} && mono #{exe}"] - } - 'File Based': { - command - args: ({filepath, filename}) -> - exe = filename.replace /\.cs$/, '.exe' - if windows - return ["/c csc #{filepath} && #{exe}"] - else ['-c', "csc '#{filepath}' && mono #{exe}"] - } -exports['C# Script File'] = - - 'Selection Based': - command: 'scriptcs' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.csx') - return ['-script', tmpFile] - 'File Based': - command: 'scriptcs' - args: ({filepath}) -> ['-script', filepath] - -exports['C++'] = - 'Selection Based': - command: 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.cpp') - args = switch os - when 'darwin' - "xcrun clang++ -std=c++14 #{options} -fcolor-diagnostics -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" - when 'linux' - "g++ #{options} -std=c++14 -include iostream #{tmpFile} -o /tmp/cpp.out && /tmp/cpp.out" - return ['-c', args] - - 'File Based': { - command - args: ({filepath}) -> - args = switch os - when 'darwin' - "xcrun clang++ -std=c++14 #{options} -fcolor-diagnostics -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - when 'linux' - "g++ -std=c++14 #{options} -include iostream '#{filepath}' -o /tmp/cpp.out && /tmp/cpp.out" - when 'win32' - if GrammarUtils.OperatingSystem.release().split('.').slice -1 >= '14399' - filepath = path.posix.join.apply(path.posix, [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1))).replace(':', '') - "g++ -std=c++14 #{options} -include iostream /mnt/#{filepath} -o /tmp/cpp.out && /tmp/cpp.out" - return GrammarUtils.formatArgs(args) - } -exports['C++14'] = exports['C++'] - -if os is 'darwin' - exports['Objective-C'] = - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "xcrun clang #{options} -fcolor-diagnostics -framework Cocoa '#{filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out"] - - exports['Objective-C++'] = - 'File Based': - command: 'bash' - args: ({filepath}) -> ['-c', "xcrun clang++ -Wc++11-extensions #{options} -fcolor-diagnostics -include iostream -framework Cocoa '#{filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out"] diff --git a/lib/grammars/c.js b/lib/grammars/c.js new file mode 100644 index 00000000..72845ba0 --- /dev/null +++ b/lib/grammars/c.js @@ -0,0 +1,179 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS205: Consider reworking code to avoid use of IIFEs + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let GrammarUtils +import path from "path" +const { OperatingSystem, command } = (GrammarUtils = require("../grammar-utils")) + +const os = OperatingSystem.platform() +const windows = OperatingSystem.isWindows() + +const options = "-Wall -include stdio.h" + +var args = function ({ filepath }) { + args = (() => { + switch (os) { + case "darwin": + return `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` + case "linux": + return `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` + } + })() + return ["-c", args] +} + +export let C = { + "File Based": { + command: "bash", + args({ filepath }) { + args = (() => { + switch (os) { + case "darwin": + return `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` + case "linux": + return `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` + } + })() + return ["-c", args] + }, + }, + + "Selection Based": { + command: "bash", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".c") + args = (() => { + switch (os) { + case "darwin": + return `xcrun clang ${options} -fcolor-diagnostics ${tmpFile} -o /tmp/c.out && /tmp/c.out` + case "linux": + return `cc ${options} ${tmpFile} -o /tmp/c.out && /tmp/c.out` + } + })() + return ["-c", args] + }, + }, +} + +exports["C#"] = { + "Selection Based": { + command, + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".cs") + const exe = tmpFile.replace(/\.cs$/, ".exe") + if (windows) { + return [`/c csc /out:${exe} ${tmpFile} && ${exe}`] + } else { + return ["-c", `csc /out:${exe} ${tmpFile} && mono ${exe}`] + } + }, + }, + "File Based": { + command, + args({ filepath, filename }) { + const exe = filename.replace(/\.cs$/, ".exe") + if (windows) { + return [`/c csc ${filepath} && ${exe}`] + } else { + return ["-c", `csc '${filepath}' && mono ${exe}`] + } + }, + }, +} +exports["C# Script File"] = { + "Selection Based": { + command: "scriptcs", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".csx") + return ["-script", tmpFile] + }, + }, + "File Based": { + command: "scriptcs", + args({ filepath }) { + return ["-script", filepath] + }, + }, +} + +exports["C++"] = { + "Selection Based": { + command: "bash", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") + args = (() => { + switch (os) { + case "darwin": + return `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` + case "linux": + return `g++ ${options} -std=c++14 -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` + } + })() + return ["-c", args] + }, + }, + + "File Based": { + command, + args({ filepath }) { + args = (() => { + switch (os) { + case "darwin": + return `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` + case "linux": + return `g++ -std=c++14 ${options} -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` + case "win32": + if ( + GrammarUtils.OperatingSystem.release() + .split(".") + .slice(-1 >= "14399") + ) { + filepath = path.posix.join + .apply( + path.posix, + [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1)) + ) + .replace(":", "") + return `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o /tmp/cpp.out && /tmp/cpp.out` + } + break + } + })() + return GrammarUtils.formatArgs(args) + }, + }, +} +exports["C++14"] = exports["C++"] + +if (os === "darwin") { + exports["Objective-C"] = { + "File Based": { + command: "bash", + args({ filepath }) { + return [ + "-c", + `xcrun clang ${options} -fcolor-diagnostics -framework Cocoa '${filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out`, + ] + }, + }, + } + + exports["Objective-C++"] = { + "File Based": { + command: "bash", + args({ filepath }) { + return [ + "-c", + `xcrun clang++ -Wc++11-extensions ${options} -fcolor-diagnostics -include iostream -framework Cocoa '${filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out`, + ] + }, + }, + } +} diff --git a/lib/grammars/coffeescript.coffee b/lib/grammars/coffeescript.coffee deleted file mode 100644 index 3a4df3a3..00000000 --- a/lib/grammars/coffeescript.coffee +++ /dev/null @@ -1,34 +0,0 @@ -path = require 'path' -{command} = GrammarUtils = require '../grammar-utils' - -bin = path.join __dirname, '../..', 'node_modules', '.bin' -coffee = path.join bin, 'coffee' -babel = path.join bin, 'babel' -babelConfig = path.join __dirname, 'babel.config.js' - -args = ({filepath}) -> - cmd = "'#{coffee}' -p '#{filepath}'|'#{babel}' --filename '#{bin} --config-file #{babelConfig}'| node" - return GrammarUtils.formatArgs(cmd) - -exports.CoffeeScript = - 'Selection Based': { - command - args: (context) -> - {scopeName} = atom.workspace.getActiveTextEditor()?.getGrammar() - lit = if scopeName?.includes 'lit' then 'lit' else '' - code = context.getCode() - filepath = GrammarUtils.createTempFileWithCode(code, ".#{lit}coffee") - return args({filepath}) - } - 'File Based': { command, args } - -exports['CoffeeScript (Literate)'] = exports.CoffeeScript - -exports.IcedCoffeeScript = - 'Selection Based': - command: 'iced' - args: (context) -> ['-e', context.getCode()] - - 'File Based': - command: 'iced' - args: ({filepath}) -> [filepath] diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js new file mode 100644 index 00000000..d3d36adc --- /dev/null +++ b/lib/grammars/coffeescript.js @@ -0,0 +1,55 @@ +/* + * decaffeinate suggestions: + * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining + * DS207: Consider shorter variations of null checks + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let GrammarUtils +import path from "path" +const { command } = (GrammarUtils = require("../grammar-utils")) + +const bin = path.join(__dirname, "../..", "node_modules", ".bin") +const coffee = path.join(bin, "coffee") +const babel = path.join(bin, "babel") +const babelConfig = path.join(__dirname, "babel.config.js") + +const args = function ({ filepath }) { + const cmd = `'${coffee}' -p '${filepath}'|'${babel}' --filename '${bin} --config-file ${babelConfig}'| node` + return GrammarUtils.formatArgs(cmd) +} + +export let CoffeeScript = { + "Selection Based": { + command, + args(context) { + const { scopeName } = __guard__(atom.workspace.getActiveTextEditor(), (x) => x.getGrammar()) + const lit = (scopeName != null ? scopeName.includes("lit") : undefined) ? "lit" : "" + const code = context.getCode() + const filepath = GrammarUtils.createTempFileWithCode(code, `.${lit}coffee`) + return args({ filepath }) + }, + }, + "File Based": { command, args }, +} + +exports["CoffeeScript (Literate)"] = exports.CoffeeScript + +export let IcedCoffeeScript = { + "Selection Based": { + command: "iced", + args(context) { + return ["-e", context.getCode()] + }, + }, + + "File Based": { + command: "iced", + args({ filepath }) { + return [filepath] + }, + }, +} + +function __guard__(value, transform) { + return typeof value !== "undefined" && value !== null ? transform(value) : undefined +} diff --git a/lib/grammars/database.coffee b/lib/grammars/database.coffee deleted file mode 100644 index e7b5dc3e..00000000 --- a/lib/grammars/database.coffee +++ /dev/null @@ -1,32 +0,0 @@ -message = "SQL requires setting 'Script: Run Options' directly. See https://github.com/atom-ide-community/atom-script/tree/master/examples/hello.sql for further information." - -module.exports = - - 'mongoDB (JavaScript)': - - 'Selection Based': - command: 'mongo' - args: (context) -> ['--eval', context.getCode()] - - 'File Based': - command: 'mongo' - args: ({filepath}) -> [filepath] - - SQL: - 'Selection Based': - command: 'echo' - args: -> [message] - - 'File Based': - command: 'echo' - args: -> [message] - - 'SQL (PostgreSQL)': - - 'Selection Based': - command: 'psql' - args: (context) -> ['-c', context.getCode()] - - 'File Based': - command: 'psql' - args: ({filepath}) -> ['-f', filepath] diff --git a/lib/grammars/database.js b/lib/grammars/database.js new file mode 100644 index 00000000..d0aa9bbb --- /dev/null +++ b/lib/grammars/database.js @@ -0,0 +1,52 @@ +const message = + "SQL requires setting 'Script: Run Options' directly. See https://github.com/atom-ide-community/atom-script/tree/master/examples/hello.sql for further information." + +export default { + "mongoDB (JavaScript)": { + "Selection Based": { + command: "mongo", + args(context) { + return ["--eval", context.getCode()] + }, + }, + + "File Based": { + command: "mongo", + args({ filepath }) { + return [filepath] + }, + }, + }, + + SQL: { + "Selection Based": { + command: "echo", + args() { + return [message] + }, + }, + + "File Based": { + command: "echo", + args() { + return [message] + }, + }, + }, + + "SQL (PostgreSQL)": { + "Selection Based": { + command: "psql", + args(context) { + return ["-c", context.getCode()] + }, + }, + + "File Based": { + command: "psql", + args({ filepath }) { + return ["-f", filepath] + }, + }, + }, +} diff --git a/lib/grammars/doc.coffee b/lib/grammars/doc.coffee deleted file mode 100644 index ce84135e..00000000 --- a/lib/grammars/doc.coffee +++ /dev/null @@ -1,65 +0,0 @@ -{shell} = require 'electron' -GrammarUtils = require '../grammar-utils' - -exports.DOT = - 'Selection Based': - command: 'dot' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') - ['-Tpng', tmpFile, '-o', tmpFile + '.png'] - - 'File Based': - command: 'dot' - args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] - -exports.gnuplot = - 'File Based': - command: 'gnuplot' - workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() - args: ({filepath}) -> ['-p', filepath] - -exports['Graphviz (DOT)'] = - - 'Selection Based': - command: 'dot' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.dot') - return ['-Tpng', tmpFile, '-o', tmpFile + '.png'] - - 'File Based': - command: 'dot' - args: ({filepath}) -> ['-Tpng', filepath, '-o', filepath + '.png'] - -exports.HTML = - 'File Based': - command: 'echo' - args: ({filepath}) -> - uri = 'file://' + filepath - shell.openExternal(uri) - return ['HTML file opened at:', uri] - -exports.LaTeX = - 'File Based': - command: 'latexmk' - args: ({filepath}) -> ['-cd', '-quiet', '-pdf', '-pv', '-shell-escape', filepath] - -exports.ConTeXt = - 'File Based': - command: 'context' - args: ({filepath}) -> ['--autopdf','--nonstopmode', '--synctex','--noconsole',filepath] - -exports['LaTeX Beamer'] = exports.LaTeX - -exports['Pandoc Markdown'] = - 'File Based': - command: 'panzer' - args: ({filepath}) -> [filepath, "--output='#{filepath}.pdf'"] - -exports.Sass = - 'File Based': - command: 'sass' - args: ({filepath}) -> [filepath] - -exports.SCSS = exports.Sass diff --git a/lib/grammars/doc.js b/lib/grammars/doc.js new file mode 100644 index 00000000..e365f822 --- /dev/null +++ b/lib/grammars/doc.js @@ -0,0 +1,127 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +import { shell } from "electron" +import GrammarUtils from "../grammar-utils" + +export let DOT = { + "Selection Based": { + command: "dot", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") + return ["-Tpng", tmpFile, "-o", tmpFile + ".png"] + }, + }, + + "File Based": { + command: "dot", + args({ filepath }) { + return ["-Tpng", filepath, "-o", filepath + ".png"] + }, + }, +} + +export let gnuplot = { + "File Based": { + command: "gnuplot", + workingDirectory: __guardMethod__( + __guardMethod__( + __guard__( + __guard__(atom.workspace.getActivePaneItem(), (x1) => x1.buffer), + (x) => x.file + ), + "getParent", + (o1) => o1.getParent() + ), + "getPath", + (o) => o.getPath() + ), + args({ filepath }) { + return ["-p", filepath] + }, + }, +} + +exports["Graphviz (DOT)"] = { + "Selection Based": { + command: "dot", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") + return ["-Tpng", tmpFile, "-o", tmpFile + ".png"] + }, + }, + + "File Based": { + command: "dot", + args({ filepath }) { + return ["-Tpng", filepath, "-o", filepath + ".png"] + }, + }, +} + +export let HTML = { + "File Based": { + command: "echo", + args({ filepath }) { + const uri = "file://" + filepath + shell.openExternal(uri) + return ["HTML file opened at:", uri] + }, + }, +} + +export let LaTeX = { + "File Based": { + command: "latexmk", + args({ filepath }) { + return ["-cd", "-quiet", "-pdf", "-pv", "-shell-escape", filepath] + }, + }, +} + +export let ConTeXt = { + "File Based": { + command: "context", + args({ filepath }) { + return ["--autopdf", "--nonstopmode", "--synctex", "--noconsole", filepath] + }, + }, +} + +exports["LaTeX Beamer"] = exports.LaTeX + +exports["Pandoc Markdown"] = { + "File Based": { + command: "panzer", + args({ filepath }) { + return [filepath, `--output='${filepath}.pdf'`] + }, + }, +} + +export let Sass = { + "File Based": { + command: "sass", + args({ filepath }) { + return [filepath] + }, + }, +} + +export let SCSS = exports.Sass + +function __guardMethod__(obj, methodName, transform) { + if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { + return transform(obj, methodName) + } else { + return undefined + } +} +function __guard__(value, transform) { + return typeof value !== "undefined" && value !== null ? transform(value) : undefined +} diff --git a/lib/grammars/fortran.coffee b/lib/grammars/fortran.coffee deleted file mode 100644 index 0858cddf..00000000 --- a/lib/grammars/fortran.coffee +++ /dev/null @@ -1,19 +0,0 @@ -path = require 'path' -{command} = GrammarUtils = require '../grammar-utils' - -exports['Fortran - Fixed Form'] = - 'File Based': { - command - args: ({filepath}) -> - cmd = "gfortran '#{filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out" - return GrammarUtils.formatArgs(cmd) - } -exports['Fortran - Free Form'] = - 'File Based': { - command - args: ({filepath}) -> - cmd = "gfortran '#{filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out" - return GrammarUtils.formatArgs(cmd) - } -exports['Fortran - Modern'] = exports['Fortran - Free Form'] -exports['Fortran - Punchcard'] = exports['Fortran - Fixed Form'] diff --git a/lib/grammars/fortran.js b/lib/grammars/fortran.js new file mode 100644 index 00000000..5e55a11c --- /dev/null +++ b/lib/grammars/fortran.js @@ -0,0 +1,24 @@ +let GrammarUtils +import path from "path" +const { command } = (GrammarUtils = require("../grammar-utils")) + +exports["Fortran - Fixed Form"] = { + "File Based": { + command, + args({ filepath }) { + const cmd = `gfortran '${filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out` + return GrammarUtils.formatArgs(cmd) + }, + }, +} +exports["Fortran - Free Form"] = { + "File Based": { + command, + args({ filepath }) { + const cmd = `gfortran '${filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out` + return GrammarUtils.formatArgs(cmd) + }, + }, +} +exports["Fortran - Modern"] = exports["Fortran - Free Form"] +exports["Fortran - Punchcard"] = exports["Fortran - Fixed Form"] diff --git a/lib/grammars/haskell.coffee b/lib/grammars/haskell.coffee deleted file mode 100644 index ace95ab9..00000000 --- a/lib/grammars/haskell.coffee +++ /dev/null @@ -1,11 +0,0 @@ -exports.Haskell = - 'Selection Based': - command: 'ghc' - args: (context) -> ['-e', context.getCode()] - - 'File Based': - command: 'runhaskell' - args: ({filepath}) -> [filepath] - -exports['Literate Haskell'] = - 'File Based': exports.Haskell['File Based'] diff --git a/lib/grammars/haskell.js b/lib/grammars/haskell.js new file mode 100644 index 00000000..04dac060 --- /dev/null +++ b/lib/grammars/haskell.js @@ -0,0 +1,17 @@ +export let Haskell = { + "Selection Based": { + command: "ghc", + args(context) { + return ["-e", context.getCode()] + }, + }, + + "File Based": { + command: "runhaskell", + args({ filepath }) { + return [filepath] + }, + }, +} + +exports["Literate Haskell"] = { "File Based": exports.Haskell["File Based"] } diff --git a/lib/grammars/index.coffee b/lib/grammars/index.coffee deleted file mode 100644 index 701b8876..00000000 --- a/lib/grammars/index.coffee +++ /dev/null @@ -1,352 +0,0 @@ -# Maps Atom Grammar names to the command used by that language -# As well as any special setup for arguments. - -path = require 'path' -{OperatingSystem, command} = GrammarUtils = require '../grammar-utils' - -os = OperatingSystem.platform() -arch = OperatingSystem.architecture() -windows = OperatingSystem.isWindows() - -module.exports = - '1C (BSL)': - 'File Based': - command: 'oscript' - args: ({filepath}) -> ['-encoding=utf-8', filepath] - - Ansible: - 'File Based': - command: 'ansible-playbook' - args: ({filepath}) -> [filepath] - - Clojure: - 'Selection Based': - command: 'lein' - args: (context) -> ['exec', '-e', context.getCode()] - 'File Based': - command: 'lein' - args: ({filepath}) -> ['exec', filepath] - - Crystal: - 'Selection Based': - command: 'crystal' - args: (context) -> ['eval', context.getCode()] - 'File Based': - command: 'crystal' - args: ({filepath}) -> [filepath] - - D: - 'Selection Based': - command: 'rdmd' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.D.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'rdmd' - args: ({filepath}) -> [filepath] - - Elixir: - 'Selection Based': - command: 'elixir' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'elixir' - args: ({filepath}) -> ['-r', filepath] - - Erlang: - 'Selection Based': - command: 'erl' - args: (context) -> ['-noshell', '-eval', "#{context.getCode()}, init:stop()."] - - 'F*': - 'File Based': - command: 'fstar' - args: ({filepath}) -> [filepath] - - 'F#': - 'File Based': - command: if windows then 'fsi' else 'fsharpi' - args: ({filepath}) -> ['--exec', filepath] - - Forth: - 'File Based': - command: 'gforth' - args: ({filepath}) -> [filepath] - - Gherkin: - 'File Based': - command: 'cucumber' - args: ({filepath}) -> ['--color', filepath] - 'Line Number Based': - command: 'cucumber' - args: (context) -> ['--color', context.fileColonLine()] - - Go: - 'File Based': - command: 'go' - workingDirectory: atom.workspace.getActivePaneItem()?.buffer?.file?.getParent?().getPath?() - args: ({filepath}) -> - if filepath.match(/_test.go/) then ['test', ''] - else ['run', filepath] - - Groovy: - 'Selection Based': - command: 'groovy' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'groovy' - args: ({filepath}) -> [filepath] - - Hy: - 'Selection Based': - command: 'hy' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.hy') - return [tmpFile] - 'File Based': - command: 'hy' - args: ({filepath}) -> [filepath] - - Idris: - 'File Based': - command: 'idris' - args: ({filepath}) -> [filepath, '-o', path.basename(filepath, path.extname(filepath))] - - InnoSetup: - 'File Based': - command: 'ISCC.exe' - args: ({filepath}) -> ['/Q', filepath] - - ioLanguage: - 'Selection Based': - command: 'io' - args: (context) -> [context.getCode()] - 'File Based': - command: 'io' - args: ({filepath}) -> ['-e', filepath] - - Jolie: - 'File Based': - command: 'jolie' - args: ({filepath}) -> [filepath] - - Julia: - 'Selection Based': - command: 'julia' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'julia' - args: ({filepath}) -> [filepath] - - LAMMPS: - if os in ['darwin', 'linux'] - 'File Based': - command: 'lammps' - args: ({filepath}) -> ['-log', 'none', '-in', filepath] - - LilyPond: - 'File Based': - command: 'lilypond' - args: ({filepath}) -> [filepath] - - LiveScript: - 'Selection Based': - command: 'lsc' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'lsc' - args: ({filepath}) -> [filepath] - - Makefile: - 'Selection Based': - command: 'bash' - args: (context) -> ['-c', context.getCode()] - - 'File Based': - command: 'make' - args: ({filepath}) -> ['-f', filepath] - - MATLAB: - 'Selection Based': - command: 'matlab' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) - return ['-nodesktop', '-nosplash', '-r', "try, run('#{tmpFile}'); while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] - 'File Based': - command: 'matlab' - args: ({filepath}) -> ['-nodesktop', '-nosplash', '-r', "try run('#{filepath}'); while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);"] - - 'MIPS Assembler': - 'File Based': - command: 'spim' - args: ({filepath}) -> ['-f', filepath] - - NCL: - 'Selection Based': - command: 'ncl' - args: (context) -> - code = context.getCode() + '\n\nexit' - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'ncl' - args: ({filepath}) -> [filepath] - - Nim: - 'File Based': { - command - args: ({filepath}) -> - file = GrammarUtils.Nim.findNimProjectFile(filepath) - dir = GrammarUtils.Nim.projectDir(filepath) - commands = "cd '#{dir}' && nim c --hints:off --parallelBuild:1 -r '#{file}' 2>&1" - return GrammarUtils.formatArgs(commands) - } - NSIS: - 'Selection Based': - command: 'makensis' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'makensis' - args: ({filepath}) -> [filepath] - - Octave: - 'Selection Based': - command: 'octave' - args: (context) -> - dir = path.dirname(context.filepath) - return ['-p', path.dirname(context.filepath), '--eval', context.getCode()] - 'File Based': - command: 'octave' - args: ({filepath}) -> ['-p', path.dirname(filepath), filepath] - - Oz: - 'Selection Based': - command: 'ozc' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return ['-c', tmpFile] - 'File Based': - command: 'ozc' - args: ({filepath}) -> ['-c', filepath] - - Pascal: - 'Selection Based': - command: 'fpc' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'fpc' - args: ({filepath}) -> [filepath] - - Povray: - 'File Based': { - command - args: ({filepath}) -> - commands = if windows then 'pvengine /EXIT /RENDER ' else 'povray ' - return GrammarUtils.formatArgs(commands+filepath) - } - - Prolog: - 'File Based': { - command - args: ({filepath}) -> - dir = path.dirname(filepath) - commands = "cd '#{dir}'; swipl -f '#{filepath}' -t main --quiet" - return GrammarUtils.formatArgs(commands) - } - PureScript: - 'File Based': { - command - args: ({filepath}) -> - dir = path.dirname(filepath) - return GrammarUtils.formatArgs("cd '#{dir}' && pulp run") - } - R: - 'Selection Based': - command: 'Rscript' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.R.createTempFileWithCode(code) - return [tmpFile] - 'File Based': - command: 'Rscript' - args: ({filepath}) -> [filepath] - - Racket: - 'Selection Based': - command: 'racket' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'racket' - args: ({filepath}) -> [filepath] - - "Ren'Py": - 'File Based': - command: 'renpy' - args: ({filepath}) -> [filepath.substr(0, filepath.lastIndexOf('/game'))] - - 'Robot Framework': - 'File Based': - command: 'robot' - args: ({filepath}) -> [filepath] - - Rust: - 'File Based': { - command - args: ({filepath, filename}) -> - if windows - return ["/c rustc #{filepath} && #{filename[..-4]}.exe"] - else ['-c', "rustc '#{filepath}' -o /tmp/rs.out && /tmp/rs.out"] - } - Scala: - 'Selection Based': - command: 'scala' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'scala' - args: ({filepath}) -> [filepath] - - Stata: - 'Selection Based': - command: 'stata' - args: (context) -> ['do', context.getCode()] - 'File Based': - command: 'stata' - args: ({filepath}) -> ['do', filepath] - - Turing: - 'File Based': - command: 'turing' - args: ({filepath}) -> ['-run', filepath] - - "x86 and x86_64 Assembly": - 'File Based': - command: 'bash' - args: ({filepath}) -> - args = switch arch - when 'x32' - "nasm -f elf '#{filepath}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" - when 'x64' - "nasm -f elf64 '#{filepath}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" - return ['-c', args] - - 'Selection Based': - command: 'bash' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.asm') - args = switch arch - when 'x32' - "nasm -f elf '#{tmpFile}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" - when 'x64' - "nasm -f elf64 '#{tmpFile}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out" - return ['-c', args] diff --git a/lib/grammars/index.js b/lib/grammars/index.js new file mode 100644 index 00000000..ad58c3ff --- /dev/null +++ b/lib/grammars/index.js @@ -0,0 +1,621 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining + * DS205: Consider reworking code to avoid use of IIFEs + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +// Maps Atom Grammar names to the command used by that language +// As well as any special setup for arguments. + +let GrammarUtils +import path from "path" +const { OperatingSystem, command } = (GrammarUtils = require("../grammar-utils")) + +const os = OperatingSystem.platform() +const arch = OperatingSystem.architecture() +const windows = OperatingSystem.isWindows() + +export default { + "1C (BSL)": { + "File Based": { + command: "oscript", + args({ filepath }) { + return ["-encoding=utf-8", filepath] + }, + }, + }, + + Ansible: { + "File Based": { + command: "ansible-playbook", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Clojure: { + "Selection Based": { + command: "lein", + args(context) { + return ["exec", "-e", context.getCode()] + }, + }, + "File Based": { + command: "lein", + args({ filepath }) { + return ["exec", filepath] + }, + }, + }, + + Crystal: { + "Selection Based": { + command: "crystal", + args(context) { + return ["eval", context.getCode()] + }, + }, + "File Based": { + command: "crystal", + args({ filepath }) { + return [filepath] + }, + }, + }, + + D: { + "Selection Based": { + command: "rdmd", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.D.createTempFileWithCode(code) + return [tmpFile] + }, + }, + "File Based": { + command: "rdmd", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Elixir: { + "Selection Based": { + command: "elixir", + args(context) { + return ["-e", context.getCode()] + }, + }, + "File Based": { + command: "elixir", + args({ filepath }) { + return ["-r", filepath] + }, + }, + }, + + Erlang: { + "Selection Based": { + command: "erl", + args(context) { + return ["-noshell", "-eval", `${context.getCode()}, init:stop().`] + }, + }, + }, + + "F*": { + "File Based": { + command: "fstar", + args({ filepath }) { + return [filepath] + }, + }, + }, + + "F#": { + "File Based": { + command: windows ? "fsi" : "fsharpi", + args({ filepath }) { + return ["--exec", filepath] + }, + }, + }, + + Forth: { + "File Based": { + command: "gforth", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Gherkin: { + "File Based": { + command: "cucumber", + args({ filepath }) { + return ["--color", filepath] + }, + }, + "Line Number Based": { + command: "cucumber", + args(context) { + return ["--color", context.fileColonLine()] + }, + }, + }, + + Go: { + "File Based": { + command: "go", + workingDirectory: __guardMethod__( + __guardMethod__( + __guard__( + __guard__(atom.workspace.getActivePaneItem(), (x1) => x1.buffer), + (x) => x.file + ), + "getParent", + (o1) => o1.getParent() + ), + "getPath", + (o) => o.getPath() + ), + args({ filepath }) { + if (filepath.match(/_test.go/)) { + return ["test", ""] + } else { + return ["run", filepath] + } + }, + }, + }, + + Groovy: { + "Selection Based": { + command: "groovy", + args(context) { + return ["-e", context.getCode()] + }, + }, + "File Based": { + command: "groovy", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Hy: { + "Selection Based": { + command: "hy", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".hy") + return [tmpFile] + }, + }, + "File Based": { + command: "hy", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Idris: { + "File Based": { + command: "idris", + args({ filepath }) { + return [filepath, "-o", path.basename(filepath, path.extname(filepath))] + }, + }, + }, + + InnoSetup: { + "File Based": { + command: "ISCC.exe", + args({ filepath }) { + return ["/Q", filepath] + }, + }, + }, + + ioLanguage: { + "Selection Based": { + command: "io", + args(context) { + return [context.getCode()] + }, + }, + "File Based": { + command: "io", + args({ filepath }) { + return ["-e", filepath] + }, + }, + }, + + Jolie: { + "File Based": { + command: "jolie", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Julia: { + "Selection Based": { + command: "julia", + args(context) { + return ["-e", context.getCode()] + }, + }, + "File Based": { + command: "julia", + args({ filepath }) { + return [filepath] + }, + }, + }, + + LAMMPS: ["darwin", "linux"].includes(os) + ? { + "File Based": { + command: "lammps", + args({ filepath }) { + return ["-log", "none", "-in", filepath] + }, + }, + } + : undefined, + + LilyPond: { + "File Based": { + command: "lilypond", + args({ filepath }) { + return [filepath] + }, + }, + }, + + LiveScript: { + "Selection Based": { + command: "lsc", + args(context) { + return ["-e", context.getCode()] + }, + }, + "File Based": { + command: "lsc", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Makefile: { + "Selection Based": { + command: "bash", + args(context) { + return ["-c", context.getCode()] + }, + }, + + "File Based": { + command: "make", + args({ filepath }) { + return ["-f", filepath] + }, + }, + }, + + MATLAB: { + "Selection Based": { + command: "matlab", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.MATLAB.createTempFileWithCode(code) + return [ + "-nodesktop", + "-nosplash", + "-r", + `try, run('${tmpFile}'); while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);`, + ] + }, + }, + "File Based": { + command: "matlab", + args({ filepath }) { + return [ + "-nodesktop", + "-nosplash", + "-r", + `try run('${filepath}'); while ~isempty(get(0,'Children')); pause(0.5); end; catch ME; disp(ME.message); exit(1); end; exit(0);`, + ] + }, + }, + }, + + "MIPS Assembler": { + "File Based": { + command: "spim", + args({ filepath }) { + return ["-f", filepath] + }, + }, + }, + + NCL: { + "Selection Based": { + command: "ncl", + args(context) { + const code = context.getCode() + "\n\nexit" + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + "File Based": { + command: "ncl", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Nim: { + "File Based": { + command, + args({ filepath }) { + const file = GrammarUtils.Nim.findNimProjectFile(filepath) + const dir = GrammarUtils.Nim.projectDir(filepath) + const commands = `cd '${dir}' && nim c --hints:off --parallelBuild:1 -r '${file}' 2>&1` + return GrammarUtils.formatArgs(commands) + }, + }, + }, + NSIS: { + "Selection Based": { + command: "makensis", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + "File Based": { + command: "makensis", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Octave: { + "Selection Based": { + command: "octave", + args(context) { + const dir = path.dirname(context.filepath) + return ["-p", path.dirname(context.filepath), "--eval", context.getCode()] + }, + }, + "File Based": { + command: "octave", + args({ filepath }) { + return ["-p", path.dirname(filepath), filepath] + }, + }, + }, + + Oz: { + "Selection Based": { + command: "ozc", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return ["-c", tmpFile] + }, + }, + "File Based": { + command: "ozc", + args({ filepath }) { + return ["-c", filepath] + }, + }, + }, + + Pascal: { + "Selection Based": { + command: "fpc", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + "File Based": { + command: "fpc", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Povray: { + "File Based": { + command, + args({ filepath }) { + const commands = windows ? "pvengine /EXIT /RENDER " : "povray " + return GrammarUtils.formatArgs(commands + filepath) + }, + }, + }, + + Prolog: { + "File Based": { + command, + args({ filepath }) { + const dir = path.dirname(filepath) + const commands = `cd '${dir}'; swipl -f '${filepath}' -t main --quiet` + return GrammarUtils.formatArgs(commands) + }, + }, + }, + PureScript: { + "File Based": { + command, + args({ filepath }) { + const dir = path.dirname(filepath) + return GrammarUtils.formatArgs(`cd '${dir}' && pulp run`) + }, + }, + }, + R: { + "Selection Based": { + command: "Rscript", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.R.createTempFileWithCode(code) + return [tmpFile] + }, + }, + "File Based": { + command: "Rscript", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Racket: { + "Selection Based": { + command: "racket", + args(context) { + return ["-e", context.getCode()] + }, + }, + "File Based": { + command: "racket", + args({ filepath }) { + return [filepath] + }, + }, + }, + + "Ren'Py": { + "File Based": { + command: "renpy", + args({ filepath }) { + return [filepath.substr(0, filepath.lastIndexOf("/game"))] + }, + }, + }, + + "Robot Framework": { + "File Based": { + command: "robot", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Rust: { + "File Based": { + command, + args({ filepath, filename }) { + if (windows) { + return [`/c rustc ${filepath} && ${filename.slice(0, +-4 + 1 || undefined)}.exe`] + } else { + return ["-c", `rustc '${filepath}' -o /tmp/rs.out && /tmp/rs.out`] + } + }, + }, + }, + Scala: { + "Selection Based": { + command: "scala", + args(context) { + return ["-e", context.getCode()] + }, + }, + "File Based": { + command: "scala", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Stata: { + "Selection Based": { + command: "stata", + args(context) { + return ["do", context.getCode()] + }, + }, + "File Based": { + command: "stata", + args({ filepath }) { + return ["do", filepath] + }, + }, + }, + + Turing: { + "File Based": { + command: "turing", + args({ filepath }) { + return ["-run", filepath] + }, + }, + }, + + "x86 and x86_64 Assembly": { + "File Based": { + command: "bash", + args({ filepath }) { + const args = (() => { + switch (arch) { + case "x32": + return `nasm -f elf '${filepath}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` + case "x64": + return `nasm -f elf64 '${filepath}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` + } + })() + return ["-c", args] + }, + }, + + "Selection Based": { + command: "bash", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".asm") + const args = (() => { + switch (arch) { + case "x32": + return `nasm -f elf '${tmpFile}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` + case "x64": + return `nasm -f elf64 '${tmpFile}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` + } + })() + return ["-c", args] + }, + }, + }, +} + +function __guardMethod__(obj, methodName, transform) { + if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { + return transform(obj, methodName) + } else { + return undefined + } +} +function __guard__(value, transform) { + return typeof value !== "undefined" && value !== null ? transform(value) : undefined +} diff --git a/lib/grammars/java.coffee b/lib/grammars/java.coffee deleted file mode 100644 index f4ba308c..00000000 --- a/lib/grammars/java.coffee +++ /dev/null @@ -1,40 +0,0 @@ -path = require 'path' -{command} = GrammarUtils = require '../grammar-utils' - -windows = GrammarUtils.OperatingSystem.isWindows() - -args = (filepath, jar) -> - jar = (jar ? path.basename(filepath)).replace /\.kt$/, '.jar' - cmd = "kotlinc '#{filepath}' -include-runtime -d #{jar} && java -jar #{jar}" - return GrammarUtils.formatArgs(cmd) - -module.exports = - - Java: - 'File Based': { - command - args: (context) -> - className = GrammarUtils.Java.getClassName context - classPackages = GrammarUtils.Java.getClassPackage context - sourcePath = GrammarUtils.Java.getProjectPath context - if windows - return ["/c javac -Xlint #{context.filename} && java #{className}"] - else ['-c', "javac -J-Dfile.encoding=UTF-8 -sourcepath '#{sourcePath}' -d /tmp '#{context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp:%CLASSPATH #{classPackages}#{className}"] - - } - Kotlin: - 'Selection Based': { - command - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.kt') - return args(tmpFile) - } - 'File Based': { - command - args: ({filepath, filename}) -> args(filepath, "/tmp/#{filename}") - } - Processing: - 'File Based': - command: 'processing-java' - args: ({filepath}) -> ["--sketch=#{path.dirname(filepath)}", "--run"] diff --git a/lib/grammars/java.js b/lib/grammars/java.js new file mode 100644 index 00000000..454f376e --- /dev/null +++ b/lib/grammars/java.js @@ -0,0 +1,62 @@ +/* + * 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 GrammarUtils +import path from "path" +const { command } = (GrammarUtils = require("../grammar-utils")) + +const windows = GrammarUtils.OperatingSystem.isWindows() + +const args = function (filepath, jar) { + jar = (jar != null ? jar : path.basename(filepath)).replace(/\.kt$/, ".jar") + const cmd = `kotlinc '${filepath}' -include-runtime -d ${jar} && java -jar ${jar}` + return GrammarUtils.formatArgs(cmd) +} + +export let Java = { + "File Based": { + command, + args(context) { + const className = GrammarUtils.Java.getClassName(context) + const classPackages = GrammarUtils.Java.getClassPackage(context) + const sourcePath = GrammarUtils.Java.getProjectPath(context) + if (windows) { + return [`/c javac -Xlint ${context.filename} && java ${className}`] + } else { + return [ + "-c", + `javac -J-Dfile.encoding=UTF-8 -sourcepath '${sourcePath}' -d /tmp '${context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp:%CLASSPATH ${classPackages}${className}`, + ] + } + }, + }, +} + +export let Kotlin = { + "Selection Based": { + command, + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".kt") + return args(tmpFile) + }, + }, + "File Based": { + command, + args({ filepath, filename }) { + return args(filepath, `/tmp/${filename}`) + }, + }, +} + +export let Processing = { + "File Based": { + command: "processing-java", + args({ filepath }) { + return [`--sketch=${path.dirname(filepath)}`, "--run"] + }, + }, +} diff --git a/lib/grammars/lisp.coffee b/lib/grammars/lisp.coffee deleted file mode 100644 index b00fe5fd..00000000 --- a/lib/grammars/lisp.coffee +++ /dev/null @@ -1,36 +0,0 @@ -_ = require 'underscore' -GrammarUtils = require '../grammar-utils' - -module.exports = - - 'Common Lisp': - 'File Based': - command: 'clisp' - args: ({filepath}) -> [filepath] - - Lisp: - 'Selection Based': - command: 'sbcl' - args: (context) -> - statements = _.flatten(_.map(GrammarUtils.Lisp.splitStatements(context.getCode()), (statement) -> ['--eval', statement])) - return _.union ['--noinform', '--disable-debugger', '--non-interactive', '--quit'], statements - - 'File Based': - command: 'sbcl' - args: ({filepath}) -> ['--noinform', '--script', filepath] - - newLISP: - 'Selection Based': - command: 'newlisp' - args: (context) -> ['-e', context.getCode()] - 'File Based': - command: 'newlisp' - args: ({filepath}) -> [filepath] - - Scheme: - 'Selection Based': - command: 'guile' - args: (context) -> ['-c', context.getCode()] - 'File Based': - command: 'guile' - args: ({filepath}) -> [filepath] diff --git a/lib/grammars/lisp.js b/lib/grammars/lisp.js new file mode 100644 index 00000000..01397bbb --- /dev/null +++ b/lib/grammars/lisp.js @@ -0,0 +1,62 @@ +import _ from "underscore" +import GrammarUtils from "../grammar-utils" + +export default { + "Common Lisp": { + "File Based": { + command: "clisp", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Lisp: { + "Selection Based": { + command: "sbcl", + args(context) { + const statements = _.flatten( + _.map(GrammarUtils.Lisp.splitStatements(context.getCode()), (statement) => ["--eval", statement]) + ) + return _.union(["--noinform", "--disable-debugger", "--non-interactive", "--quit"], statements) + }, + }, + + "File Based": { + command: "sbcl", + args({ filepath }) { + return ["--noinform", "--script", filepath] + }, + }, + }, + + newLISP: { + "Selection Based": { + command: "newlisp", + args(context) { + return ["-e", context.getCode()] + }, + }, + "File Based": { + command: "newlisp", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Scheme: { + "Selection Based": { + command: "guile", + args(context) { + return ["-c", context.getCode()] + }, + }, + "File Based": { + command: "guile", + args({ filepath }) { + return [filepath] + }, + }, + }, +} diff --git a/lib/grammars/lua.coffee b/lib/grammars/lua.coffee deleted file mode 100644 index 0ef07f45..00000000 --- a/lib/grammars/lua.coffee +++ /dev/null @@ -1,24 +0,0 @@ -GrammarUtils = require '../grammar-utils' - -exports.Lua = - 'Selection Based': - command: 'lua' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'lua' - args: ({filepath}) -> [filepath] - -exports['Lua (WoW)'] = exports.Lua - -exports.MoonScript = - 'Selection Based': - command: 'moon' - args: (context) -> ['-e', context.getCode()] - - 'File Based': - command: 'moon' - args: ({filepath}) -> [filepath] diff --git a/lib/grammars/lua.js b/lib/grammars/lua.js new file mode 100644 index 00000000..c9dec54f --- /dev/null +++ b/lib/grammars/lua.js @@ -0,0 +1,37 @@ +import GrammarUtils from "../grammar-utils" + +export let Lua = { + "Selection Based": { + command: "lua", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + + "File Based": { + command: "lua", + args({ filepath }) { + return [filepath] + }, + }, +} + +exports["Lua (WoW)"] = exports.Lua + +export let MoonScript = { + "Selection Based": { + command: "moon", + args(context) { + return ["-e", context.getCode()] + }, + }, + + "File Based": { + command: "moon", + args({ filepath }) { + return [filepath] + }, + }, +} diff --git a/lib/grammars/ml.coffee b/lib/grammars/ml.coffee deleted file mode 100644 index 1973cb8b..00000000 --- a/lib/grammars/ml.coffee +++ /dev/null @@ -1,44 +0,0 @@ -{command} = GrammarUtils = require '../grammar-utils' - -windows = GrammarUtils.OperatingSystem.isWindows() - -module.exports = - - BuckleScript: - 'Selection Based': - command: 'bsc' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return ['-c', tmpFile] - - 'File Based': - command: 'bsc' - args: ({filepath}) -> ['-c', filepath] - - OCaml: - 'File Based': - command: 'ocaml' - args: ({filepath}) -> [filepath] - - Reason: - 'File Based': { - command - args: ({filename}) -> - file = filename.replace /\.re$/, '.native' - GrammarUtils.formatArgs("rebuild '#{file}' && '#{file}'") - } - - 'Standard ML': - 'File Based': { - command: 'sml' - args: ({filename}) -> return [filename]; - } - - 'Selection Based': { - command: 'sml' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.sml') - return [tmpFile] - } diff --git a/lib/grammars/ml.js b/lib/grammars/ml.js new file mode 100644 index 00000000..a6f76e62 --- /dev/null +++ b/lib/grammars/ml.js @@ -0,0 +1,66 @@ +/* + * decaffeinate suggestions: + * DS102: Remove unnecessary code created because of implicit returns + * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md + */ +let GrammarUtils +const { command } = (GrammarUtils = require("../grammar-utils")) + +const windows = GrammarUtils.OperatingSystem.isWindows() + +export default { + BuckleScript: { + "Selection Based": { + command: "bsc", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return ["-c", tmpFile] + }, + }, + + "File Based": { + command: "bsc", + args({ filepath }) { + return ["-c", filepath] + }, + }, + }, + + OCaml: { + "File Based": { + command: "ocaml", + args({ filepath }) { + return [filepath] + }, + }, + }, + + Reason: { + "File Based": { + command, + args({ filename }) { + const file = filename.replace(/\.re$/, ".native") + return GrammarUtils.formatArgs(`rebuild '${file}' && '${file}'`) + }, + }, + }, + + "Standard ML": { + "File Based": { + command: "sml", + args({ filename }) { + return [filename] + }, + }, + + "Selection Based": { + command: "sml", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".sml") + return [tmpFile] + }, + }, + }, +} diff --git a/lib/grammars/perl.coffee b/lib/grammars/perl.coffee deleted file mode 100644 index a0aeefc8..00000000 --- a/lib/grammars/perl.coffee +++ /dev/null @@ -1,24 +0,0 @@ -GrammarUtils = require '../grammar-utils' - -exports.Perl = - 'Selection Based': - command: 'perl' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'perl' - args: ({filepath}) -> [filepath] - -exports['Raku'] = - 'Selection Based': - command: 'raku' - args: (context) -> ['-e', context.getCode()] - - 'File Based': - command: 'raku' - args: ({filepath}) -> [filepath] - -exports['Perl 6'] = exports['Raku'] diff --git a/lib/grammars/perl.js b/lib/grammars/perl.js new file mode 100644 index 00000000..fb1c6fd7 --- /dev/null +++ b/lib/grammars/perl.js @@ -0,0 +1,37 @@ +import GrammarUtils from "../grammar-utils" + +export let Perl = { + "Selection Based": { + command: "perl", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + + "File Based": { + command: "perl", + args({ filepath }) { + return [filepath] + }, + }, +} + +exports["Raku"] = { + "Selection Based": { + command: "raku", + args(context) { + return ["-e", context.getCode()] + }, + }, + + "File Based": { + command: "raku", + args({ filepath }) { + return [filepath] + }, + }, +} + +exports["Perl 6"] = exports["Raku"] diff --git a/lib/grammars/php.coffee b/lib/grammars/php.coffee deleted file mode 100644 index 21d65823..00000000 --- a/lib/grammars/php.coffee +++ /dev/null @@ -1,25 +0,0 @@ -GrammarUtils = require '../grammar-utils' - -module.exports = - - 'Behat Feature': - - 'File Based': - command: 'behat' - args: ({filepath}) -> [filepath] - - 'Line Number Based': - command: 'behat' - args: (context) -> [context.fileColonLine()] - - PHP: - 'Selection Based': - command: 'php' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.PHP.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'php' - args: ({filepath}) -> [filepath] diff --git a/lib/grammars/php.js b/lib/grammars/php.js new file mode 100644 index 00000000..33d2ff1e --- /dev/null +++ b/lib/grammars/php.js @@ -0,0 +1,37 @@ +import GrammarUtils from "../grammar-utils" + +export default { + "Behat Feature": { + "File Based": { + command: "behat", + args({ filepath }) { + return [filepath] + }, + }, + + "Line Number Based": { + command: "behat", + args(context) { + return [context.fileColonLine()] + }, + }, + }, + + PHP: { + "Selection Based": { + command: "php", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.PHP.createTempFileWithCode(code) + return [tmpFile] + }, + }, + + "File Based": { + command: "php", + args({ filepath }) { + return [filepath] + }, + }, + }, +} diff --git a/lib/grammars/python.coffee b/lib/grammars/python.coffee deleted file mode 100644 index 7125b362..00000000 --- a/lib/grammars/python.coffee +++ /dev/null @@ -1,27 +0,0 @@ -GrammarUtils = require '../grammar-utils' - -exports.Python = - 'Selection Based': - command: 'python' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return ['-u', tmpFile] - - 'File Based': - command: 'python' - args: ({filepath}) -> ['-u', filepath] - -exports.MagicPython = exports.Python - -exports.Sage = - 'Selection Based': - command: 'sage' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'sage' - args: ({filepath}) -> [filepath] diff --git a/lib/grammars/python.js b/lib/grammars/python.js new file mode 100644 index 00000000..0069a2de --- /dev/null +++ b/lib/grammars/python.js @@ -0,0 +1,39 @@ +import GrammarUtils from "../grammar-utils" + +export let Python = { + "Selection Based": { + command: "python", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return ["-u", tmpFile] + }, + }, + + "File Based": { + command: "python", + args({ filepath }) { + return ["-u", filepath] + }, + }, +} + +export let MagicPython = exports.Python + +export let Sage = { + "Selection Based": { + command: "sage", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + + "File Based": { + command: "sage", + args({ filepath }) { + return [filepath] + }, + }, +} diff --git a/lib/grammars/ruby.coffee b/lib/grammars/ruby.coffee deleted file mode 100644 index b8b2e4ef..00000000 --- a/lib/grammars/ruby.coffee +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = - - RSpec: - 'Selection Based': - command: 'ruby' - args: (context) -> ['-e', context.getCode()] - - 'File Based': - command: 'rspec' - args: ({filepath}) -> ['--tty', '--color', filepath] - - 'Line Number Based': - command: 'rspec' - args: (context) -> ['--tty', '--color', context.fileColonLine()] - - Ruby: - 'Selection Based': - command: 'ruby' - args: (context) -> ['-e', context.getCode()] - - 'File Based': - command: 'ruby' - args: ({filepath}) -> [filepath] - - 'Ruby on Rails': - - 'Selection Based': - command: 'rails' - args: (context) -> ['runner', context.getCode()] - - 'File Based': - command: 'rails' - args: ({filepath}) -> ['runner', filepath] diff --git a/lib/grammars/ruby.js b/lib/grammars/ruby.js new file mode 100644 index 00000000..c1f65c40 --- /dev/null +++ b/lib/grammars/ruby.js @@ -0,0 +1,56 @@ +export default { + RSpec: { + "Selection Based": { + command: "ruby", + args(context) { + return ["-e", context.getCode()] + }, + }, + + "File Based": { + command: "rspec", + args({ filepath }) { + return ["--tty", "--color", filepath] + }, + }, + + "Line Number Based": { + command: "rspec", + args(context) { + return ["--tty", "--color", context.fileColonLine()] + }, + }, + }, + + Ruby: { + "Selection Based": { + command: "ruby", + args(context) { + return ["-e", context.getCode()] + }, + }, + + "File Based": { + command: "ruby", + args({ filepath }) { + return [filepath] + }, + }, + }, + + "Ruby on Rails": { + "Selection Based": { + command: "rails", + args(context) { + return ["runner", context.getCode()] + }, + }, + + "File Based": { + command: "rails", + args({ filepath }) { + return ["runner", filepath] + }, + }, + }, +} diff --git a/lib/grammars/shell.coffee b/lib/grammars/shell.coffee deleted file mode 100644 index cfc03398..00000000 --- a/lib/grammars/shell.coffee +++ /dev/null @@ -1,45 +0,0 @@ -GrammarUtils = require '../grammar-utils' - -exports['Bash Automated Test System (Bats)'] = - 'Selection Based': - command: 'bats' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'bats' - args: ({filepath}) -> [filepath] - -exports.Bash = - 'Selection Based': - command: process.env.SHELL - args: (context) -> ['-c', context.getCode()] - - 'File Based': - command: process.env.SHELL - args: ({filepath}) -> [filepath] - -exports['Shell Script'] = exports.Bash - -exports['Shell Script (Fish)'] = - 'Selection Based': - command: 'fish' - args: (context) -> ['-c', context.getCode()] - - 'File Based': - command: 'fish' - args: ({filepath}) -> [filepath] - -exports.Tcl = - 'Selection Based': - command: 'tclsh' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'tclsh' - args: ({filepath}) -> [filepath] diff --git a/lib/grammars/shell.js b/lib/grammars/shell.js new file mode 100644 index 00000000..76ada018 --- /dev/null +++ b/lib/grammars/shell.js @@ -0,0 +1,71 @@ +import GrammarUtils from "../grammar-utils" + +exports["Bash Automated Test System (Bats)"] = { + "Selection Based": { + command: "bats", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + + "File Based": { + command: "bats", + args({ filepath }) { + return [filepath] + }, + }, +} + +export let Bash = { + "Selection Based": { + command: process.env.SHELL, + args(context) { + return ["-c", context.getCode()] + }, + }, + + "File Based": { + command: process.env.SHELL, + args({ filepath }) { + return [filepath] + }, + }, +} + +exports["Shell Script"] = exports.Bash + +exports["Shell Script (Fish)"] = { + "Selection Based": { + command: "fish", + args(context) { + return ["-c", context.getCode()] + }, + }, + + "File Based": { + command: "fish", + args({ filepath }) { + return [filepath] + }, + }, +} + +export let Tcl = { + "Selection Based": { + command: "tclsh", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + + "File Based": { + command: "tclsh", + args({ filepath }) { + return [filepath] + }, + }, +} diff --git a/lib/grammars/windows.coffee b/lib/grammars/windows.coffee deleted file mode 100644 index 7965fa8a..00000000 --- a/lib/grammars/windows.coffee +++ /dev/null @@ -1,43 +0,0 @@ -GrammarUtils = require '../grammar-utils' - -#if GrammarUtils.OperatingSystem.isWindows() - -exports.AutoHotKey = - 'Selection Based': - command: 'AutoHotKey' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code) - return [tmpFile] - - 'File Based': - command: 'AutoHotKey' - args: ({filepath}) -> [filepath] - -exports.Batch = - 'File Based': - command: 'cmd.exe' - args: ({filepath}) -> ['/q', '/c', filepath] - -exports['Batch File'] = exports.Batch - -exports.PowerShell = - 'Selection Based': - command: 'powershell' - args: (context) -> [context.getCode()] - - 'File Based': - command: 'powershell' - args: ({filepath}) -> [filepath.replace /\ /g, '` '] - -exports.VBScript = - 'Selection Based': - command: 'cscript' - args: (context) -> - code = context.getCode() - tmpFile = GrammarUtils.createTempFileWithCode(code, '.vbs') - return ['//NOLOGO', tmpFile] - - 'File Based': - command: 'cscript' - args: ({filepath}) -> ['//NOLOGO', filepath] diff --git a/lib/grammars/windows.js b/lib/grammars/windows.js new file mode 100644 index 00000000..119ae630 --- /dev/null +++ b/lib/grammars/windows.js @@ -0,0 +1,66 @@ +import GrammarUtils from "../grammar-utils" + +//if GrammarUtils.OperatingSystem.isWindows() + +export let AutoHotKey = { + "Selection Based": { + command: "AutoHotKey", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code) + return [tmpFile] + }, + }, + + "File Based": { + command: "AutoHotKey", + args({ filepath }) { + return [filepath] + }, + }, +} + +export let Batch = { + "File Based": { + command: "cmd.exe", + args({ filepath }) { + return ["/q", "/c", filepath] + }, + }, +} + +exports["Batch File"] = exports.Batch + +export let PowerShell = { + "Selection Based": { + command: "powershell", + args(context) { + return [context.getCode()] + }, + }, + + "File Based": { + command: "powershell", + args({ filepath }) { + return [filepath.replace(/\ /g, "` ")] + }, + }, +} + +export let VBScript = { + "Selection Based": { + command: "cscript", + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".vbs") + return ["//NOLOGO", tmpFile] + }, + }, + + "File Based": { + command: "cscript", + args({ filepath }) { + return ["//NOLOGO", filepath] + }, + }, +} From 3bf55c5d18ad7a75a3e59d19c5f7401d8d40139a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:33:11 -0500 Subject: [PATCH 324/410] chore: eslint fix --- lib/grammars/apple.js | 4 ++-- lib/grammars/c.js | 2 +- lib/grammars/coffeescript.js | 4 ++-- lib/grammars/doc.js | 24 ++++++++++++------------ lib/grammars/haskell.js | 2 +- lib/grammars/index.js | 4 ++-- lib/grammars/java.js | 6 +++--- lib/grammars/lua.js | 4 ++-- lib/grammars/perl.js | 6 +++--- lib/grammars/python.js | 6 +++--- lib/grammars/shell.js | 4 ++-- lib/grammars/windows.js | 10 +++++----- 12 files changed, 38 insertions(+), 38 deletions(-) diff --git a/lib/grammars/apple.js b/lib/grammars/apple.js index bff0a281..2a11c732 100644 --- a/lib/grammars/apple.js +++ b/lib/grammars/apple.js @@ -1,6 +1,6 @@ //{OperatingSystem} = require '../grammar-utils' -export let AppleScript = { +export const AppleScript = { "Selection Based": { command: "osascript", args(context) { @@ -16,7 +16,7 @@ export let AppleScript = { }, } -export let Swift = { +export const Swift = { "File Based": { command: "swift", args({ filepath }) { diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 72845ba0..1a0009f3 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -25,7 +25,7 @@ var args = function ({ filepath }) { return ["-c", args] } -export let C = { +export const C = { "File Based": { command: "bash", args({ filepath }) { diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index d3d36adc..8db0c0f5 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -18,7 +18,7 @@ const args = function ({ filepath }) { return GrammarUtils.formatArgs(cmd) } -export let CoffeeScript = { +export const CoffeeScript = { "Selection Based": { command, args(context) { @@ -34,7 +34,7 @@ export let CoffeeScript = { exports["CoffeeScript (Literate)"] = exports.CoffeeScript -export let IcedCoffeeScript = { +export const IcedCoffeeScript = { "Selection Based": { command: "iced", args(context) { diff --git a/lib/grammars/doc.js b/lib/grammars/doc.js index e365f822..b4b5d88b 100644 --- a/lib/grammars/doc.js +++ b/lib/grammars/doc.js @@ -7,25 +7,25 @@ import { shell } from "electron" import GrammarUtils from "../grammar-utils" -export let DOT = { +export const DOT = { "Selection Based": { command: "dot", args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") - return ["-Tpng", tmpFile, "-o", tmpFile + ".png"] + return ["-Tpng", tmpFile, "-o", `${tmpFile }.png`] }, }, "File Based": { command: "dot", args({ filepath }) { - return ["-Tpng", filepath, "-o", filepath + ".png"] + return ["-Tpng", filepath, "-o", `${filepath }.png`] }, }, } -export let gnuplot = { +export const gnuplot = { "File Based": { command: "gnuplot", workingDirectory: __guardMethod__( @@ -52,30 +52,30 @@ exports["Graphviz (DOT)"] = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") - return ["-Tpng", tmpFile, "-o", tmpFile + ".png"] + return ["-Tpng", tmpFile, "-o", `${tmpFile }.png`] }, }, "File Based": { command: "dot", args({ filepath }) { - return ["-Tpng", filepath, "-o", filepath + ".png"] + return ["-Tpng", filepath, "-o", `${filepath }.png`] }, }, } -export let HTML = { +export const HTML = { "File Based": { command: "echo", args({ filepath }) { - const uri = "file://" + filepath + const uri = `file://${ filepath}` shell.openExternal(uri) return ["HTML file opened at:", uri] }, }, } -export let LaTeX = { +export const LaTeX = { "File Based": { command: "latexmk", args({ filepath }) { @@ -84,7 +84,7 @@ export let LaTeX = { }, } -export let ConTeXt = { +export const ConTeXt = { "File Based": { command: "context", args({ filepath }) { @@ -104,7 +104,7 @@ exports["Pandoc Markdown"] = { }, } -export let Sass = { +export const Sass = { "File Based": { command: "sass", args({ filepath }) { @@ -113,7 +113,7 @@ export let Sass = { }, } -export let SCSS = exports.Sass +export const SCSS = exports.Sass function __guardMethod__(obj, methodName, transform) { if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { diff --git a/lib/grammars/haskell.js b/lib/grammars/haskell.js index 04dac060..a93e0c60 100644 --- a/lib/grammars/haskell.js +++ b/lib/grammars/haskell.js @@ -1,4 +1,4 @@ -export let Haskell = { +export const Haskell = { "Selection Based": { command: "ghc", args(context) { diff --git a/lib/grammars/index.js b/lib/grammars/index.js index ad58c3ff..a04aacff 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -353,7 +353,7 @@ export default { "Selection Based": { command: "ncl", args(context) { - const code = context.getCode() + "\n\nexit" + const code = `${context.getCode() }\n\nexit` const tmpFile = GrammarUtils.createTempFileWithCode(code) return [tmpFile] }, @@ -528,7 +528,7 @@ export default { command, args({ filepath, filename }) { if (windows) { - return [`/c rustc ${filepath} && ${filename.slice(0, +-4 + 1 || undefined)}.exe`] + return [`/c rustc ${filepath} && ${filename.slice(0, Number(-4) + 1 || undefined)}.exe`] } else { return ["-c", `rustc '${filepath}' -o /tmp/rs.out && /tmp/rs.out`] } diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 454f376e..b2234ad7 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -16,7 +16,7 @@ const args = function (filepath, jar) { return GrammarUtils.formatArgs(cmd) } -export let Java = { +export const Java = { "File Based": { command, args(context) { @@ -35,7 +35,7 @@ export let Java = { }, } -export let Kotlin = { +export const Kotlin = { "Selection Based": { command, args(context) { @@ -52,7 +52,7 @@ export let Kotlin = { }, } -export let Processing = { +export const Processing = { "File Based": { command: "processing-java", args({ filepath }) { diff --git a/lib/grammars/lua.js b/lib/grammars/lua.js index c9dec54f..94fa2fb8 100644 --- a/lib/grammars/lua.js +++ b/lib/grammars/lua.js @@ -1,6 +1,6 @@ import GrammarUtils from "../grammar-utils" -export let Lua = { +export const Lua = { "Selection Based": { command: "lua", args(context) { @@ -20,7 +20,7 @@ export let Lua = { exports["Lua (WoW)"] = exports.Lua -export let MoonScript = { +export const MoonScript = { "Selection Based": { command: "moon", args(context) { diff --git a/lib/grammars/perl.js b/lib/grammars/perl.js index fb1c6fd7..299fa273 100644 --- a/lib/grammars/perl.js +++ b/lib/grammars/perl.js @@ -1,6 +1,6 @@ import GrammarUtils from "../grammar-utils" -export let Perl = { +export const Perl = { "Selection Based": { command: "perl", args(context) { @@ -18,7 +18,7 @@ export let Perl = { }, } -exports["Raku"] = { +exports.Raku = { "Selection Based": { command: "raku", args(context) { @@ -34,4 +34,4 @@ exports["Raku"] = { }, } -exports["Perl 6"] = exports["Raku"] +exports["Perl 6"] = exports.Raku diff --git a/lib/grammars/python.js b/lib/grammars/python.js index 0069a2de..b8efa584 100644 --- a/lib/grammars/python.js +++ b/lib/grammars/python.js @@ -1,6 +1,6 @@ import GrammarUtils from "../grammar-utils" -export let Python = { +export const Python = { "Selection Based": { command: "python", args(context) { @@ -18,9 +18,9 @@ export let Python = { }, } -export let MagicPython = exports.Python +export const MagicPython = exports.Python -export let Sage = { +export const Sage = { "Selection Based": { command: "sage", args(context) { diff --git a/lib/grammars/shell.js b/lib/grammars/shell.js index 76ada018..754a0e37 100644 --- a/lib/grammars/shell.js +++ b/lib/grammars/shell.js @@ -18,7 +18,7 @@ exports["Bash Automated Test System (Bats)"] = { }, } -export let Bash = { +export const Bash = { "Selection Based": { command: process.env.SHELL, args(context) { @@ -52,7 +52,7 @@ exports["Shell Script (Fish)"] = { }, } -export let Tcl = { +export const Tcl = { "Selection Based": { command: "tclsh", args(context) { diff --git a/lib/grammars/windows.js b/lib/grammars/windows.js index 119ae630..db345982 100644 --- a/lib/grammars/windows.js +++ b/lib/grammars/windows.js @@ -2,7 +2,7 @@ import GrammarUtils from "../grammar-utils" //if GrammarUtils.OperatingSystem.isWindows() -export let AutoHotKey = { +export const AutoHotKey = { "Selection Based": { command: "AutoHotKey", args(context) { @@ -20,7 +20,7 @@ export let AutoHotKey = { }, } -export let Batch = { +export const Batch = { "File Based": { command: "cmd.exe", args({ filepath }) { @@ -31,7 +31,7 @@ export let Batch = { exports["Batch File"] = exports.Batch -export let PowerShell = { +export const PowerShell = { "Selection Based": { command: "powershell", args(context) { @@ -42,12 +42,12 @@ export let PowerShell = { "File Based": { command: "powershell", args({ filepath }) { - return [filepath.replace(/\ /g, "` ")] + return [filepath.replace(/ /g, "` ")] }, }, } -export let VBScript = { +export const VBScript = { "Selection Based": { command: "cscript", args(context) { From b746e9352642d2bb6b127af949fb4a81f14d8394 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:36:19 -0500 Subject: [PATCH 325/410] fix: the coffee file imports --- lib/grammars.js | 36 ++++++++++++++++++------------------ lib/runner.js | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index ca19d47e..41b94167 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -1,25 +1,25 @@ "use babel" -import grammarMap from "./grammars/index.coffee" +import grammarMap from "./grammars/index" -import apple from "./grammars/apple.coffee" -import c from "./grammars/c.coffee" -import coffeescript from "./grammars/coffeescript.coffee" -import database from "./grammars/database.coffee" -import doc from "./grammars/doc.coffee" -import fortran from "./grammars/fortran.coffee" -import haskell from "./grammars/haskell.coffee" -import java from "./grammars/java.coffee" +import * as apple from "./grammars/apple" +import * as c from "./grammars/c" +import * as coffeescript from "./grammars/coffeescript" +import database from "./grammars/database" +import * as doc from "./grammars/doc" +import * as fortran from "./grammars/fortran" +import * as haskell from "./grammars/haskell" +import * as java from "./grammars/java" import * as js from "./grammars/javascript" -import lisp from "./grammars/lisp.coffee" -import lua from "./grammars/lua.coffee" -import ml from "./grammars/ml.coffee" -import perl from "./grammars/perl.coffee" -import php from "./grammars/php.coffee" -import python from "./grammars/python.coffee" -import ruby from "./grammars/ruby.coffee" -import shell from "./grammars/shell.coffee" -import windows from "./grammars/windows.coffee" +import lisp from "./grammars/lisp" +import * as lua from "./grammars/lua" +import ml from "./grammars/ml" +import * as perl from "./grammars/perl" +import php from "./grammars/php" +import * as python from "./grammars/python" +import ruby from "./grammars/ruby" +import * as shell from "./grammars/shell" +import * as windows from "./grammars/windows" const Grammars = { ...grammarMap, diff --git a/lib/runner.js b/lib/runner.js index 204da4fc..61de0923 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -165,7 +165,7 @@ export default class Runner { args(codeContext, extraArgs) { // extraArgs = default command args from: - // - the grammars/.coffee file + // - the grammars/.js file // cmdArgs = customed command args from: // - a user's profil From cfe2bb21edc8a598c60c492e285ea647404410f0 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:40:26 -0500 Subject: [PATCH 326/410] fix: add use-babel --- lib/grammars/apple.js | 2 ++ lib/grammars/c.js | 2 ++ lib/grammars/coffeescript.js | 2 ++ lib/grammars/database.js | 2 ++ lib/grammars/doc.js | 2 ++ lib/grammars/fortran.js | 2 ++ lib/grammars/haskell.js | 2 ++ lib/grammars/index.js | 2 ++ lib/grammars/java.js | 2 ++ lib/grammars/lisp.js | 2 ++ lib/grammars/lua.js | 2 ++ lib/grammars/ml.js | 2 ++ lib/grammars/perl.js | 2 ++ lib/grammars/php.js | 2 ++ lib/grammars/python.js | 2 ++ lib/grammars/ruby.js | 2 ++ lib/grammars/shell.js | 2 ++ lib/grammars/windows.js | 2 ++ 18 files changed, 36 insertions(+) diff --git a/lib/grammars/apple.js b/lib/grammars/apple.js index 2a11c732..dbd4d470 100644 --- a/lib/grammars/apple.js +++ b/lib/grammars/apple.js @@ -1,3 +1,5 @@ +"use babel" + //{OperatingSystem} = require '../grammar-utils' export const AppleScript = { diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 1a0009f3..6b539131 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -1,3 +1,5 @@ +"use babel" + /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index 8db0c0f5..aa002103 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -1,3 +1,5 @@ +"use babel" + /* * decaffeinate suggestions: * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining diff --git a/lib/grammars/database.js b/lib/grammars/database.js index d0aa9bbb..46e3b721 100644 --- a/lib/grammars/database.js +++ b/lib/grammars/database.js @@ -1,3 +1,5 @@ +"use babel" + const message = "SQL requires setting 'Script: Run Options' directly. See https://github.com/atom-ide-community/atom-script/tree/master/examples/hello.sql for further information." diff --git a/lib/grammars/doc.js b/lib/grammars/doc.js index b4b5d88b..6b5c8794 100644 --- a/lib/grammars/doc.js +++ b/lib/grammars/doc.js @@ -1,3 +1,5 @@ +"use babel" + /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns diff --git a/lib/grammars/fortran.js b/lib/grammars/fortran.js index 5e55a11c..dc41f1c1 100644 --- a/lib/grammars/fortran.js +++ b/lib/grammars/fortran.js @@ -1,3 +1,5 @@ +"use babel" + let GrammarUtils import path from "path" const { command } = (GrammarUtils = require("../grammar-utils")) diff --git a/lib/grammars/haskell.js b/lib/grammars/haskell.js index a93e0c60..447e06ee 100644 --- a/lib/grammars/haskell.js +++ b/lib/grammars/haskell.js @@ -1,3 +1,5 @@ +"use babel" + export const Haskell = { "Selection Based": { command: "ghc", diff --git a/lib/grammars/index.js b/lib/grammars/index.js index a04aacff..e884674c 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -1,3 +1,5 @@ +"use babel" + /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns diff --git a/lib/grammars/java.js b/lib/grammars/java.js index b2234ad7..4777afa4 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -1,3 +1,5 @@ +"use babel" + /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns diff --git a/lib/grammars/lisp.js b/lib/grammars/lisp.js index 01397bbb..9ff3e695 100644 --- a/lib/grammars/lisp.js +++ b/lib/grammars/lisp.js @@ -1,3 +1,5 @@ +"use babel" + import _ from "underscore" import GrammarUtils from "../grammar-utils" diff --git a/lib/grammars/lua.js b/lib/grammars/lua.js index 94fa2fb8..5eb711d5 100644 --- a/lib/grammars/lua.js +++ b/lib/grammars/lua.js @@ -1,3 +1,5 @@ +"use babel" + import GrammarUtils from "../grammar-utils" export const Lua = { diff --git a/lib/grammars/ml.js b/lib/grammars/ml.js index a6f76e62..97f9d6af 100644 --- a/lib/grammars/ml.js +++ b/lib/grammars/ml.js @@ -1,3 +1,5 @@ +"use babel" + /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns diff --git a/lib/grammars/perl.js b/lib/grammars/perl.js index 299fa273..bb8fbc08 100644 --- a/lib/grammars/perl.js +++ b/lib/grammars/perl.js @@ -1,3 +1,5 @@ +"use babel" + import GrammarUtils from "../grammar-utils" export const Perl = { diff --git a/lib/grammars/php.js b/lib/grammars/php.js index 33d2ff1e..74264e57 100644 --- a/lib/grammars/php.js +++ b/lib/grammars/php.js @@ -1,3 +1,5 @@ +"use babel" + import GrammarUtils from "../grammar-utils" export default { diff --git a/lib/grammars/python.js b/lib/grammars/python.js index b8efa584..6c75d596 100644 --- a/lib/grammars/python.js +++ b/lib/grammars/python.js @@ -1,3 +1,5 @@ +"use babel" + import GrammarUtils from "../grammar-utils" export const Python = { diff --git a/lib/grammars/ruby.js b/lib/grammars/ruby.js index c1f65c40..3028cb2b 100644 --- a/lib/grammars/ruby.js +++ b/lib/grammars/ruby.js @@ -1,3 +1,5 @@ +"use babel" + export default { RSpec: { "Selection Based": { diff --git a/lib/grammars/shell.js b/lib/grammars/shell.js index 754a0e37..c9532c95 100644 --- a/lib/grammars/shell.js +++ b/lib/grammars/shell.js @@ -1,3 +1,5 @@ +"use babel" + import GrammarUtils from "../grammar-utils" exports["Bash Automated Test System (Bats)"] = { diff --git a/lib/grammars/windows.js b/lib/grammars/windows.js index db345982..3d22073d 100644 --- a/lib/grammars/windows.js +++ b/lib/grammars/windows.js @@ -1,3 +1,5 @@ +"use babel" + import GrammarUtils from "../grammar-utils" //if GrammarUtils.OperatingSystem.isWindows() From b1730581f348abc3966b1470851566222659cfb8 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:49:01 -0500 Subject: [PATCH 327/410] chore: format --- lib/grammars/doc.js | 10 +++++----- lib/grammars/index.js | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/grammars/doc.js b/lib/grammars/doc.js index 6b5c8794..2f10c33d 100644 --- a/lib/grammars/doc.js +++ b/lib/grammars/doc.js @@ -15,14 +15,14 @@ export const DOT = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") - return ["-Tpng", tmpFile, "-o", `${tmpFile }.png`] + return ["-Tpng", tmpFile, "-o", `${tmpFile}.png`] }, }, "File Based": { command: "dot", args({ filepath }) { - return ["-Tpng", filepath, "-o", `${filepath }.png`] + return ["-Tpng", filepath, "-o", `${filepath}.png`] }, }, } @@ -54,14 +54,14 @@ exports["Graphviz (DOT)"] = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dot") - return ["-Tpng", tmpFile, "-o", `${tmpFile }.png`] + return ["-Tpng", tmpFile, "-o", `${tmpFile}.png`] }, }, "File Based": { command: "dot", args({ filepath }) { - return ["-Tpng", filepath, "-o", `${filepath }.png`] + return ["-Tpng", filepath, "-o", `${filepath}.png`] }, }, } @@ -70,7 +70,7 @@ export const HTML = { "File Based": { command: "echo", args({ filepath }) { - const uri = `file://${ filepath}` + const uri = `file://${filepath}` shell.openExternal(uri) return ["HTML file opened at:", uri] }, diff --git a/lib/grammars/index.js b/lib/grammars/index.js index e884674c..0c30640d 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -355,7 +355,7 @@ export default { "Selection Based": { command: "ncl", args(context) { - const code = `${context.getCode() }\n\nexit` + const code = `${context.getCode()}\n\nexit` const tmpFile = GrammarUtils.createTempFileWithCode(code) return [tmpFile] }, From ff1fe86f8e37cc544eb285fc8184ffbfac3ed056 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:54:25 -0500 Subject: [PATCH 328/410] fix: in C - inline switch-case + add default case --- lib/grammars/c.js | 135 +++++++++++++++++++++++++++------------------- 1 file changed, 79 insertions(+), 56 deletions(-) diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 6b539131..2a96b8f6 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -15,31 +15,40 @@ const windows = OperatingSystem.isWindows() const options = "-Wall -include stdio.h" -var args = function ({ filepath }) { - args = (() => { - switch (os) { - case "darwin": - return `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` - case "linux": - return `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` +// TODO add windows support +function args({ filepath }) { + let cmdArgs = "" + switch (os) { + case "darwin": + cmdArgs = `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` + break + case "linux": + cmdArgs = `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` + break + default: { + atom.notifications.addError(`Not support on ${os}`) } - })() - return ["-c", args] + } + return ["-c", cmdArgs] } export const C = { "File Based": { command: "bash", args({ filepath }) { - args = (() => { - switch (os) { - case "darwin": - return `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` - case "linux": - return `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` + let cmdArgs = "" + switch (os) { + case "darwin": + cmdArgs = `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` + break + case "linux": + cmdArgs = `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` + break + default: { + atom.notifications.addError(`Not support on ${os}`) } - })() - return ["-c", args] + } + return ["-c", cmdArgs] }, }, @@ -48,15 +57,20 @@ export const C = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".c") - args = (() => { - switch (os) { - case "darwin": - return `xcrun clang ${options} -fcolor-diagnostics ${tmpFile} -o /tmp/c.out && /tmp/c.out` - case "linux": - return `cc ${options} ${tmpFile} -o /tmp/c.out && /tmp/c.out` + let cmdArgs = "" + switch (os) { + case "darwin": + cmdArgs = `xcrun clang ${options} -fcolor-diagnostics ${tmpFile} -o /tmp/c.out && /tmp/c.out` + break + case "linux": + cmdArgs = `cc ${options} ${tmpFile} -o /tmp/c.out && /tmp/c.out` + break + default: { + atom.notifications.addError(`Not support on ${os}`) } - })() - return ["-c", args] + } + + return ["-c", cmdArgs] }, }, } @@ -110,45 +124,54 @@ exports["C++"] = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") - args = (() => { - switch (os) { - case "darwin": - return `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` - case "linux": - return `g++ ${options} -std=c++14 -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` + let cmdArgs = "" + + switch (os) { + case "darwin": + cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` + break + case "linux": + cmdArgs = `g++ ${options} -std=c++14 -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` + break + default: { + atom.notifications.addError(`Not support on ${os}`) } - })() - return ["-c", args] + } + return ["-c", cmdArgs] }, }, "File Based": { command, args({ filepath }) { - args = (() => { - switch (os) { - case "darwin": - return `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` - case "linux": - return `g++ -std=c++14 ${options} -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` - case "win32": - if ( - GrammarUtils.OperatingSystem.release() - .split(".") - .slice(-1 >= "14399") - ) { - filepath = path.posix.join - .apply( - path.posix, - [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1)) - ) - .replace(":", "") - return `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o /tmp/cpp.out && /tmp/cpp.out` - } - break + let cmdArgs = "" + switch (os) { + case "darwin": + cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` + break + case "linux": + cmdArgs = `g++ -std=c++14 ${options} -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` + break + case "win32": + if ( + GrammarUtils.OperatingSystem.release() + .split(".") + .slice(-1 >= "14399") + ) { + filepath = path.posix.join + .apply( + path.posix, + [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1)) + ) + .replace(":", "") + cmdArgs = `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o /tmp/cpp.out && /tmp/cpp.out` + } + break + default: { + atom.notifications.addError(`Not support on ${os}`) } - })() - return GrammarUtils.formatArgs(args) + } + return GrammarUtils.formatArgs(cmdArgs) }, }, } From 45ed16de249abe58b0bfd9ba0f722b6ded621a2a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 11:59:48 -0500 Subject: [PATCH 329/410] fix: scopeName not defined --- lib/grammars/coffeescript.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index aa002103..edeb4428 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -1,11 +1,5 @@ "use babel" -/* - * decaffeinate suggestions: - * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining - * DS207: Consider shorter variations of null checks - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ let GrammarUtils import path from "path" const { command } = (GrammarUtils = require("../grammar-utils")) @@ -24,8 +18,9 @@ export const CoffeeScript = { "Selection Based": { command, args(context) { - const { scopeName } = __guard__(atom.workspace.getActiveTextEditor(), (x) => x.getGrammar()) - const lit = (scopeName != null ? scopeName.includes("lit") : undefined) ? "lit" : "" + const editor = atom.workspace.getActiveTextEditor() + const scopeName = editor ? editor.getGrammar().scopeName : null + const lit = scopeName !== null && scopeName.includes("lit") ? "lit" : "" const code = context.getCode() const filepath = GrammarUtils.createTempFileWithCode(code, `.${lit}coffee`) return args({ filepath }) @@ -51,7 +46,3 @@ export const IcedCoffeeScript = { }, }, } - -function __guard__(value, transform) { - return typeof value !== "undefined" && value !== null ? transform(value) : undefined -} From bd4fed46152013aca212f1a17199d1353cec0ef4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 12:02:11 -0500 Subject: [PATCH 330/410] chore: use multi-line string literal --- lib/script.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/script.js b/lib/script.js index d648161a..5bef9588 100644 --- a/lib/script.js +++ b/lib/script.js @@ -47,9 +47,8 @@ export const config = { }, position: { title: "Panel position", - description: - "Position of the panel with script output. \ - (Changes to this value will be applied upon reopening the panel.)", + description: `Position of the panel with script output. + (Changes to this value will be applied upon reopening the panel.)`, type: "string", default: "bottom", enum: ["top", "bottom", "left", "right"], From 0672bb3fa23190f2c18c3236076e6c84ef8f36f4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 12:07:46 -0500 Subject: [PATCH 331/410] chore: use imports instead of inline require --- lib/grammars/apple.js | 2 -- lib/grammars/c.js | 4 ++-- lib/grammars/coffeescript.js | 4 ++-- lib/grammars/fortran.js | 4 ++-- lib/grammars/index.js | 4 ++-- lib/grammars/java.js | 4 ++-- lib/grammars/ml.js | 4 ++-- 7 files changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/grammars/apple.js b/lib/grammars/apple.js index dbd4d470..499f24c8 100644 --- a/lib/grammars/apple.js +++ b/lib/grammars/apple.js @@ -1,7 +1,5 @@ "use babel" -//{OperatingSystem} = require '../grammar-utils' - export const AppleScript = { "Selection Based": { command: "osascript", diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 2a96b8f6..9990ca41 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -6,9 +6,9 @@ * DS205: Consider reworking code to avoid use of IIFEs * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -let GrammarUtils import path from "path" -const { OperatingSystem, command } = (GrammarUtils = require("../grammar-utils")) +import GrammarUtils from "../grammar-utils" +const { OperatingSystem, command } = GrammarUtils const os = OperatingSystem.platform() const windows = OperatingSystem.isWindows() diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index edeb4428..92ffe66f 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -1,8 +1,8 @@ "use babel" -let GrammarUtils import path from "path" -const { command } = (GrammarUtils = require("../grammar-utils")) +import GrammarUtils from "../grammar-utils" +const { command } = GrammarUtils const bin = path.join(__dirname, "../..", "node_modules", ".bin") const coffee = path.join(bin, "coffee") diff --git a/lib/grammars/fortran.js b/lib/grammars/fortran.js index dc41f1c1..c3529903 100644 --- a/lib/grammars/fortran.js +++ b/lib/grammars/fortran.js @@ -1,8 +1,8 @@ "use babel" -let GrammarUtils import path from "path" -const { command } = (GrammarUtils = require("../grammar-utils")) +import GrammarUtils from "../grammar-utils" +const { command } = GrammarUtils exports["Fortran - Fixed Form"] = { "File Based": { diff --git a/lib/grammars/index.js b/lib/grammars/index.js index 0c30640d..6e35e8e2 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -10,9 +10,9 @@ // Maps Atom Grammar names to the command used by that language // As well as any special setup for arguments. -let GrammarUtils import path from "path" -const { OperatingSystem, command } = (GrammarUtils = require("../grammar-utils")) +import GrammarUtils from "../grammar-utils" +const { OperatingSystem, command } = GrammarUtils const os = OperatingSystem.platform() const arch = OperatingSystem.architecture() diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 4777afa4..1fd84e74 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -6,9 +6,9 @@ * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -let GrammarUtils import path from "path" -const { command } = (GrammarUtils = require("../grammar-utils")) +import GrammarUtils from "../grammar-utils" +const { command } = GrammarUtils const windows = GrammarUtils.OperatingSystem.isWindows() diff --git a/lib/grammars/ml.js b/lib/grammars/ml.js index 97f9d6af..2e2ea2ff 100644 --- a/lib/grammars/ml.js +++ b/lib/grammars/ml.js @@ -5,8 +5,8 @@ * DS102: Remove unnecessary code created because of implicit returns * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -let GrammarUtils -const { command } = (GrammarUtils = require("../grammar-utils")) +import GrammarUtils from "../grammar-utils" +const { command } = GrammarUtils const windows = GrammarUtils.OperatingSystem.isWindows() From d0d37effe7ac8e43e70f0443fe70b1122a8b9f2c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 12:11:19 -0500 Subject: [PATCH 332/410] test: print more info to help testing --- spec/grammars-spec.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 91c9463c..7de17a61 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -25,6 +25,10 @@ describe("grammarMap", () => { const modes = grammarMap[lang] for (const mode in modes) { const commandContext = modes[mode] + + // print more info to help testing + console.log({ lang, commandContext }) + // TODO: fix the test for linux and windows if (process.platform === "darwin") { expect(commandContext.command).toBeDefined() From 29122127eed4c88ca2963597be0d07be8a874a7d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:29:07 -0500 Subject: [PATCH 333/410] fix: fix the C exports names --- lib/grammars.js | 2 +- lib/grammars/c.js | 61 +++++++++++++++++++++++++++-------------------- 2 files changed, 36 insertions(+), 27 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index 41b94167..3e98af6d 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -3,7 +3,7 @@ import grammarMap from "./grammars/index" import * as apple from "./grammars/apple" -import * as c from "./grammars/c" +import c from "./grammars/c" import * as coffeescript from "./grammars/coffeescript" import database from "./grammars/database" import * as doc from "./grammars/doc" diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 9990ca41..21b878a3 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -32,7 +32,7 @@ function args({ filepath }) { return ["-c", cmdArgs] } -export const C = { +const C = { "File Based": { command: "bash", args({ filepath }) { @@ -75,7 +75,7 @@ export const C = { }, } -exports["C#"] = { +const Cs = { "Selection Based": { command, args(context) { @@ -101,7 +101,7 @@ exports["C#"] = { }, }, } -exports["C# Script File"] = { +const CSScriptFile = { "Selection Based": { command: "scriptcs", args(context) { @@ -118,7 +118,7 @@ exports["C# Script File"] = { }, } -exports["C++"] = { +const Cpp = { "Selection Based": { command: "bash", args(context) { @@ -175,30 +175,39 @@ exports["C++"] = { }, }, } -exports["C++14"] = exports["C++"] +const Cpp14 = Cpp -if (os === "darwin") { - exports["Objective-C"] = { - "File Based": { - command: "bash", - args({ filepath }) { - return [ - "-c", - `xcrun clang ${options} -fcolor-diagnostics -framework Cocoa '${filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out`, - ] - }, +const ObjectiveC = { + "File Based": { + command: "bash", + args({ filepath }) { + return [ + "-c", + `xcrun clang ${options} -fcolor-diagnostics -framework Cocoa '${filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out`, + ] }, - } + }, +} - exports["Objective-C++"] = { - "File Based": { - command: "bash", - args({ filepath }) { - return [ - "-c", - `xcrun clang++ -Wc++11-extensions ${options} -fcolor-diagnostics -include iostream -framework Cocoa '${filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out`, - ] - }, +const ObjectiveCpp = { + "File Based": { + command: "bash", + args({ filepath }) { + return [ + "-c", + `xcrun clang++ -Wc++11-extensions ${options} -fcolor-diagnostics -include iostream -framework Cocoa '${filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out`, + ] }, - } + }, +} + +const CGrammars = { + C, + "C++": Cpp, + "C++14": Cpp14, + "C#": Cs, + "C# Script File": CSScriptFile, + "Objective-C": ObjectiveC, + "Objective-C++": ObjectiveCpp, } +export default CGrammars From da8cd2827598385d55a35d0cca272dee90943ae9 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:31:24 -0500 Subject: [PATCH 334/410] fix: fix the CoffeeScript exports --- lib/grammars.js | 2 +- lib/grammars/coffeescript.js | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index 3e98af6d..cb6b372c 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -4,7 +4,7 @@ import grammarMap from "./grammars/index" import * as apple from "./grammars/apple" import c from "./grammars/c" -import * as coffeescript from "./grammars/coffeescript" +import coffeescript from "./grammars/coffeescript" import database from "./grammars/database" import * as doc from "./grammars/doc" import * as fortran from "./grammars/fortran" diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index 92ffe66f..046f2b2c 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -14,7 +14,7 @@ const args = function ({ filepath }) { return GrammarUtils.formatArgs(cmd) } -export const CoffeeScript = { +const CoffeeScript = { "Selection Based": { command, args(context) { @@ -29,9 +29,9 @@ export const CoffeeScript = { "File Based": { command, args }, } -exports["CoffeeScript (Literate)"] = exports.CoffeeScript +const CoffeeScriptLiterate = CoffeeScript -export const IcedCoffeeScript = { +const IcedCoffeeScript = { "Selection Based": { command: "iced", args(context) { @@ -46,3 +46,11 @@ export const IcedCoffeeScript = { }, }, } + +const CoffeeScriptGrammars = { + CoffeeScript, + "CoffeeScript (Literate)": CoffeeScriptLiterate, + IcedCoffeeScript, + "Iced CoffeeScript": IcedCoffeeScript, +} +export default CoffeeScriptGrammars From 49d165c5844465a436fffa0d58cc3b7e9f9f0919 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:41:03 -0500 Subject: [PATCH 335/410] fix: fix the Doc exports --- lib/grammars.js | 2 +- lib/grammars/database.js | 3 ++- lib/grammars/doc.js | 34 ++++++++++++++++++++++++---------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index cb6b372c..1bfee443 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -6,7 +6,7 @@ import * as apple from "./grammars/apple" import c from "./grammars/c" import coffeescript from "./grammars/coffeescript" import database from "./grammars/database" -import * as doc from "./grammars/doc" +import doc from "./grammars/doc" import * as fortran from "./grammars/fortran" import * as haskell from "./grammars/haskell" import * as java from "./grammars/java" diff --git a/lib/grammars/database.js b/lib/grammars/database.js index 46e3b721..37bb294d 100644 --- a/lib/grammars/database.js +++ b/lib/grammars/database.js @@ -3,7 +3,7 @@ const message = "SQL requires setting 'Script: Run Options' directly. See https://github.com/atom-ide-community/atom-script/tree/master/examples/hello.sql for further information." -export default { +const DataBaseGrammars = { "mongoDB (JavaScript)": { "Selection Based": { command: "mongo", @@ -52,3 +52,4 @@ export default { }, }, } +export default DataBaseGrammars diff --git a/lib/grammars/doc.js b/lib/grammars/doc.js index 2f10c33d..c2680e38 100644 --- a/lib/grammars/doc.js +++ b/lib/grammars/doc.js @@ -9,7 +9,7 @@ import { shell } from "electron" import GrammarUtils from "../grammar-utils" -export const DOT = { +const DOT = { "Selection Based": { command: "dot", args(context) { @@ -27,7 +27,7 @@ export const DOT = { }, } -export const gnuplot = { +const gnuplot = { "File Based": { command: "gnuplot", workingDirectory: __guardMethod__( @@ -48,7 +48,7 @@ export const gnuplot = { }, } -exports["Graphviz (DOT)"] = { +const Graphviz = { "Selection Based": { command: "dot", args(context) { @@ -66,7 +66,7 @@ exports["Graphviz (DOT)"] = { }, } -export const HTML = { +const HTML = { "File Based": { command: "echo", args({ filepath }) { @@ -77,7 +77,7 @@ export const HTML = { }, } -export const LaTeX = { +const LaTeX = { "File Based": { command: "latexmk", args({ filepath }) { @@ -86,7 +86,7 @@ export const LaTeX = { }, } -export const ConTeXt = { +const ConTeXt = { "File Based": { command: "context", args({ filepath }) { @@ -95,9 +95,9 @@ export const ConTeXt = { }, } -exports["LaTeX Beamer"] = exports.LaTeX +const LaTeXBeamer = LaTeX -exports["Pandoc Markdown"] = { +const PandocMarkdown = { "File Based": { command: "panzer", args({ filepath }) { @@ -106,7 +106,7 @@ exports["Pandoc Markdown"] = { }, } -export const Sass = { +const Sass = { "File Based": { command: "sass", args({ filepath }) { @@ -115,7 +115,7 @@ export const Sass = { }, } -export const SCSS = exports.Sass +const SCSS = Sass function __guardMethod__(obj, methodName, transform) { if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { @@ -127,3 +127,17 @@ function __guardMethod__(obj, methodName, transform) { function __guard__(value, transform) { return typeof value !== "undefined" && value !== null ? transform(value) : undefined } + +const Docs = { + DOT, + GNUPlot: gnuplot, + "Graphviz (DOT)": Graphviz, + HTML, + LaTeX, + ConTeXt, + "LaTeX Beamer": LaTeXBeamer, + "Pandoc Markdown": PandocMarkdown, + Sass, + SCSS, +} +export default Docs From d4f1b585ece6594905628403e4ef965f76c89972 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:41:24 -0500 Subject: [PATCH 336/410] fix: fix the Fortran exports --- lib/grammars.js | 2 +- lib/grammars/fortran.js | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index 1bfee443..3d493698 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -7,8 +7,8 @@ import c from "./grammars/c" import coffeescript from "./grammars/coffeescript" import database from "./grammars/database" import doc from "./grammars/doc" -import * as fortran from "./grammars/fortran" import * as haskell from "./grammars/haskell" +import fortran from "./grammars/fortran" import * as java from "./grammars/java" import * as js from "./grammars/javascript" import lisp from "./grammars/lisp" diff --git a/lib/grammars/fortran.js b/lib/grammars/fortran.js index c3529903..e3a6737c 100644 --- a/lib/grammars/fortran.js +++ b/lib/grammars/fortran.js @@ -1,10 +1,9 @@ "use babel" -import path from "path" import GrammarUtils from "../grammar-utils" const { command } = GrammarUtils -exports["Fortran - Fixed Form"] = { +const FortranFixedForm = { "File Based": { command, args({ filepath }) { @@ -13,7 +12,7 @@ exports["Fortran - Fixed Form"] = { }, }, } -exports["Fortran - Free Form"] = { +const FortranFreeForm = { "File Based": { command, args({ filepath }) { @@ -22,5 +21,14 @@ exports["Fortran - Free Form"] = { }, }, } -exports["Fortran - Modern"] = exports["Fortran - Free Form"] -exports["Fortran - Punchcard"] = exports["Fortran - Fixed Form"] +const FortranModern = FortranFreeForm +const FortranPunchcard = FortranFixedForm + +const Fortran = { + "Fortran": FortranModern, + "Fortran - Fixed Form": FortranFixedForm, + "Fortran - Free Form": FortranFreeForm, + "Fortran - Modern": FortranModern, + "Fortran - Punchcard": FortranPunchcard, +} +export default Fortran From 6a64fffca11db8e699efe698479ca647bcb102a8 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:41:32 -0500 Subject: [PATCH 337/410] fix: fix the Haskell exports --- lib/grammars.js | 2 +- lib/grammars/haskell.js | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index 3d493698..50369bd6 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -7,8 +7,8 @@ import c from "./grammars/c" import coffeescript from "./grammars/coffeescript" import database from "./grammars/database" import doc from "./grammars/doc" -import * as haskell from "./grammars/haskell" import fortran from "./grammars/fortran" +import haskell from "./grammars/haskell" import * as java from "./grammars/java" import * as js from "./grammars/javascript" import lisp from "./grammars/lisp" diff --git a/lib/grammars/haskell.js b/lib/grammars/haskell.js index 447e06ee..3dfad083 100644 --- a/lib/grammars/haskell.js +++ b/lib/grammars/haskell.js @@ -1,6 +1,6 @@ "use babel" -export const Haskell = { +const Haskell = { "Selection Based": { command: "ghc", args(context) { @@ -16,4 +16,10 @@ export const Haskell = { }, } -exports["Literate Haskell"] = { "File Based": exports.Haskell["File Based"] } +const LiterateHaskell = { "File Based": Haskell["File Based"] } + +const HaskellGrammars = { + Haskell, + "Literate Haskell": LiterateHaskell, +} +export default HaskellGrammars From 1e7e9d85f8e43b3c9dd91c28eff0f590551a59a3 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:47:30 -0500 Subject: [PATCH 338/410] fix: fix the JavaScript exports --- lib/grammars.js | 2 +- lib/grammars/index.js | 3 ++- lib/grammars/javascript.js | 23 ++++++++++++++++------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index 50369bd6..a00e7c5e 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -10,7 +10,7 @@ import doc from "./grammars/doc" import fortran from "./grammars/fortran" import haskell from "./grammars/haskell" import * as java from "./grammars/java" -import * as js from "./grammars/javascript" +import js from "./grammars/javascript" import lisp from "./grammars/lisp" import * as lua from "./grammars/lua" import ml from "./grammars/ml" diff --git a/lib/grammars/index.js b/lib/grammars/index.js index 6e35e8e2..e331b545 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -18,7 +18,7 @@ const os = OperatingSystem.platform() const arch = OperatingSystem.architecture() const windows = OperatingSystem.isWindows() -export default { +const OtherGrammars = { "1C (BSL)": { "File Based": { command: "oscript", @@ -610,6 +610,7 @@ export default { }, }, } +export default OtherGrammars function __guardMethod__(obj, methodName, transform) { if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index 137272e0..bc5e4e59 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -16,7 +16,7 @@ const args = ({ filepath }) => { const cmd = `'${babel}' --filename '${filepath}' --config-file ${babelConfig} < '${filepath}'| node` return GrammarUtils.formatArgs(cmd) } -export const Dart = { +const Dart = { "Selection Based": { command: "dart", args: (context) => { @@ -30,7 +30,7 @@ export const Dart = { args: ({ filepath }) => [filepath], }, } -export const JavaScript = { +const JavaScript = { "Selection Based": { command: GrammarUtils.command, args: (context) => { @@ -41,11 +41,10 @@ export const JavaScript = { }, "File Based": { command: GrammarUtils.command, args }, } -// TODO respect ES6 exporting -exports["Babel ES6 JavaScript"] = JavaScript -exports["JavaScript with JSX"] = JavaScript +const Babel = JavaScript +const JSX = JavaScript -exports["JavaScript for Automation (JXA)"] = { +const JXA = { "Selection Based": { command: "osascript", args: (context) => ["-l", "JavaScript", "-e", context.getCode()], @@ -55,7 +54,7 @@ exports["JavaScript for Automation (JXA)"] = { args: ({ filepath }) => ["-l", "JavaScript", filepath], }, } -export const TypeScript = { +const TypeScript = { "Selection Based": { command: "ts-node", args: (context) => ["-e", context.getCode()], @@ -65,3 +64,13 @@ export const TypeScript = { args: ({ filepath }) => [filepath], }, } + +const JavaScriptGrammars = { + JavaScript, + "Babel ES6 JavaScript": Babel, + "JavaScript with JSX": JSX, + Dart, + "JavaScript for Automation (JXA)": JXA, + TypeScript, +} +export default JavaScriptGrammars From c1db695b208b3fb5cc1c562af97d759f66d2a102 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:48:48 -0500 Subject: [PATCH 339/410] fix: fix the Lua exports --- lib/grammars.js | 2 +- lib/grammars/lua.js | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index a00e7c5e..945f0f0b 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -12,7 +12,7 @@ import haskell from "./grammars/haskell" import * as java from "./grammars/java" import js from "./grammars/javascript" import lisp from "./grammars/lisp" -import * as lua from "./grammars/lua" +import lua from "./grammars/lua" import ml from "./grammars/ml" import * as perl from "./grammars/perl" import php from "./grammars/php" diff --git a/lib/grammars/lua.js b/lib/grammars/lua.js index 5eb711d5..437dd1c5 100644 --- a/lib/grammars/lua.js +++ b/lib/grammars/lua.js @@ -2,7 +2,7 @@ import GrammarUtils from "../grammar-utils" -export const Lua = { +const Lua = { "Selection Based": { command: "lua", args(context) { @@ -20,9 +20,9 @@ export const Lua = { }, } -exports["Lua (WoW)"] = exports.Lua +const WOW = Lua -export const MoonScript = { +const MoonScript = { "Selection Based": { command: "moon", args(context) { @@ -37,3 +37,10 @@ export const MoonScript = { }, }, } + +const LuaGrammars = { + Lua, + "Lua (WoW)": WOW, + MoonScript, +} +export default LuaGrammars From 2affb986b63433608719ff1a7ccd19218b68b7d2 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:50:19 -0500 Subject: [PATCH 340/410] fix: fix the Perl exports --- lib/grammars.js | 2 +- lib/grammars/perl.js | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index 945f0f0b..c07fb4d1 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -14,7 +14,7 @@ import js from "./grammars/javascript" import lisp from "./grammars/lisp" import lua from "./grammars/lua" import ml from "./grammars/ml" -import * as perl from "./grammars/perl" +import perl from "./grammars/perl" import php from "./grammars/php" import * as python from "./grammars/python" import ruby from "./grammars/ruby" diff --git a/lib/grammars/perl.js b/lib/grammars/perl.js index bb8fbc08..60114cb6 100644 --- a/lib/grammars/perl.js +++ b/lib/grammars/perl.js @@ -2,7 +2,7 @@ import GrammarUtils from "../grammar-utils" -export const Perl = { +const Perl = { "Selection Based": { command: "perl", args(context) { @@ -20,7 +20,7 @@ export const Perl = { }, } -exports.Raku = { +const Raku = { "Selection Based": { command: "raku", args(context) { @@ -36,4 +36,11 @@ exports.Raku = { }, } -exports["Perl 6"] = exports.Raku +const Perl6 = Raku + +const PerlGrammars = { + Perl, + Raku, + "Perl 6": Perl6, +} +export default PerlGrammars From 2ace5e65a2562fe0c6b7a10eea154e65f8bcece8 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:50:43 -0500 Subject: [PATCH 341/410] fix: fix the Python exports --- lib/grammars/python.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/python.js b/lib/grammars/python.js index 6c75d596..b29f1dae 100644 --- a/lib/grammars/python.js +++ b/lib/grammars/python.js @@ -20,7 +20,7 @@ export const Python = { }, } -export const MagicPython = exports.Python +export const MagicPython = Python export const Sage = { "Selection Based": { From a5324575938484486409e44a2ab799d84355a572 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:54:09 -0500 Subject: [PATCH 342/410] fix: fix the ShellGrammars exports --- lib/grammars.js | 2 +- lib/grammars/shell.js | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index c07fb4d1..fe4073a4 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -18,7 +18,7 @@ import perl from "./grammars/perl" import php from "./grammars/php" import * as python from "./grammars/python" import ruby from "./grammars/ruby" -import * as shell from "./grammars/shell" +import shell from "./grammars/shell" import * as windows from "./grammars/windows" const Grammars = { diff --git a/lib/grammars/shell.js b/lib/grammars/shell.js index c9532c95..b621d51e 100644 --- a/lib/grammars/shell.js +++ b/lib/grammars/shell.js @@ -2,7 +2,7 @@ import GrammarUtils from "../grammar-utils" -exports["Bash Automated Test System (Bats)"] = { +const Bats = { "Selection Based": { command: "bats", args(context) { @@ -20,7 +20,7 @@ exports["Bash Automated Test System (Bats)"] = { }, } -export const Bash = { +const Bash = { "Selection Based": { command: process.env.SHELL, args(context) { @@ -36,9 +36,9 @@ export const Bash = { }, } -exports["Shell Script"] = exports.Bash +const Shell = Bash -exports["Shell Script (Fish)"] = { +const Fish = { "Selection Based": { command: "fish", args(context) { @@ -54,7 +54,7 @@ exports["Shell Script (Fish)"] = { }, } -export const Tcl = { +const Tcl = { "Selection Based": { command: "tclsh", args(context) { @@ -71,3 +71,12 @@ export const Tcl = { }, }, } + +const ShellGrammars = { + "Bash Automated Test System (Bats)": Bats, + Bash, + Tcl, + "Shell Script": Shell, + "Shell Script (Fish)": Fish, +} +export default ShellGrammars From 7db731d2a217c20ee20886a868d9a734bcc308c9 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 13:56:48 -0500 Subject: [PATCH 343/410] fix: fix the Windows exports --- lib/grammars.js | 2 +- lib/grammars/windows.js | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/grammars.js b/lib/grammars.js index fe4073a4..3ded67de 100644 --- a/lib/grammars.js +++ b/lib/grammars.js @@ -19,7 +19,7 @@ import php from "./grammars/php" import * as python from "./grammars/python" import ruby from "./grammars/ruby" import shell from "./grammars/shell" -import * as windows from "./grammars/windows" +import windows from "./grammars/windows" const Grammars = { ...grammarMap, diff --git a/lib/grammars/windows.js b/lib/grammars/windows.js index 3d22073d..9fbbd710 100644 --- a/lib/grammars/windows.js +++ b/lib/grammars/windows.js @@ -4,7 +4,7 @@ import GrammarUtils from "../grammar-utils" //if GrammarUtils.OperatingSystem.isWindows() -export const AutoHotKey = { +const AutoHotKey = { "Selection Based": { command: "AutoHotKey", args(context) { @@ -22,7 +22,7 @@ export const AutoHotKey = { }, } -export const Batch = { +const Batch = { "File Based": { command: "cmd.exe", args({ filepath }) { @@ -31,9 +31,9 @@ export const Batch = { }, } -exports["Batch File"] = exports.Batch +const BatchFile = Batch -export const PowerShell = { +const PowerShell = { "Selection Based": { command: "powershell", args(context) { @@ -49,7 +49,7 @@ export const PowerShell = { }, } -export const VBScript = { +const VBScript = { "Selection Based": { command: "cscript", args(context) { @@ -66,3 +66,12 @@ export const VBScript = { }, }, } + +const WindowsGrammars = { + AutoHotKey, + Batch, + "Batch File": BatchFile, + PowerShell, + VBScript, +} +export default WindowsGrammars From b5f3da30e33cd26881e2fea171d7f55d0df1964b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 14:03:48 -0500 Subject: [PATCH 344/410] chore: fix unnamed default export --- lib/grammars/fortran.js | 2 +- lib/grammars/lisp.js | 3 ++- lib/grammars/ml.js | 5 +++-- lib/grammars/php.js | 3 ++- lib/grammars/ruby.js | 3 ++- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/grammars/fortran.js b/lib/grammars/fortran.js index e3a6737c..e5ba3834 100644 --- a/lib/grammars/fortran.js +++ b/lib/grammars/fortran.js @@ -25,7 +25,7 @@ const FortranModern = FortranFreeForm const FortranPunchcard = FortranFixedForm const Fortran = { - "Fortran": FortranModern, + Fortran: FortranModern, "Fortran - Fixed Form": FortranFixedForm, "Fortran - Free Form": FortranFreeForm, "Fortran - Modern": FortranModern, diff --git a/lib/grammars/lisp.js b/lib/grammars/lisp.js index 9ff3e695..97f23ced 100644 --- a/lib/grammars/lisp.js +++ b/lib/grammars/lisp.js @@ -3,7 +3,7 @@ import _ from "underscore" import GrammarUtils from "../grammar-utils" -export default { +const LispGrammars = { "Common Lisp": { "File Based": { command: "clisp", @@ -62,3 +62,4 @@ export default { }, }, } +export default LispGrammars diff --git a/lib/grammars/ml.js b/lib/grammars/ml.js index 2e2ea2ff..2ffef121 100644 --- a/lib/grammars/ml.js +++ b/lib/grammars/ml.js @@ -8,9 +8,9 @@ import GrammarUtils from "../grammar-utils" const { command } = GrammarUtils -const windows = GrammarUtils.OperatingSystem.isWindows() +// const windows = GrammarUtils.OperatingSystem.isWindows() -export default { +const MLGrammars = { BuckleScript: { "Selection Based": { command: "bsc", @@ -66,3 +66,4 @@ export default { }, }, } +export default MLGrammars diff --git a/lib/grammars/php.js b/lib/grammars/php.js index 74264e57..09c9315d 100644 --- a/lib/grammars/php.js +++ b/lib/grammars/php.js @@ -2,7 +2,7 @@ import GrammarUtils from "../grammar-utils" -export default { +const PerlGrammars = { "Behat Feature": { "File Based": { command: "behat", @@ -37,3 +37,4 @@ export default { }, }, } +export default PerlGrammars diff --git a/lib/grammars/ruby.js b/lib/grammars/ruby.js index 3028cb2b..bf5983e7 100644 --- a/lib/grammars/ruby.js +++ b/lib/grammars/ruby.js @@ -1,6 +1,6 @@ "use babel" -export default { +const RubyGrammars = { RSpec: { "Selection Based": { command: "ruby", @@ -56,3 +56,4 @@ export default { }, }, } +export default RubyGrammars From 26b5e531fef5a63de3ebdb51bfb5cd94a3ac472b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 21 Mar 2021 14:16:44 -0500 Subject: [PATCH 345/410] fix: remove guards because of workingDirectory --- lib/grammar-utils.js | 12 ++++++++++++ lib/grammars/c.js | 6 ------ lib/grammars/doc.js | 30 +----------------------------- lib/grammars/index.js | 25 +------------------------ 4 files changed, 14 insertions(+), 59 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 866f0194..25672753 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -61,6 +61,18 @@ const GrammarUtils = { return ["-c", command] }, + /** get workingDirectory */ + workingDirectory() { + const activePane = atom.workspace.getActivePaneItem() + if (activePane && activePane.buffer && activePane.buffer.file && activePane.buffer.file.getParent) { + const parent = activePane.buffer.file.getParent() + if (parent && parent.getPath) { + return parent.getPath() + } + } + return process.cwd() + }, + // Public: Get the Java helper object // // Returns an {Object} which assists in preparing java + javac statements diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 21b878a3..bb54aa4d 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -1,11 +1,5 @@ "use babel" -/* - * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns - * DS205: Consider reworking code to avoid use of IIFEs - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ import path from "path" import GrammarUtils from "../grammar-utils" const { OperatingSystem, command } = GrammarUtils diff --git a/lib/grammars/doc.js b/lib/grammars/doc.js index c2680e38..436c8af5 100644 --- a/lib/grammars/doc.js +++ b/lib/grammars/doc.js @@ -1,11 +1,5 @@ "use babel" -/* - * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns - * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ import { shell } from "electron" import GrammarUtils from "../grammar-utils" @@ -30,18 +24,7 @@ const DOT = { const gnuplot = { "File Based": { command: "gnuplot", - workingDirectory: __guardMethod__( - __guardMethod__( - __guard__( - __guard__(atom.workspace.getActivePaneItem(), (x1) => x1.buffer), - (x) => x.file - ), - "getParent", - (o1) => o1.getParent() - ), - "getPath", - (o) => o.getPath() - ), + workingDirectory: GrammarUtils.workingDirectory(), args({ filepath }) { return ["-p", filepath] }, @@ -117,17 +100,6 @@ const Sass = { const SCSS = Sass -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { - return transform(obj, methodName) - } else { - return undefined - } -} -function __guard__(value, transform) { - return typeof value !== "undefined" && value !== null ? transform(value) : undefined -} - const Docs = { DOT, GNUPlot: gnuplot, diff --git a/lib/grammars/index.js b/lib/grammars/index.js index e331b545..ba96ebab 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -3,7 +3,6 @@ /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns - * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining * DS205: Consider reworking code to avoid use of IIFEs * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ @@ -153,18 +152,7 @@ const OtherGrammars = { Go: { "File Based": { command: "go", - workingDirectory: __guardMethod__( - __guardMethod__( - __guard__( - __guard__(atom.workspace.getActivePaneItem(), (x1) => x1.buffer), - (x) => x.file - ), - "getParent", - (o1) => o1.getParent() - ), - "getPath", - (o) => o.getPath() - ), + workingDirectory: GrammarUtils.workingDirectory(), args({ filepath }) { if (filepath.match(/_test.go/)) { return ["test", ""] @@ -611,14 +599,3 @@ const OtherGrammars = { }, } export default OtherGrammars - -function __guardMethod__(obj, methodName, transform) { - if (typeof obj !== "undefined" && obj !== null && typeof obj[methodName] === "function") { - return transform(obj, methodName) - } else { - return undefined - } -} -function __guard__(value, transform) { - return typeof value !== "undefined" && value !== null ? transform(value) : undefined -} From ca13f100a0899f47b4bf52a21ef66e5e75277c09 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 05:52:23 -0500 Subject: [PATCH 346/410] refactor: use CArgs in C --- lib/grammars/c.js | 33 ++++----------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/lib/grammars/c.js b/lib/grammars/c.js index bb54aa4d..e6966f61 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -10,7 +10,7 @@ const windows = OperatingSystem.isWindows() const options = "-Wall -include stdio.h" // TODO add windows support -function args({ filepath }) { +function CArgs({ filepath }) { let cmdArgs = "" switch (os) { case "darwin": @@ -29,20 +29,8 @@ function args({ filepath }) { const C = { "File Based": { command: "bash", - args({ filepath }) { - let cmdArgs = "" - switch (os) { - case "darwin": - cmdArgs = `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` - break - case "linux": - cmdArgs = `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` - break - default: { - atom.notifications.addError(`Not support on ${os}`) - } - } - return ["-c", cmdArgs] + args(opts) { + return CArgs(opts) }, }, @@ -51,20 +39,7 @@ const C = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".c") - let cmdArgs = "" - switch (os) { - case "darwin": - cmdArgs = `xcrun clang ${options} -fcolor-diagnostics ${tmpFile} -o /tmp/c.out && /tmp/c.out` - break - case "linux": - cmdArgs = `cc ${options} ${tmpFile} -o /tmp/c.out && /tmp/c.out` - break - default: { - atom.notifications.addError(`Not support on ${os}`) - } - } - - return ["-c", cmdArgs] + return CArgs({ filepath: tmpFile }) }, }, } From 3551416e9233089993038ddb474a3c8ee758aeb1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 05:56:07 -0500 Subject: [PATCH 347/410] chore: use spread instead of concat --- lib/grammars/c.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/grammars/c.js b/lib/grammars/c.js index e6966f61..9dbf7ca0 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -128,10 +128,10 @@ const Cpp = { .slice(-1 >= "14399") ) { filepath = path.posix.join - .apply( - path.posix, - [].concat([filepath.split(path.win32.sep)[0].toLowerCase()], filepath.split(path.win32.sep).slice(1)) - ) + .apply(path.posix, [ + filepath.split(path.win32.sep)[0].toLowerCase(), + ...filepath.split(path.win32.sep).slice(1), + ]) .replace(":", "") cmdArgs = `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o /tmp/cpp.out && /tmp/cpp.out` } From c6021ce15f1881117e6fc15921475da27f72c0c5 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 05:57:17 -0500 Subject: [PATCH 348/410] chore: use spread instead of apply --- lib/grammars/c.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 9dbf7ca0..bf71ce91 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -127,11 +127,8 @@ const Cpp = { .split(".") .slice(-1 >= "14399") ) { - filepath = path.posix.join - .apply(path.posix, [ - filepath.split(path.win32.sep)[0].toLowerCase(), - ...filepath.split(path.win32.sep).slice(1), - ]) + filepath = path.posix + .join(...[filepath.split(path.win32.sep)[0].toLowerCase(), ...filepath.split(path.win32.sep).slice(1)]) .replace(":", "") cmdArgs = `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o /tmp/cpp.out && /tmp/cpp.out` } From 18724f542e549c084de645bcecd8434ef895b20b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 06:13:13 -0500 Subject: [PATCH 349/410] fix: fix coffeescript --- lib/grammars/coffeescript.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index 046f2b2c..19c6a5fd 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -10,7 +10,7 @@ const babel = path.join(bin, "babel") const babelConfig = path.join(__dirname, "babel.config.js") const args = function ({ filepath }) { - const cmd = `'${coffee}' -p '${filepath}'|'${babel}' --filename '${bin} --config-file ${babelConfig}'| node` + const cmd = `'${coffee}' -p '${filepath}'|'${babel}' --filename '${filepath} --config-file ${babelConfig}'| node` return GrammarUtils.formatArgs(cmd) } From e51fd40787d6b97d3cf2214d64a97784c7cfe071 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 22 Mar 2021 11:23:16 +0000 Subject: [PATCH 350/410] chore(release): 3.31.0 [skip ci] --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48583590..41b9f2ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,31 @@ +# [3.31.0](https://github.com/atom-ide-community/atom-script/compare/v3.30.0...v3.31.0) (2021-03-22) + + +### Bug Fixes + +* add use-babel ([cfe2bb2](https://github.com/atom-ide-community/atom-script/commit/cfe2bb21edc8a598c60c492e285ea647404410f0)) +* fix coffeescript ([18724f5](https://github.com/atom-ide-community/atom-script/commit/18724f542e549c084de645bcecd8434ef895b20b)) +* fix the C exports names ([2912212](https://github.com/atom-ide-community/atom-script/commit/29122127eed4c88ca2963597be0d07be8a874a7d)) +* fix the CoffeeScript exports ([da8cd28](https://github.com/atom-ide-community/atom-script/commit/da8cd2827598385d55a35d0cca272dee90943ae9)) +* fix the Doc exports ([49d165c](https://github.com/atom-ide-community/atom-script/commit/49d165c5844465a436fffa0d58cc3b7e9f9f0919)) +* fix the Fortran exports ([d4f1b58](https://github.com/atom-ide-community/atom-script/commit/d4f1b585ece6594905628403e4ef965f76c89972)) +* fix the Haskell exports ([6a64fff](https://github.com/atom-ide-community/atom-script/commit/6a64fffca11db8e699efe698479ca647bcb102a8)) +* fix the JavaScript exports ([1e7e9d8](https://github.com/atom-ide-community/atom-script/commit/1e7e9d85f8e43b3c9dd91c28eff0f590551a59a3)) +* fix the Lua exports ([c1db695](https://github.com/atom-ide-community/atom-script/commit/c1db695b208b3fb5cc1c562af97d759f66d2a102)) +* fix the Perl exports ([2affb98](https://github.com/atom-ide-community/atom-script/commit/2affb986b63433608719ff1a7ccd19218b68b7d2)) +* fix the Python exports ([2ace5e6](https://github.com/atom-ide-community/atom-script/commit/2ace5e65a2562fe0c6b7a10eea154e65f8bcece8)) +* fix the ShellGrammars exports ([a532457](https://github.com/atom-ide-community/atom-script/commit/a5324575938484486409e44a2ab799d84355a572)) +* fix the Windows exports ([7db731d](https://github.com/atom-ide-community/atom-script/commit/7db731d2a217c20ee20886a868d9a734bcc308c9)) +* in C - inline switch-case + add default case ([ff1fe86](https://github.com/atom-ide-community/atom-script/commit/ff1fe86f8e37cc544eb285fc8184ffbfac3ed056)) +* remove guards because of workingDirectory ([26b5e53](https://github.com/atom-ide-community/atom-script/commit/26b5e531fef5a63de3ebdb51bfb5cd94a3ac472b)) +* scopeName not defined ([45ed16d](https://github.com/atom-ide-community/atom-script/commit/45ed16de249abe58b0bfd9ba0f722b6ded621a2a)) +* the coffee file imports ([b746e93](https://github.com/atom-ide-community/atom-script/commit/b746e9352642d2bb6b127af949fb4a81f14d8394)) + + +### Features + +* decaffeinate ([2056c30](https://github.com/atom-ide-community/atom-script/commit/2056c30ba132efd4cb4d09acdb804f347482c480)) + # [3.30.0](https://github.com/atom-ide-community/atom-script/compare/v3.29.6...v3.30.0) (2021-03-21) diff --git a/package.json b/package.json index ff886f2a..fa5ddfd8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.30.0", + "version": "3.31.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 6f1a4104694846b91ec4a09289a2a4b29eef5369 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 06:23:52 -0500 Subject: [PATCH 351/410] chore: install types packages --- package.json | 9 ++++-- pnpm-lock.yaml | 79 ++++++++++++++++++++++++++++++-------------------- 2 files changed, 54 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index ff886f2a..33947a73 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", "strip-ansi": "^6.0.0", + "tempy": "^1.0.1", "underscore": "^1.12.1", "uuid": "^8.3.2" }, @@ -34,11 +35,15 @@ "coffeescript": "^2" }, "devDependencies": { + "@types/atom": "^1.40.10", + "@types/jasmine": "^3.6.7", + "@types/node": "^14.14.35", + "@types/underscore": "^1.11.0", + "@types/uuid": "^8.3.0", "eslint": "^7.22.0", "eslint-config-atomic": "^1.12.4", "prettier": "^2.2.1", - "prettier-config-atomic": "^1.0.1", - "tempy": "^1.0.1" + "prettier-config-atomic": "^1.0.1" }, "activationCommands": { "atom-text-editor": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9be6e1f..0de23d7e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,14 +7,19 @@ dependencies: atom-message-panel: 1.3.1 atom-space-pen-views-plus: 3.0.4 strip-ansi: 6.0.0 + tempy: 1.0.1 underscore: 1.12.1 uuid: 8.3.2 devDependencies: + '@types/atom': 1.40.10 + '@types/jasmine': 3.6.7 + '@types/node': 14.14.35 + '@types/underscore': 1.11.0 + '@types/uuid': 8.3.0 eslint: 7.22.0 eslint-config-atomic: 1.12.4_eslint@7.22.0 prettier: 2.2.1 prettier-config-atomic: 1.0.1 - tempy: 1.0.1 lockfileVersion: 5.2 optionalDependencies: coffeescript: 2.5.1 @@ -1087,13 +1092,11 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.4 run-parallel: 1.2.0 - dev: true engines: node: '>= 8' resolution: integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== /@nodelib/fs.stat/2.0.4: - dev: true engines: node: '>= 8' resolution: @@ -1102,11 +1105,20 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.4 fastq: 1.11.0 - dev: true engines: node: '>= 8' resolution: integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + /@types/atom/1.40.10: + dependencies: + '@types/node': 14.14.35 + dev: true + resolution: + integrity: sha512-aNFUhCuR6nmTTMoYKfWWMifZ3IcNETLWC75hCdg3i1/OvirfR/5qm1wfiISBb4s/TPM2YVEtxytCdWhKJuEhzw== + /@types/jasmine/3.6.7: + dev: true + resolution: + integrity: sha512-8dtfiykrpe4Ysn6ONj0tOjmpDIh1vWxPk80eutSeWmyaJvAZXZ84219fS4gLrvz05eidhp7BP17WVQBaXHSyXQ== /@types/json-schema/7.0.7: dev: true resolution: @@ -1115,6 +1127,18 @@ packages: dev: true resolution: integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + /@types/node/14.14.35: + dev: true + resolution: + integrity: sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== + /@types/underscore/1.11.0: + dev: true + resolution: + integrity: sha512-ipNAQLgRnG0EWN1cTtfdVHp5AyTW/PAMJ1PxLN4bAKSHbusSZbj48mIHiydQpN7GgQrYqwfnvZ573OVfJm5Nzg== + /@types/uuid/8.3.0: + dev: true + resolution: + integrity: sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== /@typescript-eslint/eslint-plugin/4.18.0_ef0f217f6395606fd8bbe7b0291eff7e: dependencies: '@typescript-eslint/experimental-utils': 4.18.0_eslint@7.22.0+typescript@4.2.3 @@ -1239,7 +1263,7 @@ packages: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: true + dev: false engines: node: '>=8' resolution: @@ -1378,7 +1402,6 @@ packages: resolution: integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== /array-union/2.1.0: - dev: true engines: node: '>=8' resolution: @@ -1772,7 +1795,7 @@ packages: resolution: integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== /clean-stack/2.2.0: - dev: true + dev: false engines: node: '>=6' resolution: @@ -1906,7 +1929,7 @@ packages: resolution: integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== /crypto-random-string/2.0.0: - dev: true + dev: false engines: node: '>=8' resolution: @@ -2005,7 +2028,7 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 - dev: true + dev: false engines: node: '>=10' resolution: @@ -2013,7 +2036,6 @@ packages: /dir-glob/3.0.1: dependencies: path-type: 4.0.0 - dev: true engines: node: '>=8' resolution: @@ -2667,7 +2689,6 @@ packages: merge2: 1.4.1 micromatch: 4.0.2 picomatch: 2.2.2 - dev: true engines: node: '>=8' resolution: @@ -2683,7 +2704,6 @@ packages: /fastq/1.11.0: dependencies: reusify: 1.0.4 - dev: true resolution: integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== /file-entry-cache/6.0.1: @@ -2825,7 +2845,6 @@ packages: /glob-parent/5.1.2: dependencies: is-glob: 4.0.1 - dev: true engines: node: '>= 6' resolution: @@ -2875,12 +2894,12 @@ packages: ignore: 5.1.8 merge2: 1.4.1 slash: 3.0.0 - dev: true engines: node: '>=10' resolution: integrity: sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== /graceful-fs/4.2.5: + dev: false resolution: integrity: sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw== /graceful-fs/4.2.6: @@ -2988,7 +3007,6 @@ packages: resolution: integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== /ignore/5.1.8: - dev: true engines: node: '>= 4' resolution: @@ -3009,7 +3027,7 @@ packages: resolution: integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= /indent-string/4.0.0: - dev: true + dev: false engines: node: '>=8' resolution: @@ -3223,13 +3241,13 @@ packages: resolution: integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== /is-path-cwd/2.2.0: - dev: true + dev: false engines: node: '>=6' resolution: integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== /is-path-inside/3.0.2: - dev: true + dev: false engines: node: '>=8' resolution: @@ -3253,7 +3271,7 @@ packages: resolution: integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== /is-stream/2.0.0: - dev: true + dev: false engines: node: '>=8' resolution: @@ -3541,7 +3559,6 @@ packages: resolution: integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= /merge2/1.4.1: - dev: true engines: node: '>= 8' resolution: @@ -3571,7 +3588,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.2.2 - dev: true engines: node: '>=8' resolution: @@ -3783,7 +3799,7 @@ packages: /p-map/4.0.0: dependencies: aggregate-error: 3.1.0 - dev: true + dev: false engines: node: '>=10' resolution: @@ -3851,7 +3867,6 @@ packages: resolution: integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= /path-type/4.0.0: - dev: true engines: node: '>=8' resolution: @@ -3940,7 +3955,6 @@ packages: resolution: integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== /queue-microtask/1.2.2: - dev: true resolution: integrity: sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== /react-is/16.13.1: @@ -4146,7 +4160,6 @@ packages: resolution: integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== /reusify/1.0.4: - dev: true engines: iojs: '>=1.0.0' node: '>=0.10.0' @@ -4155,14 +4168,12 @@ packages: /rimraf/3.0.2: dependencies: glob: 7.1.6 - dev: true hasBin: true resolution: integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== /run-parallel/1.2.0: dependencies: queue-microtask: 1.2.2 - dev: true resolution: integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== /safe-buffer/5.1.2: @@ -4245,7 +4256,6 @@ packages: resolution: integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== /slash/3.0.0: - dev: true engines: node: '>=8' resolution: @@ -4490,7 +4500,7 @@ packages: resolution: integrity: sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== /temp-dir/2.0.0: - dev: true + dev: false engines: node: '>=8' resolution: @@ -4502,7 +4512,7 @@ packages: temp-dir: 2.0.0 type-fest: 0.16.0 unique-string: 2.0.0 - dev: true + dev: false engines: node: '>=10' resolution: @@ -4593,7 +4603,7 @@ packages: resolution: integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== /type-fest/0.16.0: - dev: true + dev: false engines: node: '>=10' resolution: @@ -4690,7 +4700,7 @@ packages: /unique-string/2.0.0: dependencies: crypto-random-string: 2.0.0 - dev: true + dev: false engines: node: '>=8' resolution: @@ -4821,6 +4831,11 @@ specifiers: '@babel/core': ^7.13.10 '@babel/preset-env': ^7.13.10 '@babel/preset-react': ^7.12.13 + '@types/atom': ^1.40.10 + '@types/jasmine': ^3.6.7 + '@types/node': ^14.14.35 + '@types/underscore': ^1.11.0 + '@types/uuid': ^8.3.0 ansi-to-html: ^0.6.14 atom-message-panel: 1.3.1 atom-space-pen-views-plus: ^3.0.4 From ba4062051438427d6dd7e2a69fb3c0e306ba33ca Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 07:42:50 -0500 Subject: [PATCH 352/410] chore: use temp instead of tempy --- package.json | 3 +- pnpm-lock.yaml | 145 ++++++++++++-------------------------- spec/code-context-spec.js | 6 +- spec/grammars-spec.js | 6 +- 4 files changed, 57 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 153dfa03..3f62aaeb 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", "strip-ansi": "^6.0.0", - "tempy": "^1.0.1", + "temp": "^0.9.4", "underscore": "^1.12.1", "uuid": "^8.3.2" }, @@ -38,6 +38,7 @@ "@types/atom": "^1.40.10", "@types/jasmine": "^3.6.7", "@types/node": "^14.14.35", + "@types/temp": "^0.8.34", "@types/underscore": "^1.11.0", "@types/uuid": "^8.3.0", "eslint": "^7.22.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0de23d7e..b5b98694 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,13 +7,14 @@ dependencies: atom-message-panel: 1.3.1 atom-space-pen-views-plus: 3.0.4 strip-ansi: 6.0.0 - tempy: 1.0.1 + temp: 0.9.4 underscore: 1.12.1 uuid: 8.3.2 devDependencies: '@types/atom': 1.40.10 '@types/jasmine': 3.6.7 '@types/node': 14.14.35 + '@types/temp': 0.8.34 '@types/underscore': 1.11.0 '@types/uuid': 8.3.0 eslint: 7.22.0 @@ -1092,11 +1093,13 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.4 run-parallel: 1.2.0 + dev: true engines: node: '>= 8' resolution: integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== /@nodelib/fs.stat/2.0.4: + dev: true engines: node: '>= 8' resolution: @@ -1105,6 +1108,7 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.4 fastq: 1.11.0 + dev: true engines: node: '>= 8' resolution: @@ -1131,6 +1135,12 @@ packages: dev: true resolution: integrity: sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== + /@types/temp/0.8.34: + dependencies: + '@types/node': 14.14.35 + dev: true + resolution: + integrity: sha512-oLa9c5LHXgS6UimpEVp08De7QvZ+Dfu5bMQuWyMhf92Z26Q10ubEMOWy9OEfUdzW7Y/sDWVHmUaLFtmnX/2j0w== /@types/underscore/1.11.0: dev: true resolution: @@ -1259,15 +1269,6 @@ packages: hasBin: true resolution: integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - /aggregate-error/3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== /ajv/6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -1402,6 +1403,7 @@ packages: resolution: integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== /array-union/2.1.0: + dev: true engines: node: '>=8' resolution: @@ -1794,12 +1796,6 @@ packages: optional: true resolution: integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - /clean-stack/2.2.0: - dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== /cli/1.0.1: dependencies: exit: 0.1.2 @@ -1928,12 +1924,6 @@ packages: node: '>= 8' resolution: integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - /crypto-random-string/2.0.0: - dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== /d/0.1.1: dependencies: es5-ext: 0.10.53 @@ -2018,24 +2008,10 @@ packages: optional: true resolution: integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - /del/6.0.0: - dependencies: - globby: 11.0.2 - graceful-fs: 4.2.5 - is-glob: 4.0.1 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.2 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - dev: false - engines: - node: '>=10' - resolution: - integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== /dir-glob/3.0.1: dependencies: path-type: 4.0.0 + dev: true engines: node: '>=8' resolution: @@ -2689,6 +2665,7 @@ packages: merge2: 1.4.1 micromatch: 4.0.2 picomatch: 2.2.2 + dev: true engines: node: '>=8' resolution: @@ -2704,6 +2681,7 @@ packages: /fastq/1.11.0: dependencies: reusify: 1.0.4 + dev: true resolution: integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== /file-entry-cache/6.0.1: @@ -2845,6 +2823,7 @@ packages: /glob-parent/5.1.2: dependencies: is-glob: 4.0.1 + dev: true engines: node: '>= 6' resolution: @@ -2894,6 +2873,7 @@ packages: ignore: 5.1.8 merge2: 1.4.1 slash: 3.0.0 + dev: true engines: node: '>=10' resolution: @@ -3007,6 +2987,7 @@ packages: resolution: integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== /ignore/5.1.8: + dev: true engines: node: '>= 4' resolution: @@ -3026,12 +3007,6 @@ packages: node: '>=0.8.19' resolution: integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= - /indent-string/4.0.0: - dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== /inflight/1.0.6: dependencies: once: 1.4.0 @@ -3240,18 +3215,6 @@ packages: node: '>=0.12.0' resolution: integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - /is-path-cwd/2.2.0: - dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - /is-path-inside/3.0.2: - dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== /is-plain-object/2.0.4: dependencies: isobject: 3.0.1 @@ -3270,12 +3233,6 @@ packages: node: '>= 0.4' resolution: integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== - /is-stream/2.0.0: - dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== /is-string/1.0.5: dev: true engines: @@ -3559,6 +3516,7 @@ packages: resolution: integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= /merge2/1.4.1: + dev: true engines: node: '>= 8' resolution: @@ -3588,6 +3546,7 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.2.2 + dev: true engines: node: '>=8' resolution: @@ -3614,6 +3573,13 @@ packages: dev: false resolution: integrity: sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY= + /mkdirp/0.5.5: + dependencies: + minimist: 1.2.5 + dev: false + hasBin: true + resolution: + integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== /ms/2.0.0: resolution: integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= @@ -3796,14 +3762,6 @@ packages: node: '>=4' resolution: integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - /p-map/4.0.0: - dependencies: - aggregate-error: 3.1.0 - dev: false - engines: - node: '>=10' - resolution: - integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== /p-try/1.0.0: dev: true engines: @@ -3867,6 +3825,7 @@ packages: resolution: integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= /path-type/4.0.0: + dev: true engines: node: '>=8' resolution: @@ -3955,6 +3914,7 @@ packages: resolution: integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== /queue-microtask/1.2.2: + dev: true resolution: integrity: sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== /react-is/16.13.1: @@ -4160,20 +4120,30 @@ packages: resolution: integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== /reusify/1.0.4: + dev: true engines: iojs: '>=1.0.0' node: '>=0.10.0' resolution: integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + /rimraf/2.6.3: + dependencies: + glob: 7.1.6 + dev: false + hasBin: true + resolution: + integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== /rimraf/3.0.2: dependencies: glob: 7.1.6 + dev: true hasBin: true resolution: integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== /run-parallel/1.2.0: dependencies: queue-microtask: 1.2.2 + dev: true resolution: integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== /safe-buffer/5.1.2: @@ -4256,6 +4226,7 @@ packages: resolution: integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== /slash/3.0.0: + dev: true engines: node: '>=8' resolution: @@ -4499,24 +4470,15 @@ packages: node: '>=10.0.0' resolution: integrity: sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== - /temp-dir/2.0.0: - dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== - /tempy/1.0.1: + /temp/0.9.4: dependencies: - del: 6.0.0 - is-stream: 2.0.0 - temp-dir: 2.0.0 - type-fest: 0.16.0 - unique-string: 2.0.0 + mkdirp: 0.5.5 + rimraf: 2.6.3 dev: false engines: - node: '>=10' + node: '>=6.0.0' resolution: - integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== + integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA== /text-table/0.2.0: dev: true resolution: @@ -4602,12 +4564,6 @@ packages: node: '>= 0.8.0' resolution: integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - /type-fest/0.16.0: - dev: false - engines: - node: '>=10' - resolution: - integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== /type-fest/0.20.2: dev: true engines: @@ -4697,14 +4653,6 @@ packages: optional: true resolution: integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - /unique-string/2.0.0: - dependencies: - crypto-random-string: 2.0.0 - dev: false - engines: - node: '>=8' - resolution: - integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== /universalify/2.0.0: dev: false engines: @@ -4834,6 +4782,7 @@ specifiers: '@types/atom': ^1.40.10 '@types/jasmine': ^3.6.7 '@types/node': ^14.14.35 + '@types/temp': ^0.8.34 '@types/underscore': ^1.11.0 '@types/uuid': ^8.3.0 ansi-to-html: ^0.6.14 @@ -4845,6 +4794,6 @@ specifiers: prettier: ^2.2.1 prettier-config-atomic: ^1.0.1 strip-ansi: ^6.0.0 - tempy: ^1.0.1 + temp: ^0.9.4 underscore: ^1.12.1 uuid: ^8.3.2 diff --git a/spec/code-context-spec.js b/spec/code-context-spec.js index f97fce24..eb1c7235 100644 --- a/spec/code-context-spec.js +++ b/spec/code-context-spec.js @@ -1,7 +1,9 @@ "use babel" // TODO -/* eslint-disable no-invalid-this */ import tempy from "tempy" +/* eslint-disable no-invalid-this */ import path from "path" +import temp from "temp" +temp.track() import CodeContext from "../lib/code-context" @@ -10,7 +12,7 @@ describe("CodeContext", () => { let testFilePath beforeEach(() => { - testFilePath = path.join(tempy.directory(), testFile) + testFilePath = path.join(temp.mkdirSync(""), testFile) this.codeContext = new CodeContext(testFile, testFilePath, null) // TODO: Test using an actual editor or a selection? this.dummyTextSource = {} diff --git a/spec/grammars-spec.js b/spec/grammars-spec.js index 7de17a61..7c08b750 100644 --- a/spec/grammars-spec.js +++ b/spec/grammars-spec.js @@ -1,7 +1,9 @@ "use babel" // TODO -/* eslint-disable no-invalid-this */ import tempy from "tempy" +/* eslint-disable no-invalid-this */ import path from "path" +import temp from "temp" +temp.track() import CodeContext from "../lib/code-context" import OperatingSystem from "../lib/grammar-utils/operating-system" @@ -12,7 +14,7 @@ describe("grammarMap", () => { let testFilePath beforeEach(() => { - testFilePath = path.join(tempy.directory(), testFile) + testFilePath = path.join(temp.mkdirSync(""), testFile) this.codeContext = new CodeContext(testFile, testFilePath, null) // TODO: Test using an actual editor or a selection? this.dummyTextSource = {} From ccea0bf375a4861d0fa90b669414d1177d0146ce Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 08:15:42 -0500 Subject: [PATCH 353/410] fix: use temp in grammar-utils --- lib/grammar-utils.js | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 25672753..baa0ef2e 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -2,9 +2,10 @@ // Require some libs used for creating temporary files import os from "os" -import fs from "fs" +import * as fs from "fs" import path from "path" -import { v1 as uuidv1 } from "uuid" +import * as temp from "temp" +temp.track() // Public: GrammarUtils - utilities for determining how to run code const GrammarUtils = { @@ -17,17 +18,10 @@ const GrammarUtils = { // Returns the {String} filepath of the new file createTempFileWithCode(code, extension = "") { try { - if (!fs.existsSync(this.tempFilesDir)) { - fs.mkdirSync(this.tempFilesDir) - } - - const tempFilePath = this.tempFilesDir + path.sep + uuidv1() + extension - - const file = fs.openSync(tempFilePath, "w") - fs.writeSync(file, code) - fs.closeSync(file) - - return tempFilePath + const tempFile = temp.openSync({ dir: this.tempFilesDir, suffix: extension }) + fs.writeSync(tempFile.fd, code) + fs.closeSync(tempFile.fd) + return tempFile.path } catch (error) { throw new Error(`Error while creating temporary file (${error})`) } @@ -37,14 +31,7 @@ const GrammarUtils = { // {GrammarUtils::createTempFileWithCode} deleteTempFiles() { try { - if (fs.existsSync(this.tempFilesDir)) { - const files = fs.readdirSync(this.tempFilesDir) - if (files.length) { - files.forEach((file) => fs.unlinkSync(this.tempFilesDir + path.sep + file)) - } - return fs.rmdirSync(this.tempFilesDir) - } - return null + return temp.cleanupSync() } catch (error) { throw new Error(`Error while deleting temporary files (${error})`) } From 49d62d36c5a68260715b4aa08d1b5a45293c12ab Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 08:22:10 -0500 Subject: [PATCH 354/410] fix: use createTempPath in C grammar --- lib/grammar-utils.js | 7 +++++++ lib/grammars/c.js | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index baa0ef2e..a8a4a738 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -11,6 +11,13 @@ temp.track() const GrammarUtils = { tempFilesDir: path.join(os.tmpdir(), "atom_script_tempfiles"), + // Public: Create a temporary path + // + // Returns the {String} filepath of the new file + createTempPath(prefix = "", extension = "") { + return temp.path({ dir: this.tempFilesDir, prefix, suffix: extension }) + }, + // Public: Create a temporary file with the provided code // // * `code` A {String} containing some code diff --git a/lib/grammars/c.js b/lib/grammars/c.js index bf71ce91..9f32f02e 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -11,13 +11,14 @@ const options = "-Wall -include stdio.h" // TODO add windows support function CArgs({ filepath }) { + const tempOutFile = GrammarUtils.createTempPath("c-", ".out") let cmdArgs = "" switch (os) { case "darwin": - cmdArgs = `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out` + cmdArgs = `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o ${tempOutFile} && ${tempOutFile}` break case "linux": - cmdArgs = `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out` + cmdArgs = `cc ${options} '${filepath}' -o ${tempOutFile} && ${tempOutFile}` break default: { atom.notifications.addError(`Not support on ${os}`) From 6db2dfa5089d02ec62f1dd18a434598776536bbf Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 08:25:14 -0500 Subject: [PATCH 355/410] fix: use createTempPath in Cpp grammar --- lib/grammars/c.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 9f32f02e..55bbd87f 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -94,14 +94,14 @@ const Cpp = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp") + const tempOutFile = GrammarUtils.createTempPath("cpp-", ".out") let cmdArgs = "" - switch (os) { case "darwin": - cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` + cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream ${tmpFile} -o ${tempOutFile} && ${tempOutFile}` break case "linux": - cmdArgs = `g++ ${options} -std=c++14 -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out` + cmdArgs = `g++ ${options} -std=c++14 -include iostream ${tmpFile} -o ${tempOutFile} && ${tempOutFile}` break default: { atom.notifications.addError(`Not support on ${os}`) @@ -114,13 +114,14 @@ const Cpp = { "File Based": { command, args({ filepath }) { + const tempOutFile = GrammarUtils.createTempPath("cpp-", ".out") let cmdArgs = "" switch (os) { case "darwin": - cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` + cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream '${filepath}' -o ${tempOutFile} && ${tempOutFile}` break case "linux": - cmdArgs = `g++ -std=c++14 ${options} -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out` + cmdArgs = `g++ -std=c++14 ${options} -include iostream '${filepath}' -o ${tempOutFile} && ${tempOutFile}` break case "win32": if ( @@ -131,7 +132,7 @@ const Cpp = { filepath = path.posix .join(...[filepath.split(path.win32.sep)[0].toLowerCase(), ...filepath.split(path.win32.sep).slice(1)]) .replace(":", "") - cmdArgs = `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o /tmp/cpp.out && /tmp/cpp.out` + cmdArgs = `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o ${tempOutFile} && ${tempOutFile}` } break default: { From c61bb75220110925aeaea5d2c34d44901952a09a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 08:27:24 -0500 Subject: [PATCH 356/410] fix: use createTempPath in Obj-c and Obj-cpp grammar --- lib/grammars/c.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/grammars/c.js b/lib/grammars/c.js index 55bbd87f..cf9a4d93 100644 --- a/lib/grammars/c.js +++ b/lib/grammars/c.js @@ -149,9 +149,10 @@ const ObjectiveC = { "File Based": { command: "bash", args({ filepath }) { + const tempOutFile = GrammarUtils.createTempPath("objc-", ".out") return [ "-c", - `xcrun clang ${options} -fcolor-diagnostics -framework Cocoa '${filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out`, + `xcrun clang ${options} -fcolor-diagnostics -framework Cocoa '${filepath}' -o ${tempOutFile} && ${tempOutFile}`, ] }, }, @@ -161,9 +162,10 @@ const ObjectiveCpp = { "File Based": { command: "bash", args({ filepath }) { + const tempOutFile = GrammarUtils.createTempPath("objcpp-", ".out") return [ "-c", - `xcrun clang++ -Wc++11-extensions ${options} -fcolor-diagnostics -include iostream -framework Cocoa '${filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out`, + `xcrun clang++ -Wc++11-extensions ${options} -fcolor-diagnostics -include iostream -framework Cocoa '${filepath}' -o ${tempOutFile} && ${tempOutFile}`, ] }, }, From 256b8bb2501366a6fab34e7ba630854af9098df2 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 08:40:05 -0500 Subject: [PATCH 357/410] fix: make sure temp directory exists --- lib/grammar-utils.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index a8a4a738..420c27af 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -11,10 +11,17 @@ temp.track() const GrammarUtils = { tempFilesDir: path.join(os.tmpdir(), "atom_script_tempfiles"), + ensureTempDir() { + if (!fs.existsSync(this.tempFilesDir)) { + fs.mkdirSync(this.tempFilesDir) + } + }, + // Public: Create a temporary path // // Returns the {String} filepath of the new file createTempPath(prefix = "", extension = "") { + this.ensureTempDir() return temp.path({ dir: this.tempFilesDir, prefix, suffix: extension }) }, @@ -25,6 +32,7 @@ const GrammarUtils = { // Returns the {String} filepath of the new file createTempFileWithCode(code, extension = "") { try { + this.ensureTempDir() const tempFile = temp.openSync({ dir: this.tempFilesDir, suffix: extension }) fs.writeSync(tempFile.fd, code) fs.closeSync(tempFile.fd) From 5b10e3b6c12b56abe6c86b194c6710d8463daef3 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 08:43:39 -0500 Subject: [PATCH 358/410] fix: use createTempPath in fortran grammar --- lib/grammars/fortran.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/grammars/fortran.js b/lib/grammars/fortran.js index e5ba3834..7dcdfc5e 100644 --- a/lib/grammars/fortran.js +++ b/lib/grammars/fortran.js @@ -7,7 +7,8 @@ const FortranFixedForm = { "File Based": { command, args({ filepath }) { - const cmd = `gfortran '${filepath}' -ffixed-form -o /tmp/f.out && /tmp/f.out` + const tempOutFile = GrammarUtils.createTempPath("f-", ".out") + const cmd = `gfortran '${filepath}' -ffixed-form -o ${tempOutFile} && ${tempOutFile}` return GrammarUtils.formatArgs(cmd) }, }, @@ -16,7 +17,8 @@ const FortranFreeForm = { "File Based": { command, args({ filepath }) { - const cmd = `gfortran '${filepath}' -ffree-form -o /tmp/f90.out && /tmp/f90.out` + const tempOutFile = GrammarUtils.createTempPath("f90-", ".out") + const cmd = `gfortran '${filepath}' -ffree-form -o ${tempOutFile} && ${tempOutFile}` return GrammarUtils.formatArgs(cmd) }, }, From b96d7f5632c2c17579428811309b078072dfad20 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 10:24:59 -0500 Subject: [PATCH 359/410] fix: createTempFolder --- lib/grammar-utils.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 420c27af..46caaf0d 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -25,6 +25,14 @@ const GrammarUtils = { return temp.path({ dir: this.tempFilesDir, prefix, suffix: extension }) }, + // Public: Create a temporary directory + // + // Returns the {String} filepath of the new folder + createTempFolder(prefix = "") { + this.ensureTempDir() + return temp.mkdirSync({ dir: this.tempFilesDir, prefix }) + }, + // Public: Create a temporary file with the provided code // // * `code` A {String} containing some code From 1798f08e3cd3149c60bc1684eb4605c1f8696c1c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 10:25:02 -0500 Subject: [PATCH 360/410] fix: fix Java --- examples/HelloWorld.java | 2 ++ lib/grammars/java.js | 9 ++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/HelloWorld.java b/examples/HelloWorld.java index 3b449d9e..f4703053 100644 --- a/examples/HelloWorld.java +++ b/examples/HelloWorld.java @@ -1,5 +1,7 @@ class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); + // test UTF-8 + System.out.println("سلام"); } } diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 1fd84e74..c91776aa 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -25,13 +25,12 @@ export const Java = { const className = GrammarUtils.Java.getClassName(context) const classPackages = GrammarUtils.Java.getClassPackage(context) const sourcePath = GrammarUtils.Java.getProjectPath(context) + const tempFolder = GrammarUtils.createTempFolder("jar-") + const cmd = `javac -encoding UTF-8 -sourcepath '${sourcePath}' -d '${tempFolder}' '${context.filepath}' && java -D'file.encoding'='UTF-8' -cp '${tempFolder}' ${classPackages}${className}` if (windows) { - return [`/c javac -Xlint ${context.filename} && java ${className}`] + return [`/c ${cmd}`] } else { - return [ - "-c", - `javac -J-Dfile.encoding=UTF-8 -sourcepath '${sourcePath}' -d /tmp '${context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp:%CLASSPATH ${classPackages}${className}`, - ] + return ["-c", cmd] } }, }, From df0cd0f4819ab811f37218dfefbab5ab6cd76143 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 10:59:01 -0500 Subject: [PATCH 361/410] Revert "fix: fix Java" This reverts commit 1798f08e3cd3149c60bc1684eb4605c1f8696c1c. --- examples/HelloWorld.java | 2 -- lib/grammars/java.js | 9 +++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/HelloWorld.java b/examples/HelloWorld.java index f4703053..3b449d9e 100644 --- a/examples/HelloWorld.java +++ b/examples/HelloWorld.java @@ -1,7 +1,5 @@ class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); - // test UTF-8 - System.out.println("سلام"); } } diff --git a/lib/grammars/java.js b/lib/grammars/java.js index c91776aa..1fd84e74 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -25,12 +25,13 @@ export const Java = { const className = GrammarUtils.Java.getClassName(context) const classPackages = GrammarUtils.Java.getClassPackage(context) const sourcePath = GrammarUtils.Java.getProjectPath(context) - const tempFolder = GrammarUtils.createTempFolder("jar-") - const cmd = `javac -encoding UTF-8 -sourcepath '${sourcePath}' -d '${tempFolder}' '${context.filepath}' && java -D'file.encoding'='UTF-8' -cp '${tempFolder}' ${classPackages}${className}` if (windows) { - return [`/c ${cmd}`] + return [`/c javac -Xlint ${context.filename} && java ${className}`] } else { - return ["-c", cmd] + return [ + "-c", + `javac -J-Dfile.encoding=UTF-8 -sourcepath '${sourcePath}' -d /tmp '${context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp:%CLASSPATH ${classPackages}${className}`, + ] } }, }, From dfc22fffc506b0f91fff73621960b6cac897b406 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 11:00:38 -0500 Subject: [PATCH 362/410] chore: ci - add skip release [skip release] --- .github/workflows/CI.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9bd21c5f..cc506cbf 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -61,7 +61,8 @@ jobs: Release: needs: [Test, Lint] if: github.ref == 'refs/heads/master' && - github.event.repository.fork == false + github.event.repository.fork == false && + !contains(github.event.head_commit.message, '[skip release]') runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From 34b592a4d2ce41b9c69a9f3aa1a7841b28457848 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 12:24:30 -0500 Subject: [PATCH 363/410] fix: fix eslint errors in KotlinArgs --- lib/grammars/java.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 1fd84e74..1ac085ec 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -12,12 +12,6 @@ const { command } = GrammarUtils const windows = GrammarUtils.OperatingSystem.isWindows() -const args = function (filepath, jar) { - jar = (jar != null ? jar : path.basename(filepath)).replace(/\.kt$/, ".jar") - const cmd = `kotlinc '${filepath}' -include-runtime -d ${jar} && java -jar ${jar}` - return GrammarUtils.formatArgs(cmd) -} - export const Java = { "File Based": { command, @@ -37,19 +31,25 @@ export const Java = { }, } +function KotlinArgs(filepath, jar) { + const jarNew = (jar !== null ? jar : path.basename(filepath)).replace(/\.kt$/, ".jar") + const cmd = `kotlinc '${filepath}' -include-runtime -d ${jarNew} && java -jar ${jarNew}` + return GrammarUtils.formatArgs(cmd) +} + export const Kotlin = { "Selection Based": { command, args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".kt") - return args(tmpFile) + return KotlinArgs(tmpFile, null) }, }, "File Based": { command, args({ filepath, filename }) { - return args(filepath, `/tmp/${filename}`) + return KotlinArgs(filepath, `/tmp/${filename}`) }, }, } From 5516681d8470f1bffa161ac9c47e3dce9bf029a5 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 12:33:46 -0500 Subject: [PATCH 364/410] fix: use createTempFolder in Kotlin --- lib/grammars/java.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 1ac085ec..0294f02e 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -49,7 +49,7 @@ export const Kotlin = { "File Based": { command, args({ filepath, filename }) { - return KotlinArgs(filepath, `/tmp/${filename}`) + return KotlinArgs(filepath, path.join(GrammarUtils.createTempFolder("kt-"), filename)) }, }, } From abf884ea265d9b5767b22fcaaa27c0b40b1ff017 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 12:33:50 -0500 Subject: [PATCH 365/410] chore: rename JavaScriptArgs function --- lib/grammars/javascript.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index bc5e4e59..7db4e4b0 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -12,10 +12,11 @@ const babel = path.join( ) const babelConfig = path.join(__dirname, "babel.config.js") -const args = ({ filepath }) => { +function JavaScriptArgs({ filepath }) { const cmd = `'${babel}' --filename '${filepath}' --config-file ${babelConfig} < '${filepath}'| node` return GrammarUtils.formatArgs(cmd) } + const Dart = { "Selection Based": { command: "dart", @@ -36,10 +37,10 @@ const JavaScript = { args: (context) => { const code = context.getCode() const filepath = GrammarUtils.createTempFileWithCode(code, ".js") - return args({ filepath }) + return JavaScriptArgs({ filepath }) }, }, - "File Based": { command: GrammarUtils.command, args }, + "File Based": { command: GrammarUtils.command, args: JavaScriptArgs }, } const Babel = JavaScript const JSX = JavaScript From 67abf6e090723808ed0048af650d51cd380f2e68 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 12:34:23 -0500 Subject: [PATCH 366/410] chore: move code in javascript --- lib/grammars/javascript.js | 46 ++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index 7db4e4b0..135a9693 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -17,33 +17,45 @@ function JavaScriptArgs({ filepath }) { return GrammarUtils.formatArgs(cmd) } -const Dart = { +const JavaScript = { "Selection Based": { - command: "dart", + command: GrammarUtils.command, args: (context) => { const code = context.getCode() - const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dart") - return [tmpFile] + const filepath = GrammarUtils.createTempFileWithCode(code, ".js") + return JavaScriptArgs({ filepath }) }, }, + "File Based": { command: GrammarUtils.command, args: JavaScriptArgs }, +} +const Babel = JavaScript +const JSX = JavaScript + +const TypeScript = { + "Selection Based": { + command: "ts-node", + args: (context) => ["-e", context.getCode()], + }, "File Based": { - command: "dart", + command: "ts-node", args: ({ filepath }) => [filepath], }, } -const JavaScript = { + +const Dart = { "Selection Based": { - command: GrammarUtils.command, + command: "dart", args: (context) => { const code = context.getCode() - const filepath = GrammarUtils.createTempFileWithCode(code, ".js") - return JavaScriptArgs({ filepath }) + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".dart") + return [tmpFile] }, }, - "File Based": { command: GrammarUtils.command, args: JavaScriptArgs }, + "File Based": { + command: "dart", + args: ({ filepath }) => [filepath], + }, } -const Babel = JavaScript -const JSX = JavaScript const JXA = { "Selection Based": { @@ -55,16 +67,6 @@ const JXA = { args: ({ filepath }) => ["-l", "JavaScript", filepath], }, } -const TypeScript = { - "Selection Based": { - command: "ts-node", - args: (context) => ["-e", context.getCode()], - }, - "File Based": { - command: "ts-node", - args: ({ filepath }) => [filepath], - }, -} const JavaScriptGrammars = { JavaScript, From bb74d13010f260509ca6a5ef345b9bcd12ade23c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 12:44:27 -0500 Subject: [PATCH 367/410] fix: use createTempPath for Rust --- lib/grammars/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/grammars/index.js b/lib/grammars/index.js index ba96ebab..9b485e9c 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -520,7 +520,8 @@ const OtherGrammars = { if (windows) { return [`/c rustc ${filepath} && ${filename.slice(0, Number(-4) + 1 || undefined)}.exe`] } else { - return ["-c", `rustc '${filepath}' -o /tmp/rs.out && /tmp/rs.out`] + const tempOutFile = GrammarUtils.createTempPath("rs-", ".out") + return ["-c", `rustc '${filepath}' -o ${tempOutFile} && ${tempOutFile}`] } }, }, From 82f708a632022071e0a9ea4426a9365a3b881b4a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 12:44:36 -0500 Subject: [PATCH 368/410] fix: use createTempPath for Asm --- lib/grammars/index.js | 44 +++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/lib/grammars/index.js b/lib/grammars/index.js index 9b485e9c..ea406212 100644 --- a/lib/grammars/index.js +++ b/lib/grammars/index.js @@ -569,15 +569,21 @@ const OtherGrammars = { "File Based": { command: "bash", args({ filepath }) { - const args = (() => { - switch (arch) { - case "x32": - return `nasm -f elf '${filepath}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` - case "x64": - return `nasm -f elf64 '${filepath}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` + const tempOutOFile = GrammarUtils.createTempPath("asm-", ".out.o") + const tempOutFile = GrammarUtils.createTempPath("asm-", ".out") + let cmadArgs = "" + switch (arch) { + case "x32": + cmadArgs = `nasm -f elf '${filepath}' -o ${tempOutOFile} && ld -m elf_i386 ${tempOutOFile} -o ${tempOutFile} && ${tempOutFile}` + break + case "x64": + cmadArgs = `nasm -f elf64 '${filepath}' -o ${tempOutOFile} && ld ${tempOutOFile} -o ${tempOutFile} && ${tempOutFile}` + break + default: { + atom.notifications.addError(`Not supported on ${arch}`) } - })() - return ["-c", args] + } + return ["-c", cmadArgs] }, }, @@ -586,15 +592,21 @@ const OtherGrammars = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".asm") - const args = (() => { - switch (arch) { - case "x32": - return `nasm -f elf '${tmpFile}' -o /tmp/asm.out.o && ld -m elf_i386 /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` - case "x64": - return `nasm -f elf64 '${tmpFile}' -o /tmp/asm.out.o && ld /tmp/asm.out.o -o /tmp/asm.out && /tmp/asm.out` + const tempOutOFile = GrammarUtils.createTempPath("asm-", ".out.o") + const tempOutFile = GrammarUtils.createTempPath("asm-", ".out") + let cmdArgs = "" + switch (arch) { + case "x32": + cmdArgs = `nasm -f elf '${tmpFile}' -o ${tempOutOFile} && ld -m elf_i386 ${tempOutOFile} -o ${tempOutFile} && ${tempOutFile}` + break + case "x64": + cmdArgs = `nasm -f elf64 '${tmpFile}' -o ${tempOutOFile} && ld ${tempOutOFile} -o ${tempOutFile} && ${tempOutFile}` + break + default: { + atom.notifications.addError(`Not supported on ${arch}`) } - })() - return ["-c", args] + } + return ["-c", cmdArgs] }, }, }, From 00cd789e629ae0556f8912750bec04c6baeb6f38 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 13:07:10 -0500 Subject: [PATCH 369/410] fix: use rimraf for deleting the temp folder --- lib/grammar-utils.js | 6 +++--- package.json | 2 ++ pnpm-lock.yaml | 23 ++++++++++++++++++++++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 46caaf0d..eec57b22 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -5,7 +5,7 @@ import os from "os" import * as fs from "fs" import path from "path" import * as temp from "temp" -temp.track() +import * as rimraf from "rimraf" // Public: GrammarUtils - utilities for determining how to run code const GrammarUtils = { @@ -54,9 +54,9 @@ const GrammarUtils = { // {GrammarUtils::createTempFileWithCode} deleteTempFiles() { try { - return temp.cleanupSync() + rimraf.sync(this.tempFilesDir) } catch (error) { - throw new Error(`Error while deleting temporary files (${error})`) + console.error(`Error while deleting temporary files (${error})`) } }, diff --git a/package.json b/package.json index 3f62aaeb..c7d7281b 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "ansi-to-html": "^0.6.14", "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", + "rimraf": "^3.0.2", "strip-ansi": "^6.0.0", "temp": "^0.9.4", "underscore": "^1.12.1", @@ -38,6 +39,7 @@ "@types/atom": "^1.40.10", "@types/jasmine": "^3.6.7", "@types/node": "^14.14.35", + "@types/rimraf": "^3.0.0", "@types/temp": "^0.8.34", "@types/underscore": "^1.11.0", "@types/uuid": "^8.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5b98694..01581f32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ dependencies: ansi-to-html: 0.6.14 atom-message-panel: 1.3.1 atom-space-pen-views-plus: 3.0.4 + rimraf: 3.0.2 strip-ansi: 6.0.0 temp: 0.9.4 underscore: 1.12.1 @@ -14,6 +15,7 @@ devDependencies: '@types/atom': 1.40.10 '@types/jasmine': 3.6.7 '@types/node': 14.14.35 + '@types/rimraf': 3.0.0 '@types/temp': 0.8.34 '@types/underscore': 1.11.0 '@types/uuid': 8.3.0 @@ -1119,6 +1121,13 @@ packages: dev: true resolution: integrity: sha512-aNFUhCuR6nmTTMoYKfWWMifZ3IcNETLWC75hCdg3i1/OvirfR/5qm1wfiISBb4s/TPM2YVEtxytCdWhKJuEhzw== + /@types/glob/7.1.3: + dependencies: + '@types/minimatch': 3.0.3 + '@types/node': 14.14.35 + dev: true + resolution: + integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== /@types/jasmine/3.6.7: dev: true resolution: @@ -1131,10 +1140,21 @@ packages: dev: true resolution: integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + /@types/minimatch/3.0.3: + dev: true + resolution: + integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== /@types/node/14.14.35: dev: true resolution: integrity: sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== + /@types/rimraf/3.0.0: + dependencies: + '@types/glob': 7.1.3 + '@types/node': 14.14.35 + dev: true + resolution: + integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ== /@types/temp/0.8.34: dependencies: '@types/node': 14.14.35 @@ -4136,7 +4156,6 @@ packages: /rimraf/3.0.2: dependencies: glob: 7.1.6 - dev: true hasBin: true resolution: integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -4782,6 +4801,7 @@ specifiers: '@types/atom': ^1.40.10 '@types/jasmine': ^3.6.7 '@types/node': ^14.14.35 + '@types/rimraf': ^3.0.0 '@types/temp': ^0.8.34 '@types/underscore': ^1.11.0 '@types/uuid': ^8.3.0 @@ -4793,6 +4813,7 @@ specifiers: eslint-config-atomic: ^1.12.4 prettier: ^2.2.1 prettier-config-atomic: ^1.0.1 + rimraf: ^3.0.2 strip-ansi: ^6.0.0 temp: ^0.9.4 underscore: ^1.12.1 From f35783cb3f4f04aafd33178148fca1690387c718 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 13:18:05 -0500 Subject: [PATCH 370/410] fix: simplify workingDirectory --- lib/grammar-utils.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index eec57b22..4b1149a5 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -73,12 +73,9 @@ const GrammarUtils = { /** get workingDirectory */ workingDirectory() { - const activePane = atom.workspace.getActivePaneItem() - if (activePane && activePane.buffer && activePane.buffer.file && activePane.buffer.file.getParent) { - const parent = activePane.buffer.file.getParent() - if (parent && parent.getPath) { - return parent.getPath() - } + const textEditor = atom.workspace.getActiveTextEditor() + if (textEditor !== undefined) { + return textEditor.getDirectoryPath() } return process.cwd() }, From 47baeeb4217b5d03076462e926bdc09be46b45b8 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 13:18:28 -0500 Subject: [PATCH 371/410] chore: eslint disable class-methods-use-this for quoteArguments --- lib/command-context.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/command-context.js b/lib/command-context.js index 1163b34b..288e7ab7 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -48,7 +48,9 @@ export default class CommandContext { return commandContext } // eslint-disable-next-line class-methods-use-this - /** @deprecated use {quoteArguments} function */ quoteArguments(args) { + /** @deprecated use {quoteArguments} function */ + /* eslint-disable-next-line class-methods-use-this */ + quoteArguments(args) { return quoteArguments(args) } From d7fa5255cc1bdd47184314552f94e67780bd6ee0 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 13:29:00 -0500 Subject: [PATCH 372/410] chore: fix Julia example --- examples/bubble.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/bubble.jl b/examples/bubble.jl index 2fe52d55..190d14a9 100644 --- a/examples/bubble.jl +++ b/examples/bubble.jl @@ -1,5 +1,5 @@ import Base.Sort -immutable BubbleSortAlg <: Sort.Algorithm end +struct BubbleSortAlg <: Sort.Algorithm end const BubbleSort = BubbleSortAlg() function Base.sort!(v::AbstractVector, lo::Int, hi::Int, ::BubbleSortAlg, o::Sort.Ordering) @@ -15,3 +15,5 @@ while true end return v end + +println("Done!") From 8581f8ef63cf385bbccde3b25fff6a5a031e8999 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 14:21:08 -0500 Subject: [PATCH 373/410] fix: use babel-node for JavaScript --- lib/grammars/javascript.js | 16 ++-- package.json | 1 + pnpm-lock.yaml | 185 +++++++++++++++++++++++++++++++++---- 3 files changed, 174 insertions(+), 28 deletions(-) diff --git a/lib/grammars/javascript.js b/lib/grammars/javascript.js index 135a9693..e4eec866 100644 --- a/lib/grammars/javascript.js +++ b/lib/grammars/javascript.js @@ -8,25 +8,23 @@ const babel = path.join( "../..", "node_modules", ".bin", - GrammarUtils.OperatingSystem.isWindows() ? "babel.cmd" : "babel" + GrammarUtils.OperatingSystem.isWindows() ? "babel-node.cmd" : "babel-node" ) const babelConfig = path.join(__dirname, "babel.config.js") -function JavaScriptArgs({ filepath }) { - const cmd = `'${babel}' --filename '${filepath}' --config-file ${babelConfig} < '${filepath}'| node` - return GrammarUtils.formatArgs(cmd) -} - const JavaScript = { "Selection Based": { - command: GrammarUtils.command, + command: babel, args: (context) => { const code = context.getCode() const filepath = GrammarUtils.createTempFileWithCode(code, ".js") - return JavaScriptArgs({ filepath }) + return [filepath, "--config-file", babelConfig] }, }, - "File Based": { command: GrammarUtils.command, args: JavaScriptArgs }, + "File Based": { + command: babel, + args: ({ filepath }) => [filepath, "--config-file", babelConfig], + }, } const Babel = JavaScript const JSX = JavaScript diff --git a/package.json b/package.json index c7d7281b..0e170865 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "dependencies": { "@babel/cli": "^7.13.10", "@babel/core": "^7.13.10", + "@babel/node": "^7.13.12", "@babel/preset-env": "^7.13.10", "@babel/preset-react": "^7.12.13", "ansi-to-html": "^0.6.14", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01581f32..829f4204 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,6 +1,7 @@ dependencies: '@babel/cli': 7.13.10_@babel+core@7.13.10 '@babel/core': 7.13.10 + '@babel/node': 7.13.12_@babel+core@7.13.10 '@babel/preset-env': 7.13.10_@babel+core@7.13.10 '@babel/preset-react': 7.12.13_@babel+core@7.13.10 ansi-to-html: 0.6.14 @@ -290,6 +291,21 @@ packages: js-tokens: 4.0.0 resolution: integrity: sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + /@babel/node/7.13.12_@babel+core@7.13.10: + dependencies: + '@babel/core': 7.13.10 + '@babel/register': 7.13.8_@babel+core@7.13.10 + commander: 4.1.1 + core-js: 3.9.1 + node-environment-flags: 1.0.6 + regenerator-runtime: 0.13.7 + v8flags: 3.2.0 + dev: false + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-5+7atyeHEXNz795xEquNRNBXTb9a1Kr6nrvnKWhG0d8Q9BseNCj9dacqSSCN1fI/JUpkRZQBfsmUBR2NX98s1g== /@babel/parser/7.13.11: engines: node: '>=6.0.0' @@ -1005,6 +1021,19 @@ packages: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== + /@babel/register/7.13.8_@babel+core@7.13.10: + dependencies: + '@babel/core': 7.13.10 + find-cache-dir: 2.1.0 + lodash: 4.17.21 + make-dir: 2.1.0 + pirates: 4.0.1 + source-map-support: 0.5.19 + dev: false + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-yCVtABcmvQjRsX2elcZFUV5Q5kDDpHdtXKKku22hNDma60lYuhKmtp1ykZ/okRCPLT2bR5S+cA1kvtBdAFlDTQ== /@babel/runtime-corejs3/7.13.10: dependencies: core-js-pure: 3.9.1 @@ -1725,6 +1754,10 @@ packages: hasBin: true resolution: integrity: sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + /buffer-from/1.1.1: + dev: false + resolution: + integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== /cache-base/1.0.1: dependencies: collection-visit: 1.0.0 @@ -1877,6 +1910,10 @@ packages: node: '>= 6' resolution: integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + /commondir/1.0.1: + dev: false + resolution: + integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= /component-emitter/1.3.0: dev: false optional: true @@ -1931,6 +1968,11 @@ packages: requiresBuild: true resolution: integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + /core-js/3.9.1: + dev: false + requiresBuild: true + resolution: + integrity: sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== /core-util-is/1.0.2: resolution: integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -2153,7 +2195,6 @@ packages: string.prototype.trimend: 1.0.4 string.prototype.trimstart: 1.0.4 unbox-primitive: 1.0.0 - dev: true engines: node: '>= 0.4' resolution: @@ -2163,7 +2204,6 @@ packages: is-callable: 1.2.3 is-date-object: 1.0.2 is-symbol: 1.0.3 - dev: true engines: node: '>= 0.4' resolution: @@ -2731,6 +2771,16 @@ packages: node: '>=8' resolution: integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + /find-cache-dir/2.1.0: + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== /find-up/2.1.0: dependencies: locate-path: 2.0.0 @@ -2739,6 +2789,14 @@ packages: node: '>=4' resolution: integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + /find-up/3.0.0: + dependencies: + locate-path: 3.0.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== /flat-cache/3.0.4: dependencies: flatted: 3.1.1 @@ -2921,7 +2979,6 @@ packages: resolution: integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= /has-bigints/1.0.1: - dev: true resolution: integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== /has-flag/3.0.0: @@ -2986,6 +3043,14 @@ packages: node: '>= 0.4.0' resolution: integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + /homedir-polyfill/1.0.3: + dependencies: + parse-passwd: 1.0.0 + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== /hosted-git-info/2.8.8: dev: true resolution: @@ -3075,7 +3140,6 @@ packages: resolution: integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= /is-bigint/1.0.1: - dev: true resolution: integrity: sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== /is-binary-path/1.0.1: @@ -3099,7 +3163,6 @@ packages: /is-boolean-object/1.1.0: dependencies: call-bind: 1.0.2 - dev: true engines: node: '>= 0.4' resolution: @@ -3110,7 +3173,6 @@ packages: resolution: integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== /is-callable/1.2.3: - dev: true engines: node: '>= 0.4' resolution: @@ -3139,7 +3201,6 @@ packages: resolution: integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== /is-date-object/1.0.2: - dev: true engines: node: '>= 0.4' resolution: @@ -3210,13 +3271,11 @@ packages: resolution: integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== /is-negative-zero/2.0.1: - dev: true engines: node: '>= 0.4' resolution: integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== /is-number-object/1.0.4: - dev: true engines: node: '>= 0.4' resolution: @@ -3248,13 +3307,11 @@ packages: dependencies: call-bind: 1.0.2 has-symbols: 1.0.2 - dev: true engines: node: '>= 0.4' resolution: integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== /is-string/1.0.5: - dev: true engines: node: '>= 0.4' resolution: @@ -3262,7 +3319,6 @@ packages: /is-symbol/1.0.3: dependencies: has-symbols: 1.0.2 - dev: true engines: node: '>= 0.4' resolution: @@ -3484,6 +3540,15 @@ packages: node: '>=4' resolution: integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + /locate-path/3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== /lodash.debounce/4.0.8: dev: false resolution: @@ -3492,7 +3557,6 @@ packages: resolution: integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== /lodash/4.17.21: - dev: true resolution: integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== /loose-envify/1.4.0: @@ -3633,6 +3697,19 @@ packages: dev: false resolution: integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw= + /node-environment-flags/1.0.6: + dependencies: + object.getownpropertydescriptors: 2.1.2 + semver: 5.7.1 + dev: false + resolution: + integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== + /node-modules-regexp/1.0.0: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= /node-releases/1.1.70: resolution: integrity: sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== @@ -3679,7 +3756,6 @@ packages: resolution: integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw= /object-inspect/1.9.0: - dev: true resolution: integrity: sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== /object-keys/1.1.1: @@ -3728,6 +3804,16 @@ packages: node: '>= 0.4' resolution: integrity: sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + /object.getownpropertydescriptors/2.1.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.0 + dev: false + engines: + node: '>= 0.8' + resolution: + integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== /object.pick/1.3.0: dependencies: isobject: 3.0.1 @@ -3774,6 +3860,14 @@ packages: node: '>=4' resolution: integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + /p-limit/2.3.0: + dependencies: + p-try: 2.2.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== /p-locate/2.0.0: dependencies: p-limit: 1.3.0 @@ -3782,12 +3876,26 @@ packages: node: '>=4' resolution: integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + /p-locate/3.0.0: + dependencies: + p-limit: 2.3.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== /p-try/1.0.0: dev: true engines: node: '>=4' resolution: integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + /p-try/2.2.0: + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== /parent-module/1.0.1: dependencies: callsites: 3.1.0 @@ -3804,6 +3912,12 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + /parse-passwd/1.0.0: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= /pascalcase/0.1.1: dev: false engines: @@ -3817,7 +3931,6 @@ packages: resolution: integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= /path-exists/3.0.0: - dev: true engines: node: '>=4' resolution: @@ -3867,6 +3980,14 @@ packages: node: '>=6' resolution: integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + /pirates/4.0.1: + dependencies: + node-modules-regexp: 1.0.0 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== /pkg-dir/2.0.0: dependencies: find-up: 2.1.0 @@ -3875,6 +3996,14 @@ packages: node: '>=4' resolution: integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + /pkg-dir/3.0.0: + dependencies: + find-up: 3.0.0 + dev: false + engines: + node: '>=6' + resolution: + integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== /posix-character-classes/0.1.1: dev: false engines: @@ -4307,6 +4436,13 @@ packages: optional: true resolution: integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + /source-map-support/0.5.19: + dependencies: + buffer-from: 1.1.1 + source-map: 0.6.1 + dev: false + resolution: + integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== /source-map-url/0.4.1: dev: false optional: true @@ -4317,6 +4453,12 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + /source-map/0.6.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== /space-pen-plus/6.0.3: dependencies: jquery: 3.5.1 @@ -4402,14 +4544,12 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - dev: true resolution: integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== /string.prototype.trimstart/1.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - dev: true resolution: integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== /string_decoder/0.10.31: @@ -4616,7 +4756,6 @@ packages: has-bigints: 1.0.1 has-symbols: 1.0.2 which-boxed-primitive: 1.0.2 - dev: true resolution: integrity: sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== /underscore-plus/1.7.0: @@ -4728,6 +4867,14 @@ packages: dev: true resolution: integrity: sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + /v8flags/3.2.0: + dependencies: + homedir-polyfill: 1.0.3 + dev: false + engines: + node: '>= 0.10' + resolution: + integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== /validate-npm-package-license/3.0.4: dependencies: spdx-correct: 3.1.1 @@ -4768,7 +4915,6 @@ packages: is-number-object: 1.0.4 is-string: 1.0.5 is-symbol: 1.0.3 - dev: true resolution: integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== /which/2.0.2: @@ -4796,6 +4942,7 @@ packages: specifiers: '@babel/cli': ^7.13.10 '@babel/core': ^7.13.10 + '@babel/node': ^7.13.12 '@babel/preset-env': ^7.13.10 '@babel/preset-react': ^7.12.13 '@types/atom': ^1.40.10 From 3466e03248643e3bbb4c57dc80e9e9d9dab34e51 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 14:23:34 -0500 Subject: [PATCH 374/410] fix: use babel-node for CoffeeScript --- lib/grammars/coffeescript.js | 27 +- package.json | 1 - pnpm-lock.yaml | 982 +---------------------------------- 3 files changed, 33 insertions(+), 977 deletions(-) diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index 19c6a5fd..299410b4 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -1,16 +1,31 @@ "use babel" -import path from "path" +import * as path from "path" import GrammarUtils from "../grammar-utils" const { command } = GrammarUtils const bin = path.join(__dirname, "../..", "node_modules", ".bin") const coffee = path.join(bin, "coffee") -const babel = path.join(bin, "babel") +const babel = path.join( + __dirname, + "../..", + "node_modules", + ".bin", + GrammarUtils.OperatingSystem.isWindows() ? "babel-node.cmd" : "babel-node" +) const babelConfig = path.join(__dirname, "babel.config.js") -const args = function ({ filepath }) { - const cmd = `'${coffee}' -p '${filepath}'|'${babel}' --filename '${filepath} --config-file ${babelConfig}'| node` +const rimraf = path.join( + __dirname, + "../..", + "node_modules", + ".bin", + GrammarUtils.OperatingSystem.isWindows() ? "rimraf.cmd" : "rimraf" +) + +function coffeeArgs({ filepath }) { + const jsFile = filepath.replace(path.extname(filepath), ".js") + const cmd = `'${coffee}' --compile '${filepath}' && ${babel} ${jsFile} --config-file ${babelConfig}' && ${rimraf} ${jsFile}` return GrammarUtils.formatArgs(cmd) } @@ -23,10 +38,10 @@ const CoffeeScript = { const lit = scopeName !== null && scopeName.includes("lit") ? "lit" : "" const code = context.getCode() const filepath = GrammarUtils.createTempFileWithCode(code, `.${lit}coffee`) - return args({ filepath }) + return coffeeArgs({ filepath }) }, }, - "File Based": { command, args }, + "File Based": { command, args: coffeeArgs }, } const CoffeeScriptLiterate = CoffeeScript diff --git a/package.json b/package.json index 0e170865..6b5ab8d3 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,6 @@ "test": "atom --test spec" }, "dependencies": { - "@babel/cli": "^7.13.10", "@babel/core": "^7.13.10", "@babel/node": "^7.13.12", "@babel/preset-env": "^7.13.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 829f4204..4979273d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,4 @@ dependencies: - '@babel/cli': 7.13.10_@babel+core@7.13.10 '@babel/core': 7.13.10 '@babel/node': 7.13.12_@babel+core@7.13.10 '@babel/preset-env': 7.13.10_@babel+core@7.13.10 @@ -28,26 +27,6 @@ lockfileVersion: 5.2 optionalDependencies: coffeescript: 2.5.1 packages: - /@babel/cli/7.13.10_@babel+core@7.13.10: - dependencies: - '@babel/core': 7.13.10 - commander: 4.1.1 - convert-source-map: 1.7.0 - fs-readdir-recursive: 1.1.0 - glob: 7.1.6 - lodash: 4.17.20 - make-dir: 2.1.0 - slash: 2.0.0 - source-map: 0.5.7 - dev: false - hasBin: true - optionalDependencies: - '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents - chokidar: 3.5.1 - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ== /@babel/code-frame/7.12.11: dependencies: '@babel/highlight': 7.12.13 @@ -1103,23 +1082,6 @@ packages: node: ^10.12.0 || >=12.0.0 resolution: integrity: sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== - /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents: - dependencies: - anymatch: 2.0.0 - async-each: 1.0.3 - braces: 2.3.2 - glob-parent: 3.1.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 4.0.1 - normalize-path: 3.0.0 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - upath: 1.2.0 - dev: false - optional: true - resolution: - integrity: sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== /@nodelib/fs.scandir/2.1.4: dependencies: '@nodelib/fs.stat': 2.0.4 @@ -1381,24 +1343,6 @@ packages: hasBin: true resolution: integrity: sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA== - /anymatch/2.0.0: - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - dev: false - optional: true - resolution: - integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - /anymatch/3.1.1: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.2.2 - dev: false - engines: - node: '>= 8' - optional: true - resolution: - integrity: sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== /argparse/1.0.10: dependencies: sprintf-js: 1.0.3 @@ -1418,27 +1362,6 @@ packages: node: '>=6.0' resolution: integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - /arr-diff/4.0.0: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - /arr-flatten/1.1.0: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - /arr-union/3.1.0: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= /array-includes/3.1.3: dependencies: call-bind: 1.0.2 @@ -1457,13 +1380,6 @@ packages: node: '>=8' resolution: integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - /array-unique/0.3.2: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= /array.prototype.flat/1.2.4: dependencies: call-bind: 1.0.2 @@ -1485,13 +1401,6 @@ packages: node: '>= 0.4' resolution: integrity: sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== - /assign-symbols/1.0.0: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= /ast-types-flow/0.0.7: dev: true resolution: @@ -1502,25 +1411,12 @@ packages: node: '>=8' resolution: integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - /async-each/1.0.3: - dev: false - optional: true - resolution: - integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== /at-least-node/1.0.0: dev: false engines: node: '>= 4.0.0' resolution: integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - /atob/2.1.2: - dev: false - engines: - node: '>= 4.5.0' - hasBin: true - optional: true - resolution: - integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== /atom-message-panel/1.3.1: dependencies: atom-space-pen-views: 2.2.0 @@ -1682,62 +1578,16 @@ packages: /balanced-match/1.0.0: resolution: integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - /base/0.11.2: - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.0 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - /binary-extensions/1.13.1: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - /binary-extensions/2.2.0: - dev: false - engines: - node: '>=8' - optional: true - resolution: - integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== /brace-expansion/1.1.11: dependencies: balanced-match: 1.0.0 concat-map: 0.0.1 resolution: integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - /braces/2.3.2: - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.3 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== /braces/3.0.2: dependencies: fill-range: 7.0.1 + dev: true engines: node: '>=8' resolution: @@ -1758,23 +1608,6 @@ packages: dev: false resolution: integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - /cache-base/1.0.1: - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.0 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== /call-bind/1.0.2: dependencies: function-bind: 1.1.1 @@ -1820,35 +1653,6 @@ packages: node: '>=10' resolution: integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - /chokidar/3.5.1: - dependencies: - anymatch: 3.1.1 - braces: 3.0.2 - glob-parent: 5.1.1 - is-binary-path: 2.1.0 - is-glob: 4.0.1 - normalize-path: 3.0.0 - readdirp: 3.5.0 - dev: false - engines: - node: '>= 8.10.0' - optional: true - optionalDependencies: - fsevents: 2.3.2 - resolution: - integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - /class-utils/0.3.6: - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== /cli/1.0.1: dependencies: exit: 0.1.2 @@ -1871,16 +1675,6 @@ packages: hasBin: true resolution: integrity: sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ== - /collection-visit/1.0.0: - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= /color-convert/1.9.3: dependencies: color-name: 1.1.3 @@ -1914,11 +1708,6 @@ packages: dev: false resolution: integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - /component-emitter/1.3.0: - dev: false - optional: true - resolution: - integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== /concat-map/0.0.1: resolution: integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= @@ -1943,13 +1732,6 @@ packages: safe-buffer: 5.1.2 resolution: integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - /copy-descriptor/0.1.1: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= /core-js-compat/3.9.1: dependencies: browserslist: 4.16.3 @@ -1974,6 +1756,7 @@ packages: resolution: integrity: sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== /core-util-is/1.0.2: + dev: true resolution: integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= /cross-spawn/7.0.3: @@ -2010,6 +1793,7 @@ packages: /debug/2.6.9: dependencies: ms: 2.0.0 + dev: true resolution: integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== /debug/4.3.1: @@ -2024,13 +1808,6 @@ packages: optional: true resolution: integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - /decode-uri-component/0.2.0: - dev: false - engines: - node: '>=0.10' - optional: true - resolution: - integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= /deep-is/0.1.3: dev: true resolution: @@ -2042,34 +1819,6 @@ packages: node: '>= 0.4' resolution: integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - /define-property/0.2.5: - dependencies: - is-descriptor: 0.1.6 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - /define-property/1.0.0: - dependencies: - is-descriptor: 1.0.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - /define-property/2.0.2: - dependencies: - is-descriptor: 1.0.2 - isobject: 3.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== /dir-glob/3.0.1: dependencies: path-type: 4.0.0 @@ -2657,62 +2406,12 @@ packages: node: '>= 0.8.0' resolution: integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - /expand-brackets/2.1.4: - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI= /ext/1.4.0: dependencies: type: 2.1.0 dev: false resolution: integrity: sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - /extend-shallow/2.0.1: - dependencies: - is-extendable: 0.1.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - /extend-shallow/3.0.2: - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - /extglob/2.0.4: - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== /fast-deep-equal/3.1.3: dev: true resolution: @@ -2752,21 +2451,10 @@ packages: node: ^10.12.0 || >=12.0.0 resolution: integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - /fill-range/4.0.0: - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= /fill-range/7.0.1: dependencies: to-regex-range: 5.0.1 + dev: true engines: node: '>=8' resolution: @@ -2810,22 +2498,6 @@ packages: dev: true resolution: integrity: sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== - /for-in/1.0.2: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - /fragment-cache/0.2.1: - dependencies: - map-cache: 0.2.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= /fs-extra/9.1.0: dependencies: at-least-node: 1.0.0 @@ -2837,22 +2509,9 @@ packages: node: '>=10' resolution: integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - /fs-readdir-recursive/1.1.0: - dev: false - resolution: - integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== /fs.realpath/1.0.0: resolution: integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - /fsevents/2.3.2: - dev: false - engines: - node: ^8.16.0 || ^10.6.0 || >=11.0.0 - optional: true - os: - - darwin - resolution: - integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== /function-bind/1.1.1: resolution: integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== @@ -2876,24 +2535,10 @@ packages: has-symbols: 1.0.2 resolution: integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - /get-value/2.0.6: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - /glob-parent/3.1.0: - dependencies: - is-glob: 3.1.0 - path-dirname: 1.0.2 - dev: false - optional: true - resolution: - integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= /glob-parent/5.1.1: dependencies: is-glob: 4.0.1 + dev: true engines: node: '>= 6' resolution: @@ -2997,45 +2642,6 @@ packages: node: '>= 0.4' resolution: integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - /has-value/0.3.1: - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - /has-value/1.0.0: - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - /has-values/0.1.4: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E= - /has-values/1.0.0: - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= /has/1.0.3: dependencies: function-bind: 1.1.1 @@ -3117,24 +2723,6 @@ packages: dev: true resolution: integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - /is-accessor-descriptor/0.1.6: - dependencies: - kind-of: 3.2.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - /is-accessor-descriptor/1.0.0: - dependencies: - kind-of: 6.0.3 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== /is-arrayish/0.2.1: dev: true resolution: @@ -3142,24 +2730,6 @@ packages: /is-bigint/1.0.1: resolution: integrity: sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== - /is-binary-path/1.0.1: - dependencies: - binary-extensions: 1.13.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - /is-binary-path/2.1.0: - dependencies: - binary-extensions: 2.2.0 - dev: false - engines: - node: '>=8' - optional: true - resolution: - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== /is-boolean-object/1.1.0: dependencies: call-bind: 1.0.2 @@ -3167,11 +2737,6 @@ packages: node: '>= 0.4' resolution: integrity: sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== - /is-buffer/1.1.6: - dev: false - optional: true - resolution: - integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== /is-callable/1.2.3: engines: node: '>= 0.4' @@ -3182,68 +2747,13 @@ packages: has: 1.0.3 resolution: integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - /is-data-descriptor/0.1.4: - dependencies: - kind-of: 3.2.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - /is-data-descriptor/1.0.0: - dependencies: - kind-of: 6.0.3 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== /is-date-object/1.0.2: engines: node: '>= 0.4' resolution: integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - /is-descriptor/0.1.6: - dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - /is-descriptor/1.0.2: - dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - /is-extendable/0.1.1: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - /is-extendable/1.0.1: - dependencies: - is-plain-object: 2.0.4 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== /is-extglob/2.1.1: + dev: true engines: node: '>=0.10.0' resolution: @@ -3254,18 +2764,10 @@ packages: node: '>=8' resolution: integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - /is-glob/3.1.0: - dependencies: - is-extglob: 2.1.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= /is-glob/4.0.1: dependencies: is-extglob: 2.1.1 + dev: true engines: node: '>=0.10.0' resolution: @@ -3280,29 +2782,12 @@ packages: node: '>= 0.4' resolution: integrity: sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== - /is-number/3.0.0: - dependencies: - kind-of: 3.2.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= /is-number/7.0.0: + dev: true engines: node: '>=0.12.0' resolution: integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - /is-plain-object/2.0.4: - dependencies: - isobject: 3.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== /is-regex/1.1.2: dependencies: call-bind: 1.0.2 @@ -3323,40 +2808,18 @@ packages: node: '>= 0.4' resolution: integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - /is-windows/1.0.2: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== /isarray/0.0.1: dev: true resolution: integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= /isarray/1.0.0: + dev: true resolution: integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= /isexe/2.0.0: dev: true resolution: integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - /isobject/2.1.0: - dependencies: - isarray: 1.0.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - /isobject/3.0.1: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8= /jquery/2.1.4: dev: false resolution: @@ -3469,38 +2932,6 @@ packages: node: '>=4.0' resolution: integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== - /kind-of/3.2.2: - dependencies: - is-buffer: 1.1.6 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - /kind-of/4.0.0: - dependencies: - is-buffer: 1.1.6 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - /kind-of/5.1.0: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - /kind-of/6.0.3: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== /language-subtag-registry/0.3.21: dev: true resolution: @@ -3583,49 +3014,12 @@ packages: node: '>=6' resolution: integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - /map-cache/0.2.2: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - /map-visit/1.0.0: - dependencies: - object-visit: 1.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= /merge2/1.4.1: dev: true engines: node: '>= 8' resolution: integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - /micromatch/3.1.10: - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 6.0.3 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== /micromatch/4.0.2: dependencies: braces: 3.0.2 @@ -3643,16 +3037,6 @@ packages: /minimist/1.2.5: resolution: integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - /mixin-deep/1.3.2: - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== /mixto/1.0.0: dev: false resolution: @@ -3665,30 +3049,12 @@ packages: resolution: integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== /ms/2.0.0: + dev: true resolution: integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= /ms/2.1.2: resolution: integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - /nanomatch/1.2.13: - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== /natural-compare/1.4.0: dev: true resolution: @@ -3722,39 +3088,12 @@ packages: dev: true resolution: integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - /normalize-path/2.1.1: - dependencies: - remove-trailing-separator: 1.1.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - /normalize-path/3.0.0: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== /object-assign/4.1.1: dev: true engines: node: '>=0.10.0' resolution: integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - /object-copy/0.1.0: - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw= /object-inspect/1.9.0: resolution: integrity: sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== @@ -3763,15 +3102,6 @@ packages: node: '>= 0.4' resolution: integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - /object-visit/1.0.1: - dependencies: - isobject: 3.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= /object.assign/4.1.2: dependencies: call-bind: 1.0.2 @@ -3814,15 +3144,6 @@ packages: node: '>= 0.8' resolution: integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - /object.pick/1.3.0: - dependencies: - isobject: 3.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= /object.values/1.1.3: dependencies: call-bind: 1.0.2 @@ -3918,18 +3239,6 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - /pascalcase/0.1.1: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - /path-dirname/1.0.2: - dev: false - optional: true - resolution: - integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= /path-exists/3.0.0: engines: node: '>=4' @@ -3964,6 +3273,7 @@ packages: resolution: integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== /picomatch/2.2.2: + dev: true engines: node: '>=8.6' resolution: @@ -4004,13 +3314,6 @@ packages: node: '>=6' resolution: integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - /posix-character-classes/0.1.1: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= /prelude-ls/1.2.1: dev: true engines: @@ -4030,11 +3333,6 @@ packages: hasBin: true resolution: integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== - /process-nextick-args/2.0.1: - dev: false - optional: true - resolution: - integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== /progress/2.0.3: dev: true engines: @@ -4098,39 +3396,6 @@ packages: dev: true resolution: integrity: sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - /readable-stream/2.3.7: - dependencies: - core-util-is: 1.0.2 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - optional: true - resolution: - integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - /readdirp/2.2.1: - dependencies: - graceful-fs: 4.2.5 - micromatch: 3.1.10 - readable-stream: 2.3.7 - dev: false - engines: - node: '>=0.10' - optional: true - resolution: - integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - /readdirp/3.5.0: - dependencies: - picomatch: 2.2.2 - dev: false - engines: - node: '>=8.10.0' - optional: true - resolution: - integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== /regenerate-unicode-properties/8.2.0: dependencies: regenerate: 1.4.2 @@ -4156,16 +3421,6 @@ packages: dev: false resolution: integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - /regex-not/1.0.2: - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== /regexp-tree/0.1.23: dev: true hasBin: true @@ -4210,25 +3465,6 @@ packages: hasBin: true resolution: integrity: sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== - /remove-trailing-separator/1.1.0: - dev: false - optional: true - resolution: - integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - /repeat-element/1.1.3: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - /repeat-string/1.6.1: - dev: false - engines: - node: '>=0.10' - optional: true - resolution: - integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc= /require-from-string/2.0.2: dev: true engines: @@ -4241,12 +3477,6 @@ packages: node: '>=4' resolution: integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - /resolve-url/0.2.1: - deprecated: https://github.com/lydell/resolve-url#deprecated - dev: false - optional: true - resolution: - integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= /resolve/1.19.0: dependencies: is-core-module: 2.2.0 @@ -4261,13 +3491,6 @@ packages: dev: true resolution: integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - /ret/0.1.15: - dev: false - engines: - node: '>=0.12' - optional: true - resolution: - integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== /reusify/1.0.4: dev: true engines: @@ -4297,13 +3520,6 @@ packages: /safe-buffer/5.1.2: resolution: integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - /safe-regex/1.1.0: - dependencies: - ret: 0.1.15 - dev: false - optional: true - resolution: - integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4= /semver/5.7.1: hasBin: true resolution: @@ -4326,18 +3542,6 @@ packages: hasBin: true resolution: integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - /set-value/2.0.1: - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== /shebang-command/2.0.0: dependencies: shebang-regex: 3.0.0 @@ -4367,12 +3571,6 @@ packages: dev: true resolution: integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - /slash/2.0.0: - dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== /slash/3.0.0: dev: true engines: @@ -4389,53 +3587,6 @@ packages: node: '>=10' resolution: integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - /snapdragon-node/2.1.1: - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - /snapdragon-util/3.0.1: - dependencies: - kind-of: 3.2.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - /snapdragon/0.8.2: - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: 0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - /source-map-resolve/0.5.3: - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.0 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - dev: false - optional: true - resolution: - integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== /source-map-support/0.5.19: dependencies: buffer-from: 1.1.1 @@ -4443,11 +3594,6 @@ packages: dev: false resolution: integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - /source-map-url/0.4.1: - dev: false - optional: true - resolution: - integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== /source-map/0.5.7: engines: node: '>=0.10.0' @@ -4495,29 +3641,10 @@ packages: dev: true resolution: integrity: sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - /split-string/3.1.0: - dependencies: - extend-shallow: 3.0.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== /sprintf-js/1.0.3: dev: true resolution: integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - /static-extend/0.1.2: - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= /string-width/4.2.0: dependencies: emoji-regex: 8.0.0 @@ -4556,13 +3683,6 @@ packages: dev: true resolution: integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - /string_decoder/1.1.1: - dependencies: - safe-buffer: 5.1.2 - dev: false - optional: true - resolution: - integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== /strip-ansi/3.0.1: dependencies: ansi-regex: 2.1.1 @@ -4653,44 +3773,14 @@ packages: node: '>=4' resolution: integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - /to-object-path/0.3.0: - dependencies: - kind-of: 3.2.2 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - /to-regex-range/2.1.1: - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= /to-regex-range/5.0.1: dependencies: is-number: 7.0.0 + dev: true engines: node: '>=8.0' resolution: integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - /to-regex/3.0.2: - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== /tsconfig-paths/3.9.0: dependencies: '@types/json5': 0.0.29 @@ -4799,65 +3889,18 @@ packages: node: '>=4' resolution: integrity: sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - /union-value/1.0.1: - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== /universalify/2.0.0: dev: false engines: node: '>= 10.0.0' resolution: integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - /unset-value/1.0.0: - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - /upath/1.2.0: - dev: false - engines: - node: '>=4' - optional: true - resolution: - integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== /uri-js/4.4.1: dependencies: punycode: 2.1.1 dev: true resolution: integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - /urix/0.1.0: - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: false - optional: true - resolution: - integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - /use/3.1.1: - dev: false - engines: - node: '>=0.10.0' - optional: true - resolution: - integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - /util-deprecate/1.0.2: - dev: false - optional: true - resolution: - integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= /uuid/8.3.2: dev: false hasBin: true @@ -4940,7 +3983,6 @@ packages: resolution: integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== specifiers: - '@babel/cli': ^7.13.10 '@babel/core': ^7.13.10 '@babel/node': ^7.13.12 '@babel/preset-env': ^7.13.10 From b298ac0cd69f7338cea7c988889a3535448f20b1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 14:45:35 -0500 Subject: [PATCH 375/410] fix: detect literate coffee --- lib/grammars/coffeescript.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/grammars/coffeescript.js b/lib/grammars/coffeescript.js index 299410b4..d5548ddf 100644 --- a/lib/grammars/coffeescript.js +++ b/lib/grammars/coffeescript.js @@ -24,8 +24,10 @@ const rimraf = path.join( ) function coffeeArgs({ filepath }) { - const jsFile = filepath.replace(path.extname(filepath), ".js") - const cmd = `'${coffee}' --compile '${filepath}' && ${babel} ${jsFile} --config-file ${babelConfig}' && ${rimraf} ${jsFile}` + let filePathOutput = filepath + const extension = filepath.substring(filepath.indexOf(".") + 1) + filePathOutput = filePathOutput.replace(extension, "js") + const cmd = `'${coffee}' --compile '${filepath}' && ${babel} ${filePathOutput} --config-file ${babelConfig}' && ${rimraf} ${filePathOutput}` return GrammarUtils.formatArgs(cmd) } @@ -35,10 +37,11 @@ const CoffeeScript = { args(context) { const editor = atom.workspace.getActiveTextEditor() const scopeName = editor ? editor.getGrammar().scopeName : null - const lit = scopeName !== null && scopeName.includes("lit") ? "lit" : "" + const isLiterate = scopeName !== null && scopeName.includes("lit") + const lit = isLiterate ? "lit" : "" const code = context.getCode() const filepath = GrammarUtils.createTempFileWithCode(code, `.${lit}coffee`) - return coffeeArgs({ filepath }) + return coffeeArgs({ filepath, isLiterate }) }, }, "File Based": { command, args: coffeeArgs }, From d851013a79dd0efc2bb42a87cf7a709210c2a784 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 14:52:22 -0500 Subject: [PATCH 376/410] test: js dirname --- spec/fixtures/dirnameTest.js | 2 ++ spec/runner-spec.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 spec/fixtures/dirnameTest.js diff --git a/spec/fixtures/dirnameTest.js b/spec/fixtures/dirnameTest.js new file mode 100644 index 00000000..529b2094 --- /dev/null +++ b/spec/fixtures/dirnameTest.js @@ -0,0 +1,2 @@ +const path = require('path'); +console.log('__dirname', path.resolve(__dirname)); diff --git a/spec/runner-spec.js b/spec/runner-spec.js index aaa1ad4d..bbc38e7a 100644 --- a/spec/runner-spec.js +++ b/spec/runner-spec.js @@ -2,6 +2,7 @@ /* eslint-disable no-invalid-this */ import Runner from "../lib/runner" import ScriptOptions from "../lib/script-options" +import path from "path" describe("Runner", () => { beforeEach(() => { @@ -83,5 +84,19 @@ describe("Runner", () => { runs(() => expect(this.output).toEqual({ message: "stdin terminated\n" })) }) + + it("dirnameTest", () => { + runs(() => { + this.output = null + this.runner.onDidWriteToStdout((output) => { + this.output = output + }) + this.runner.run(this.command, ["./spec/fixtures/dirnameTest.js"], {}, "unused input") + }) + + waitsFor(() => this.output !== null, "File should execute", 2000) + + runs(() => expect(this.output).toEqual({ message: `__dirname ${path.resolve("./spec/fixtures")}\n` })) + }) }) }) From 2d355d9255f230255f5d9a22f6cdd3454e28a916 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 22 Mar 2021 14:53:21 -0500 Subject: [PATCH 377/410] test: js folder with space --- spec/fixtures/folder with space/test.js | 1 + spec/runner-spec.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 spec/fixtures/folder with space/test.js diff --git a/spec/fixtures/folder with space/test.js b/spec/fixtures/folder with space/test.js new file mode 100644 index 00000000..1750218b --- /dev/null +++ b/spec/fixtures/folder with space/test.js @@ -0,0 +1 @@ +console.log("works") diff --git a/spec/runner-spec.js b/spec/runner-spec.js index bbc38e7a..335ba301 100644 --- a/spec/runner-spec.js +++ b/spec/runner-spec.js @@ -98,5 +98,19 @@ describe("Runner", () => { runs(() => expect(this.output).toEqual({ message: `__dirname ${path.resolve("./spec/fixtures")}\n` })) }) + + it("folder with space", () => { + runs(() => { + this.output = null + this.runner.onDidWriteToStdout((output) => { + this.output = output + }) + this.runner.run(this.command, ["./spec/fixtures/folder with space/test.js"], {}, "unused input") + }) + + waitsFor(() => this.output !== null, "File should execute", 2000) + + runs(() => expect(this.output).toEqual({ message: `works\n` })) + }) }) }) From 8df284da0435e5d8f5dad2bb76cf682fc346338c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 23 Mar 2021 07:40:17 -0500 Subject: [PATCH 378/410] chore: update devDependencies --- package.json | 2 +- pnpm-lock.yaml | 97 +++++++++++++++++++++++--------------------------- 2 files changed, 46 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 6b5ab8d3..23c6adb5 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "@babel/core": "^7.13.10", "@babel/node": "^7.13.12", - "@babel/preset-env": "^7.13.10", + "@babel/preset-env": "^7.13.12", "@babel/preset-react": "^7.12.13", "ansi-to-html": "^0.6.14", "atom-message-panel": "1.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4979273d..fdcea0d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,7 @@ dependencies: '@babel/core': 7.13.10 '@babel/node': 7.13.12_@babel+core@7.13.10 - '@babel/preset-env': 7.13.10_@babel+core@7.13.10 + '@babel/preset-env': 7.13.12_@babel+core@7.13.10 '@babel/preset-react': 7.12.13_@babel+core@7.13.10 ansi-to-html: 0.6.14 atom-message-panel: 1.3.1 @@ -41,6 +41,10 @@ packages: /@babel/compat-data/7.13.11: resolution: integrity: sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== + /@babel/compat-data/7.13.12: + dev: false + resolution: + integrity: sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== /@babel/core/7.13.10: dependencies: '@babel/code-frame': 7.12.13 @@ -79,7 +83,7 @@ packages: /@babel/helper-builder-binary-assignment-operator-visitor/7.12.13: dependencies: '@babel/helper-explode-assignable-expression': 7.12.13 - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 dev: false resolution: integrity: sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== @@ -126,7 +130,7 @@ packages: '@babel/traverse': 7.13.0 debug: 4.3.1 lodash.debounce: 4.0.8 - resolve: 1.19.0 + resolve: 1.20.0 semver: 6.3.0 dev: false peerDependencies: @@ -135,7 +139,7 @@ packages: integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== /@babel/helper-explode-assignable-expression/7.12.13: dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 dev: false resolution: integrity: sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== @@ -154,16 +158,10 @@ packages: /@babel/helper-hoist-variables/7.13.0: dependencies: '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 dev: false resolution: integrity: sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== - /@babel/helper-member-expression-to-functions/7.12.13: - dependencies: - '@babel/types': 7.13.0 - dev: false - resolution: - integrity: sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ== /@babel/helper-member-expression-to-functions/7.13.0: dependencies: '@babel/types': 7.13.0 @@ -189,7 +187,7 @@ packages: integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== /@babel/helper-optimise-call-expression/7.12.13: dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 resolution: integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== /@babel/helper-plugin-utils/7.12.13: @@ -204,19 +202,10 @@ packages: dependencies: '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-wrap-function': 7.13.0 - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 dev: false resolution: integrity: sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== - /@babel/helper-replace-supers/7.12.13: - dependencies: - '@babel/helper-member-expression-to-functions': 7.12.13 - '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 - dev: false - resolution: - integrity: sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== /@babel/helper-replace-supers/7.13.0: dependencies: '@babel/helper-member-expression-to-functions': 7.13.0 @@ -232,7 +221,7 @@ packages: integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== /@babel/helper-skip-transparent-expression-wrappers/7.12.1: dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 dev: false resolution: integrity: sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== @@ -252,7 +241,7 @@ packages: '@babel/helper-function-name': 7.12.13 '@babel/template': 7.12.13 '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 dev: false resolution: integrity: sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== @@ -291,6 +280,17 @@ packages: hasBin: true resolution: integrity: sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.13.12_@babel+core@7.13.10: + dependencies: + '@babel/core': 7.13.10 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 + '@babel/plugin-proposal-optional-chaining': 7.13.12_@babel+core@7.13.10 + dev: false + peerDependencies: + '@babel/core': ^7.13.0 + resolution: + integrity: sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== /@babel/plugin-proposal-async-generator-functions/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 @@ -374,7 +374,7 @@ packages: integrity: sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== /@babel/plugin-proposal-object-rest-spread/7.13.8_@babel+core@7.13.10: dependencies: - '@babel/compat-data': 7.13.11 + '@babel/compat-data': 7.13.12 '@babel/core': 7.13.10 '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 '@babel/helper-plugin-utils': 7.13.0 @@ -395,7 +395,7 @@ packages: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== - /@babel/plugin-proposal-optional-chaining/7.13.8_@babel+core@7.13.10: + /@babel/plugin-proposal-optional-chaining/7.13.12_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 @@ -405,7 +405,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== + integrity: sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== /@babel/plugin-proposal-private-methods/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 @@ -750,7 +750,7 @@ packages: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-replace-supers': 7.13.0 dev: false peerDependencies: '@babel/core': ^7.0.0-0 @@ -898,13 +898,14 @@ packages: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - /@babel/preset-env/7.13.10_@babel+core@7.13.10: + /@babel/preset-env/7.13.12_@babel+core@7.13.10: dependencies: - '@babel/compat-data': 7.13.11 + '@babel/compat-data': 7.13.12 '@babel/core': 7.13.10 '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-validator-option': 7.12.17 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.13.12_@babel+core@7.13.10 '@babel/plugin-proposal-async-generator-functions': 7.13.8_@babel+core@7.13.10 '@babel/plugin-proposal-class-properties': 7.13.0_@babel+core@7.13.10 '@babel/plugin-proposal-dynamic-import': 7.13.8_@babel+core@7.13.10 @@ -915,7 +916,7 @@ packages: '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.13.10 '@babel/plugin-proposal-object-rest-spread': 7.13.8_@babel+core@7.13.10 '@babel/plugin-proposal-optional-catch-binding': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-optional-chaining': 7.13.8_@babel+core@7.13.10 + '@babel/plugin-proposal-optional-chaining': 7.13.12_@babel+core@7.13.10 '@babel/plugin-proposal-private-methods': 7.13.0_@babel+core@7.13.10 '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.13.10 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.10 @@ -963,7 +964,7 @@ packages: '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.13.10 '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.13.10 '@babel/preset-modules': 0.1.4_@babel+core@7.13.10 - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 babel-plugin-polyfill-corejs2: 0.1.10_@babel+core@7.13.10 babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.13.10 babel-plugin-polyfill-regenerator: 0.1.6_@babel+core@7.13.10 @@ -973,14 +974,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ== + integrity: sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA== /@babel/preset-modules/0.1.4_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.13.10 '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.13.10 - '@babel/types': 7.13.0 + '@babel/types': 7.13.12 esutils: 2.0.3 dev: false peerDependencies: @@ -1020,16 +1021,9 @@ packages: dev: true resolution: integrity: sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg== - /@babel/runtime/7.12.13: - dependencies: - regenerator-runtime: 0.13.7 - dev: false - resolution: - integrity: sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== /@babel/runtime/7.13.10: dependencies: regenerator-runtime: 0.13.7 - dev: true resolution: integrity: sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== /@babel/template/7.12.13: @@ -1066,6 +1060,13 @@ packages: to-fast-properties: 2.0.0 resolution: integrity: sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== + /@babel/types/7.13.12: + dependencies: + '@babel/helper-validator-identifier': 7.12.11 + lodash: 4.17.21 + to-fast-properties: 2.0.0 + resolution: + integrity: sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA== /@eslint/eslintrc/0.4.0: dependencies: ajv: 6.12.6 @@ -1505,7 +1506,7 @@ packages: integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== /babel-plugin-polyfill-corejs2/0.1.10_@babel+core@7.13.10: dependencies: - '@babel/compat-data': 7.13.11 + '@babel/compat-data': 7.13.12 '@babel/core': 7.13.10 '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 semver: 6.3.0 @@ -3417,7 +3418,7 @@ packages: integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== /regenerator-transform/0.14.5: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.10 dev: false resolution: integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== @@ -3477,18 +3478,10 @@ packages: node: '>=4' resolution: integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - /resolve/1.19.0: - dependencies: - is-core-module: 2.2.0 - path-parse: 1.0.6 - dev: false - resolution: - integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== /resolve/1.20.0: dependencies: is-core-module: 2.2.0 path-parse: 1.0.6 - dev: true resolution: integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== /reusify/1.0.4: @@ -3985,7 +3978,7 @@ packages: specifiers: '@babel/core': ^7.13.10 '@babel/node': ^7.13.12 - '@babel/preset-env': ^7.13.10 + '@babel/preset-env': ^7.13.12 '@babel/preset-react': ^7.12.13 '@types/atom': ^1.40.10 '@types/jasmine': ^3.6.7 From 4fbc379de261517e850bfdc97f1df6c6546781e0 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 23 Mar 2021 07:44:19 -0500 Subject: [PATCH 379/410] chore: format --- spec/fixtures/dirnameTest.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/fixtures/dirnameTest.js b/spec/fixtures/dirnameTest.js index 529b2094..aab604ee 100644 --- a/spec/fixtures/dirnameTest.js +++ b/spec/fixtures/dirnameTest.js @@ -1,2 +1,2 @@ -const path = require('path'); -console.log('__dirname', path.resolve(__dirname)); +const path = require("path") +console.log("__dirname", path.resolve(__dirname)) From 4abfc1aa540835e5d0830a0fb4d37dd816ab2c8d Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 23 Mar 2021 12:51:37 +0000 Subject: [PATCH 380/410] chore(release): 3.31.1 [skip ci] --- CHANGELOG.md | 22 ++++++++++++++++++++++ package.json | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41b9f2ae..0081bcd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +## [3.31.1](https://github.com/atom-ide-community/atom-script/compare/v3.31.0...v3.31.1) (2021-03-23) + + +### Bug Fixes + +* createTempFolder ([b96d7f5](https://github.com/atom-ide-community/atom-script/commit/b96d7f5632c2c17579428811309b078072dfad20)) +* detect literate coffee ([b298ac0](https://github.com/atom-ide-community/atom-script/commit/b298ac0cd69f7338cea7c988889a3535448f20b1)) +* fix eslint errors in KotlinArgs ([34b592a](https://github.com/atom-ide-community/atom-script/commit/34b592a4d2ce41b9c69a9f3aa1a7841b28457848)) +* make sure temp directory exists ([256b8bb](https://github.com/atom-ide-community/atom-script/commit/256b8bb2501366a6fab34e7ba630854af9098df2)) +* simplify workingDirectory ([f35783c](https://github.com/atom-ide-community/atom-script/commit/f35783cb3f4f04aafd33178148fca1690387c718)) +* use babel-node for CoffeeScript ([3466e03](https://github.com/atom-ide-community/atom-script/commit/3466e03248643e3bbb4c57dc80e9e9d9dab34e51)) +* use babel-node for JavaScript ([8581f8e](https://github.com/atom-ide-community/atom-script/commit/8581f8ef63cf385bbccde3b25fff6a5a031e8999)) +* use createTempFolder in Kotlin ([5516681](https://github.com/atom-ide-community/atom-script/commit/5516681d8470f1bffa161ac9c47e3dce9bf029a5)) +* use createTempPath for Asm ([82f708a](https://github.com/atom-ide-community/atom-script/commit/82f708a632022071e0a9ea4426a9365a3b881b4a)) +* use createTempPath for Rust ([bb74d13](https://github.com/atom-ide-community/atom-script/commit/bb74d13010f260509ca6a5ef345b9bcd12ade23c)) +* use createTempPath in C grammar ([49d62d3](https://github.com/atom-ide-community/atom-script/commit/49d62d36c5a68260715b4aa08d1b5a45293c12ab)) +* use createTempPath in Cpp grammar ([6db2dfa](https://github.com/atom-ide-community/atom-script/commit/6db2dfa5089d02ec62f1dd18a434598776536bbf)) +* use createTempPath in fortran grammar ([5b10e3b](https://github.com/atom-ide-community/atom-script/commit/5b10e3b6c12b56abe6c86b194c6710d8463daef3)) +* use createTempPath in Obj-c and Obj-cpp grammar ([c61bb75](https://github.com/atom-ide-community/atom-script/commit/c61bb75220110925aeaea5d2c34d44901952a09a)) +* use rimraf for deleting the temp folder ([00cd789](https://github.com/atom-ide-community/atom-script/commit/00cd789e629ae0556f8912750bec04c6baeb6f38)) +* use temp in grammar-utils ([ccea0bf](https://github.com/atom-ide-community/atom-script/commit/ccea0bf375a4861d0fa90b669414d1177d0146ce)) + # [3.31.0](https://github.com/atom-ide-community/atom-script/compare/v3.30.0...v3.31.0) (2021-03-22) diff --git a/package.json b/package.json index 23c6adb5..5b201438 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.31.0", + "version": "3.31.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From c5f4217e4b4cf0de2d2b17eedbe80cd03a18928e Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Wed, 31 Mar 2021 17:41:21 -0500 Subject: [PATCH 381/410] chore: readme update (#2441) Co-authored-by: hollossy <35842457+hollossy@users.noreply.github.com> Co-authored-by: Amin Yahyaabadi Co-authored-by: fintzd <35842457+fintzd@users.noreply.github.com> --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 24885a48..d3032da0 100644 --- a/README.md +++ b/README.md @@ -332,9 +332,9 @@ Make sure to run `atom` from the command line to get full access to your environ Also, in this dialog you can save options as a profile for future use. For example, you can add two profiles, one for `python2.7` and another for `python3` and run scripts with a specified profile, which will be more convinient than entering options every time you want to switch python versions. -If you want to use Python3 by default, you can open Atom Settings, `Atom→Preferences→Open Config Folder`, and open`.atom/packages/script/lib/grammars/python.coffee`, Changing `python` to `python3` under `'Selection Based'` and `'File Based'`, saving it. +**Change Default Language** by opening Atom Settings as follows: `Atom→Preferences→Open Config Folder`. Then, you can use the tree-view to navigate to and open `packages→script→lib→grammar→python.js` to make your edits. It is also possible to directly edit the code under `.atom/packages/script/lib/grammars/python.js` -**Script: Run with profile** allows you to run scripts with saved profiles. Profiles can be added in **Script: Run Options** dialog. +**Script: Run With Profile** allows you to run scripts with saved profiles. Profiles can be added in **Script: Run Options** dialog. **Script: Kill Process** will kill the process but leaves the pane open. From e79f25ca0cc15abff4027c66b48408e39a5806e5 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Wed, 28 Apr 2021 14:09:50 -0500 Subject: [PATCH 382/410] ci: fix lint job --- .github/workflows/CI.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index cc506cbf..ddbc5a88 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -43,20 +43,15 @@ jobs: - name: Commit lint ✨ uses: wagoid/commitlint-github-action@v2 - - uses: UziTech/action-setup-atom@v1 - - name: Setup PNPM - uses: pnpm/action-setup@v1.2.1 - with: - version: latest - - name: Install dependencies - run: pnpm install + run: npm install - name: Format ✨ - run: pnpm test.format + run: npm run test.format - name: Lint ✨ - run: pnpm test.lint + run: npm run test.lint + Release: needs: [Test, Lint] From 9b73b1edb12ad20451d3eb24cfe5492791f5f0f4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Wed, 28 Apr 2021 14:22:42 -0500 Subject: [PATCH 383/410] chore: format --- .github/workflows/CI.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ddbc5a88..7529bed3 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -52,7 +52,6 @@ jobs: - name: Lint ✨ run: npm run test.lint - Release: needs: [Test, Lint] if: github.ref == 'refs/heads/master' && From 369f341fb1b77d428a66fa41934d9ddf1559a7f6 Mon Sep 17 00:00:00 2001 From: "atom-ide-community-robot[bot]" <73157485+atom-ide-community-robot[bot]@users.noreply.github.com> Date: Sun, 2 May 2021 03:52:17 -0500 Subject: [PATCH 384/410] chore: update devDependencies (#2435) Co-authored-by: aminya Co-authored-by: Amin Yahyaabadi --- lib/code-context-builder.js | 4 +- lib/command-context.js | 2 +- lib/grammar-utils.js | 2 +- package.json | 14 +- pnpm-lock.yaml | 3507 ++++++++++++++++++----------------- 5 files changed, 1774 insertions(+), 1755 deletions(-) diff --git a/lib/code-context-builder.js b/lib/code-context-builder.js index ba4d14a9..320be963 100644 --- a/lib/code-context-builder.js +++ b/lib/code-context-builder.js @@ -81,11 +81,11 @@ export default class CodeContextBuilder { return codeContext } // eslint-disable-next-line class-methods-use-this - /** @deprecated use {getShebang} function */ getShebang(arg) { + /** @deprecated Use {getShebang} function */ getShebang(arg) { return getShebang(arg) } // eslint-disable-next-line class-methods-use-this - /** @deprecated use {getLang} function */ getLang(arg) { + /** @deprecated Use {getLang} function */ getLang(arg) { return getLang(arg) } diff --git a/lib/command-context.js b/lib/command-context.js index 288e7ab7..5a6f750e 100644 --- a/lib/command-context.js +++ b/lib/command-context.js @@ -48,7 +48,7 @@ export default class CommandContext { return commandContext } // eslint-disable-next-line class-methods-use-this - /** @deprecated use {quoteArguments} function */ + /** @deprecated Use {quoteArguments} function */ /* eslint-disable-next-line class-methods-use-this */ quoteArguments(args) { return quoteArguments(args) diff --git a/lib/grammar-utils.js b/lib/grammar-utils.js index 4b1149a5..ed582566 100644 --- a/lib/grammar-utils.js +++ b/lib/grammar-utils.js @@ -71,7 +71,7 @@ const GrammarUtils = { return ["-c", command] }, - /** get workingDirectory */ + /** Get workingDirectory */ workingDirectory() { const textEditor = atom.workspace.getActiveTextEditor() if (textEditor !== undefined) { diff --git a/package.json b/package.json index 5b201438..9130a2c7 100644 --- a/package.json +++ b/package.json @@ -37,16 +37,16 @@ }, "devDependencies": { "@types/atom": "^1.40.10", - "@types/jasmine": "^3.6.7", - "@types/node": "^14.14.35", + "@types/jasmine": "^3.6.10", + "@types/node": "^15.0.1", "@types/rimraf": "^3.0.0", - "@types/temp": "^0.8.34", - "@types/underscore": "^1.11.0", + "@types/temp": "^0.9.0", + "@types/underscore": "^1.11.2", "@types/uuid": "^8.3.0", - "eslint": "^7.22.0", - "eslint-config-atomic": "^1.12.4", + "eslint": "^7.25.0", + "eslint-config-atomic": "^1.14.3", "prettier": "^2.2.1", - "prettier-config-atomic": "^1.0.1" + "prettier-config-atomic": "^2.0.3" }, "activationCommands": { "atom-text-editor": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fdcea0d5..b0043cba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,3 +1,31 @@ +lockfileVersion: 5.3 + +specifiers: + '@babel/core': ^7.13.10 + '@babel/node': ^7.13.12 + '@babel/preset-env': ^7.13.12 + '@babel/preset-react': ^7.12.13 + '@types/atom': ^1.40.10 + '@types/jasmine': ^3.6.10 + '@types/node': ^15.0.1 + '@types/rimraf': ^3.0.0 + '@types/temp': ^0.9.0 + '@types/underscore': ^1.11.2 + '@types/uuid': ^8.3.0 + ansi-to-html: ^0.6.14 + atom-message-panel: 1.3.1 + atom-space-pen-views-plus: ^3.0.4 + coffeescript: ^2 + eslint: ^7.25.0 + eslint-config-atomic: ^1.14.3 + prettier: ^2.2.1 + prettier-config-atomic: ^2.0.3 + rimraf: ^3.0.2 + strip-ansi: ^6.0.0 + temp: ^0.9.4 + underscore: ^1.12.1 + uuid: ^8.3.2 + dependencies: '@babel/core': 7.13.10 '@babel/node': 7.13.12_@babel+core@7.13.10 @@ -11,41 +39,46 @@ dependencies: temp: 0.9.4 underscore: 1.12.1 uuid: 8.3.2 + +optionalDependencies: + coffeescript: 2.5.1 + devDependencies: '@types/atom': 1.40.10 - '@types/jasmine': 3.6.7 - '@types/node': 14.14.35 + '@types/jasmine': 3.6.10 + '@types/node': 15.0.1 '@types/rimraf': 3.0.0 - '@types/temp': 0.8.34 - '@types/underscore': 1.11.0 + '@types/temp': 0.9.0 + '@types/underscore': 1.11.2 '@types/uuid': 8.3.0 - eslint: 7.22.0 - eslint-config-atomic: 1.12.4_eslint@7.22.0 + eslint: 7.25.0 + eslint-config-atomic: 1.14.3 prettier: 2.2.1 - prettier-config-atomic: 1.0.1 -lockfileVersion: 5.2 -optionalDependencies: - coffeescript: 2.5.1 + prettier-config-atomic: 2.0.3 + packages: + /@babel/code-frame/7.12.11: + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: '@babel/highlight': 7.12.13 dev: true - resolution: - integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + /@babel/code-frame/7.12.13: + resolution: {integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==} dependencies: '@babel/highlight': 7.12.13 - resolution: - integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + /@babel/compat-data/7.13.11: - resolution: - integrity: sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== + resolution: {integrity: sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==} + /@babel/compat-data/7.13.12: + resolution: {integrity: sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==} dev: false - resolution: - integrity: sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== + /@babel/core/7.13.10: + resolution: {integrity: sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.12.13 '@babel/generator': 7.13.9 @@ -63,42 +96,58 @@ packages: lodash: 4.17.20 semver: 6.3.0 source-map: 0.5.7 - engines: - node: '>=6.9.0' - resolution: - integrity: sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== + transitivePeerDependencies: + - supports-color + + /@babel/eslint-parser/7.13.14_1a3bc1182d5c5133083fda04736a15b5: + resolution: {integrity: sha512-I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: '>=7.5.0' + dependencies: + '@babel/core': 7.13.10 + eslint: 7.25.0 + eslint-scope: 5.1.1 + eslint-visitor-keys: 1.3.0 + semver: 6.3.0 + dev: true + /@babel/generator/7.13.9: + resolution: {integrity: sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==} dependencies: '@babel/types': 7.13.0 jsesc: 2.5.2 source-map: 0.5.7 - resolution: - integrity: sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== + /@babel/helper-annotate-as-pure/7.12.13: + resolution: {integrity: sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==} dependencies: '@babel/types': 7.13.0 dev: false - resolution: - integrity: sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== + /@babel/helper-builder-binary-assignment-operator-visitor/7.12.13: + resolution: {integrity: sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==} dependencies: '@babel/helper-explode-assignable-expression': 7.12.13 '@babel/types': 7.13.12 dev: false - resolution: - integrity: sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== + /@babel/helper-compilation-targets/7.13.10_@babel+core@7.13.10: + resolution: {integrity: sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.13.11 '@babel/core': 7.13.10 '@babel/helper-validator-option': 7.12.17 browserslist: 4.16.3 semver: 6.3.0 + + /@babel/helper-create-class-features-plugin/7.13.11_@babel+core@7.13.10: + resolution: {integrity: sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==} peerDependencies: '@babel/core': ^7.0.0 - resolution: - integrity: sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== - /@babel/helper-create-class-features-plugin/7.13.11_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-function-name': 7.12.13 @@ -106,22 +155,24 @@ packages: '@babel/helper-optimise-call-expression': 7.12.13 '@babel/helper-replace-supers': 7.13.0 '@babel/helper-split-export-declaration': 7.12.13 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/helper-create-regexp-features-plugin/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw==} peerDependencies: '@babel/core': ^7.0.0 - resolution: - integrity: sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== - /@babel/helper-create-regexp-features-plugin/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 regexpu-core: 4.7.1 dev: false - peerDependencies: - '@babel/core': ^7.0.0 - resolution: - integrity: sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw== + /@babel/helper-define-polyfill-provider/0.1.5_@babel+core@7.13.10: + resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==} + peerDependencies: + '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.13.10 '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 @@ -132,47 +183,49 @@ packages: lodash.debounce: 4.0.8 resolve: 1.20.0 semver: 6.3.0 + transitivePeerDependencies: + - supports-color dev: false - peerDependencies: - '@babel/core': ^7.4.0-0 - resolution: - integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== + /@babel/helper-explode-assignable-expression/7.12.13: + resolution: {integrity: sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==} dependencies: '@babel/types': 7.13.12 dev: false - resolution: - integrity: sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== + /@babel/helper-function-name/7.12.13: + resolution: {integrity: sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==} dependencies: '@babel/helper-get-function-arity': 7.12.13 '@babel/template': 7.12.13 '@babel/types': 7.12.13 - resolution: - integrity: sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + /@babel/helper-get-function-arity/7.12.13: + resolution: {integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==} dependencies: '@babel/types': 7.12.13 - resolution: - integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + /@babel/helper-hoist-variables/7.13.0: + resolution: {integrity: sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==} dependencies: '@babel/traverse': 7.13.0 '@babel/types': 7.13.12 + transitivePeerDependencies: + - supports-color dev: false - resolution: - integrity: sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + /@babel/helper-member-expression-to-functions/7.13.0: + resolution: {integrity: sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==} dependencies: '@babel/types': 7.13.0 - resolution: - integrity: sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== + /@babel/helper-module-imports/7.12.13: + resolution: {integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==} dependencies: '@babel/types': 7.13.0 - resolution: - integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== + /@babel/helper-module-transforms/7.13.0: + resolution: {integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==} dependencies: '@babel/helper-module-imports': 7.12.13 '@babel/helper-replace-supers': 7.13.0 @@ -183,83 +236,96 @@ packages: '@babel/traverse': 7.13.0 '@babel/types': 7.13.0 lodash: 4.17.20 - resolution: - integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== + transitivePeerDependencies: + - supports-color + /@babel/helper-optimise-call-expression/7.12.13: + resolution: {integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==} dependencies: '@babel/types': 7.13.12 - resolution: - integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + /@babel/helper-plugin-utils/7.12.13: + resolution: {integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==} dev: false - resolution: - integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== + /@babel/helper-plugin-utils/7.13.0: + resolution: {integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==} dev: false - resolution: - integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + /@babel/helper-remap-async-to-generator/7.13.0: + resolution: {integrity: sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==} dependencies: '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-wrap-function': 7.13.0 '@babel/types': 7.13.12 + transitivePeerDependencies: + - supports-color dev: false - resolution: - integrity: sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== + /@babel/helper-replace-supers/7.13.0: + resolution: {integrity: sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==} dependencies: '@babel/helper-member-expression-to-functions': 7.13.0 '@babel/helper-optimise-call-expression': 7.12.13 '@babel/traverse': 7.13.0 '@babel/types': 7.13.0 - resolution: - integrity: sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== + transitivePeerDependencies: + - supports-color + /@babel/helper-simple-access/7.12.13: + resolution: {integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==} dependencies: '@babel/types': 7.13.0 - resolution: - integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== + /@babel/helper-skip-transparent-expression-wrappers/7.12.1: + resolution: {integrity: sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==} dependencies: '@babel/types': 7.13.12 dev: false - resolution: - integrity: sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + /@babel/helper-split-export-declaration/7.12.13: + resolution: {integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==} dependencies: '@babel/types': 7.12.13 - resolution: - integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + /@babel/helper-validator-identifier/7.12.11: - resolution: - integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + resolution: {integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==} + /@babel/helper-validator-option/7.12.17: - resolution: - integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + resolution: {integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==} + /@babel/helper-wrap-function/7.13.0: + resolution: {integrity: sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==} dependencies: '@babel/helper-function-name': 7.12.13 '@babel/template': 7.12.13 '@babel/traverse': 7.13.0 '@babel/types': 7.13.12 + transitivePeerDependencies: + - supports-color dev: false - resolution: - integrity: sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + /@babel/helpers/7.13.10: + resolution: {integrity: sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==} dependencies: '@babel/template': 7.12.13 '@babel/traverse': 7.13.0 '@babel/types': 7.13.0 - resolution: - integrity: sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== + transitivePeerDependencies: + - supports-color + /@babel/highlight/7.12.13: + resolution: {integrity: sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==} dependencies: '@babel/helper-validator-identifier': 7.12.11 chalk: 2.4.2 js-tokens: 4.0.0 - resolution: - integrity: sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + /@babel/node/7.13.12_@babel+core@7.13.10: + resolution: {integrity: sha512-5+7atyeHEXNz795xEquNRNBXTb9a1Kr6nrvnKWhG0d8Q9BseNCj9dacqSSCN1fI/JUpkRZQBfsmUBR2NX98s1g==} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.13.10 '@babel/register': 7.13.8_@babel+core@7.13.10 @@ -269,110 +335,112 @@ packages: regenerator-runtime: 0.13.7 v8flags: 3.2.0 dev: false - hasBin: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-5+7atyeHEXNz795xEquNRNBXTb9a1Kr6nrvnKWhG0d8Q9BseNCj9dacqSSCN1fI/JUpkRZQBfsmUBR2NX98s1g== + /@babel/parser/7.13.11: - engines: - node: '>=6.0.0' + resolution: {integrity: sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==} + engines: {node: '>=6.0.0'} hasBin: true - resolution: - integrity: sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.13.12_@babel+core@7.13.10: + resolution: {integrity: sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==} + peerDependencies: + '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 '@babel/plugin-proposal-optional-chaining': 7.13.12_@babel+core@7.13.10 dev: false - peerDependencies: - '@babel/core': ^7.13.0 - resolution: - integrity: sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== + /@babel/plugin-proposal-async-generator-functions/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-remap-async-to-generator': 7.13.0 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.10 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-proposal-class-properties/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== - /@babel/plugin-proposal-class-properties/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.13.10 '@babel/helper-plugin-utils': 7.13.0 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-proposal-dynamic-import/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== - /@babel/plugin-proposal-dynamic-import/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== - /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-json-strings/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== - /@babel/plugin-proposal-json-strings/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-logical-assignment-operators/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== - /@babel/plugin-proposal-logical-assignment-operators/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-nullish-coalescing-operator/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== - /@babel/plugin-proposal-nullish-coalescing-operator/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== - /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-object-rest-spread/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== - /@babel/plugin-proposal-object-rest-spread/7.13.8_@babel+core@7.13.10: dependencies: '@babel/compat-data': 7.13.12 '@babel/core': 7.13.10 @@ -381,209 +449,212 @@ packages: '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.10 '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-optional-catch-binding/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== - /@babel/plugin-proposal-optional-catch-binding/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-optional-chaining/7.13.12_@babel+core@7.13.10: + resolution: {integrity: sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== - /@babel/plugin-proposal-optional-chaining/7.13.12_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.10 dev: false + + /@babel/plugin-proposal-private-methods/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== - /@babel/plugin-proposal-private-methods/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.13.10 '@babel/helper-plugin-utils': 7.13.0 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==} + engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== - /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false - engines: - node: '>=4' + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.13.10: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.13.10: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.13.10: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.13.10: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.13.10: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.13.10: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.13.10: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.13.10: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.13.10: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.13.10: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-arrow-functions/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - /@babel/plugin-transform-arrow-functions/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-async-to-generator/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== - /@babel/plugin-transform-async-to-generator/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-module-imports': 7.12.13 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-remap-async-to-generator': 7.13.0 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== - /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-block-scoping/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== - /@babel/plugin-transform-block-scoping/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-classes/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== - /@babel/plugin-transform-classes/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 @@ -593,119 +664,125 @@ packages: '@babel/helper-replace-supers': 7.13.0 '@babel/helper-split-export-declaration': 7.12.13 globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-transform-computed-properties/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== - /@babel/plugin-transform-computed-properties/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-destructuring/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== - /@babel/plugin-transform-destructuring/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== - /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== - /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-exponentiation-operator/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== - /@babel/plugin-transform-exponentiation-operator/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-builder-binary-assignment-operator-visitor': 7.12.13 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-for-of/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== - /@babel/plugin-transform-for-of/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== - /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-function-name': 7.12.13 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-literals/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== - /@babel/plugin-transform-literals/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== - /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-modules-amd/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - /@babel/plugin-transform-modules-amd/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-module-transforms': 7.13.0 '@babel/helper-plugin-utils': 7.13.0 babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-transform-modules-commonjs/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== - /@babel/plugin-transform-modules-commonjs/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-module-transforms': 7.13.0 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-simple-access': 7.12.13 babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-transform-modules-systemjs/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== - /@babel/plugin-transform-modules-systemjs/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-hoist-variables': 7.13.0 @@ -713,86 +790,92 @@ packages: '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-validator-identifier': 7.12.11 babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-transform-modules-umd/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== - /@babel/plugin-transform-modules-umd/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-module-transforms': 7.13.0 '@babel/helper-plugin-utils': 7.13.0 + transitivePeerDependencies: + - supports-color dev: false - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== + /@babel/plugin-transform-named-capturing-groups-regex/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.13.10 '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 dev: false - peerDependencies: - '@babel/core': ^7.0.0 - resolution: - integrity: sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== + /@babel/plugin-transform-new-target/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== - /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-replace-supers': 7.13.0 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/plugin-transform-parameters/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - /@babel/plugin-transform-parameters/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== - /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== - /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.12.13 dev: false + + /@babel/plugin-transform-react-jsx-development/7.12.12_@babel+core@7.13.10: + resolution: {integrity: sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== - /@babel/plugin-transform-react-jsx-development/7.12.12_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.13.10 dev: false + + /@babel/plugin-transform-react-jsx/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== - /@babel/plugin-transform-react-jsx/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 @@ -801,104 +884,104 @@ packages: '@babel/plugin-syntax-jsx': 7.12.13_@babel+core@7.13.10 '@babel/types': 7.13.0 dev: false + + /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.13.10: + resolution: {integrity: sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA== - /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-plugin-utils': 7.12.13 dev: false + + /@babel/plugin-transform-regenerator/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== - /@babel/plugin-transform-regenerator/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 regenerator-transform: 0.14.5 dev: false + + /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== - /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== - /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-spread/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - /@babel/plugin-transform-spread/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 dev: false + + /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-template-literals/7.13.0_@babel+core@7.13.10: + resolution: {integrity: sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - /@babel/plugin-transform-template-literals/7.13.0_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 '@babel/helper-plugin-utils': 7.13.0 dev: false + + /@babel/preset-env/7.13.12_@babel+core@7.13.10: + resolution: {integrity: sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - /@babel/preset-env/7.13.12_@babel+core@7.13.10: dependencies: '@babel/compat-data': 7.13.12 '@babel/core': 7.13.10 @@ -970,12 +1053,14 @@ packages: babel-plugin-polyfill-regenerator: 0.1.6_@babel+core@7.13.10 core-js-compat: 3.9.1 semver: 6.3.0 + transitivePeerDependencies: + - supports-color dev: false + + /@babel/preset-modules/0.1.4_@babel+core@7.13.10: + resolution: {integrity: sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA== - /@babel/preset-modules/0.1.4_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.13.0 @@ -984,11 +1069,11 @@ packages: '@babel/types': 7.13.12 esutils: 2.0.3 dev: false + + /@babel/preset-react/7.12.13_@babel+core@7.13.10: + resolution: {integrity: sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - /@babel/preset-react/7.12.13_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-plugin-utils': 7.12.13 @@ -997,11 +1082,11 @@ packages: '@babel/plugin-transform-react-jsx-development': 7.12.12_@babel+core@7.13.10 '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.13.10 dev: false + + /@babel/register/7.13.8_@babel+core@7.13.10: + resolution: {integrity: sha512-yCVtABcmvQjRsX2elcZFUV5Q5kDDpHdtXKKku22hNDma60lYuhKmtp1ykZ/okRCPLT2bR5S+cA1kvtBdAFlDTQ==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== - /@babel/register/7.13.8_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 find-cache-dir: 2.1.0 @@ -1010,30 +1095,28 @@ packages: pirates: 4.0.1 source-map-support: 0.5.19 dev: false - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-yCVtABcmvQjRsX2elcZFUV5Q5kDDpHdtXKKku22hNDma60lYuhKmtp1ykZ/okRCPLT2bR5S+cA1kvtBdAFlDTQ== + /@babel/runtime-corejs3/7.13.10: + resolution: {integrity: sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==} dependencies: core-js-pure: 3.9.1 regenerator-runtime: 0.13.7 dev: true - resolution: - integrity: sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg== + /@babel/runtime/7.13.10: + resolution: {integrity: sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==} dependencies: regenerator-runtime: 0.13.7 - resolution: - integrity: sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== + /@babel/template/7.12.13: + resolution: {integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==} dependencies: '@babel/code-frame': 7.12.13 '@babel/parser': 7.13.11 '@babel/types': 7.13.0 - resolution: - integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + /@babel/traverse/7.13.0: + resolution: {integrity: sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==} dependencies: '@babel/code-frame': 7.12.13 '@babel/generator': 7.13.9 @@ -1044,30 +1127,33 @@ packages: debug: 4.3.1 globals: 11.12.0 lodash: 4.17.20 - resolution: - integrity: sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== + transitivePeerDependencies: + - supports-color + /@babel/types/7.12.13: + resolution: {integrity: sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==} dependencies: '@babel/helper-validator-identifier': 7.12.11 lodash: 4.17.20 to-fast-properties: 2.0.0 - resolution: - integrity: sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== + /@babel/types/7.13.0: + resolution: {integrity: sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==} dependencies: '@babel/helper-validator-identifier': 7.12.11 lodash: 4.17.20 to-fast-properties: 2.0.0 - resolution: - integrity: sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== + /@babel/types/7.13.12: + resolution: {integrity: sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==} dependencies: '@babel/helper-validator-identifier': 7.12.11 lodash: 4.17.21 to-fast-properties: 2.0.0 - resolution: - integrity: sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA== + /@eslint/eslintrc/0.4.0: + resolution: {integrity: sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: ajv: 6.12.6 debug: 4.3.1 @@ -1078,292 +1164,297 @@ packages: js-yaml: 3.14.1 minimatch: 3.0.4 strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color dev: true - engines: - node: ^10.12.0 || >=12.0.0 - resolution: - integrity: sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== + /@nodelib/fs.scandir/2.1.4: + resolution: {integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.4 run-parallel: 1.2.0 dev: true - engines: - node: '>= 8' - resolution: - integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + /@nodelib/fs.stat/2.0.4: + resolution: {integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==} + engines: {node: '>= 8'} dev: true - engines: - node: '>= 8' - resolution: - integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + /@nodelib/fs.walk/1.2.6: + resolution: {integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.4 fastq: 1.11.0 dev: true - engines: - node: '>= 8' - resolution: - integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + /@types/atom/1.40.10: + resolution: {integrity: sha512-aNFUhCuR6nmTTMoYKfWWMifZ3IcNETLWC75hCdg3i1/OvirfR/5qm1wfiISBb4s/TPM2YVEtxytCdWhKJuEhzw==} dependencies: '@types/node': 14.14.35 dev: true - resolution: - integrity: sha512-aNFUhCuR6nmTTMoYKfWWMifZ3IcNETLWC75hCdg3i1/OvirfR/5qm1wfiISBb4s/TPM2YVEtxytCdWhKJuEhzw== + /@types/glob/7.1.3: + resolution: {integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==} dependencies: '@types/minimatch': 3.0.3 '@types/node': 14.14.35 dev: true - resolution: - integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - /@types/jasmine/3.6.7: + + /@types/jasmine/3.6.10: + resolution: {integrity: sha512-yfCl7JGtIc5LjScFpeIGBBNhJFkJdAAcsAnAd9ZRHwzh+sR2zkt257BKkTCF5VpJ8wMPnzzZ8QatRdXM8tqpKA==} dev: true - resolution: - integrity: sha512-8dtfiykrpe4Ysn6ONj0tOjmpDIh1vWxPk80eutSeWmyaJvAZXZ84219fS4gLrvz05eidhp7BP17WVQBaXHSyXQ== + /@types/json-schema/7.0.7: + resolution: {integrity: sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==} dev: true - resolution: - integrity: sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + /@types/json5/0.0.29: + resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true - resolution: - integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + + /@types/mdast/3.0.3: + resolution: {integrity: sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==} + dependencies: + '@types/unist': 2.0.3 + dev: true + /@types/minimatch/3.0.3: + resolution: {integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==} dev: true - resolution: - integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + /@types/node/14.14.35: + resolution: {integrity: sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==} + dev: true + + /@types/node/15.0.1: + resolution: {integrity: sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==} dev: true - resolution: - integrity: sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== + /@types/rimraf/3.0.0: + resolution: {integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==} dependencies: '@types/glob': 7.1.3 '@types/node': 14.14.35 dev: true - resolution: - integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ== - /@types/temp/0.8.34: + + /@types/temp/0.9.0: + resolution: {integrity: sha512-UPoFCczcfwFjlopS9hDP6QR3oqng1YnRyKQSDNNFRAUurRaxV8FIjRbvT7Q2Co2zpXh23CEPEx1pKuITHnFQIA==} dependencies: - '@types/node': 14.14.35 + '@types/node': 15.0.1 + dev: true + + /@types/underscore/1.11.2: + resolution: {integrity: sha512-Ls2ylbo7++ITrWk2Yc3G/jijwSq5V3GT0tlgVXEl2kKYXY3ImrtmTCoE2uyTWFRI5owMBriloZFWbE1SXOsE7w==} dev: true - resolution: - integrity: sha512-oLa9c5LHXgS6UimpEVp08De7QvZ+Dfu5bMQuWyMhf92Z26Q10ubEMOWy9OEfUdzW7Y/sDWVHmUaLFtmnX/2j0w== - /@types/underscore/1.11.0: + + /@types/unist/2.0.3: + resolution: {integrity: sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==} dev: true - resolution: - integrity: sha512-ipNAQLgRnG0EWN1cTtfdVHp5AyTW/PAMJ1PxLN4bAKSHbusSZbj48mIHiydQpN7GgQrYqwfnvZ573OVfJm5Nzg== + /@types/uuid/8.3.0: + resolution: {integrity: sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==} dev: true - resolution: - integrity: sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== - /@typescript-eslint/eslint-plugin/4.18.0_ef0f217f6395606fd8bbe7b0291eff7e: + + /@typescript-eslint/eslint-plugin/4.22.0_4071adfaed07129e5a837ca668ea3c94: + resolution: {integrity: sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.18.0_eslint@7.22.0+typescript@4.2.3 - '@typescript-eslint/parser': 4.18.0_eslint@7.22.0+typescript@4.2.3 - '@typescript-eslint/scope-manager': 4.18.0 + '@typescript-eslint/experimental-utils': 4.22.0_eslint@7.25.0+typescript@4.2.3 + '@typescript-eslint/parser': 4.22.0_eslint@7.25.0+typescript@4.2.3 + '@typescript-eslint/scope-manager': 4.22.0 debug: 4.3.1 - eslint: 7.22.0 + eslint: 7.25.0 functional-red-black-tree: 1.0.1 lodash: 4.17.21 regexpp: 3.1.0 semver: 7.3.4 tsutils: 3.21.0_typescript@4.2.3 typescript: 4.2.3 + transitivePeerDependencies: + - supports-color dev: true - engines: - node: ^10.12.0 || >=12.0.0 + + /@typescript-eslint/experimental-utils/4.22.0_eslint@7.25.0+typescript@4.2.3: + resolution: {integrity: sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==} + engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ== - /@typescript-eslint/experimental-utils/4.18.0_eslint@7.22.0+typescript@4.2.3: + eslint: '*' dependencies: '@types/json-schema': 7.0.7 - '@typescript-eslint/scope-manager': 4.18.0 - '@typescript-eslint/types': 4.18.0 - '@typescript-eslint/typescript-estree': 4.18.0_typescript@4.2.3 - eslint: 7.22.0 + '@typescript-eslint/scope-manager': 4.22.0 + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/typescript-estree': 4.22.0_typescript@4.2.3 + eslint: 7.25.0 eslint-scope: 5.1.1 eslint-utils: 2.1.0 + transitivePeerDependencies: + - supports-color + - typescript dev: true - engines: - node: ^10.12.0 || >=12.0.0 + + /@typescript-eslint/parser/4.22.0_eslint@7.25.0+typescript@4.2.3: + resolution: {integrity: sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==} + engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: - eslint: '*' + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 typescript: '*' - resolution: - integrity: sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A== - /@typescript-eslint/parser/4.18.0_eslint@7.22.0+typescript@4.2.3: + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/scope-manager': 4.18.0 - '@typescript-eslint/types': 4.18.0 - '@typescript-eslint/typescript-estree': 4.18.0_typescript@4.2.3 + '@typescript-eslint/scope-manager': 4.22.0 + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/typescript-estree': 4.22.0_typescript@4.2.3 debug: 4.3.1 - eslint: 7.22.0 + eslint: 7.25.0 typescript: 4.2.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/4.22.0: + resolution: {integrity: sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/visitor-keys': 4.22.0 dev: true - engines: - node: ^10.12.0 || >=12.0.0 + + /@typescript-eslint/types/4.22.0: + resolution: {integrity: sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dev: true + + /@typescript-eslint/typescript-estree/4.22.0_typescript@4.2.3: + resolution: {integrity: sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==} + engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - resolution: - integrity: sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA== - /@typescript-eslint/scope-manager/4.18.0: - dependencies: - '@typescript-eslint/types': 4.18.0 - '@typescript-eslint/visitor-keys': 4.18.0 - dev: true - engines: - node: ^8.10.0 || ^10.13.0 || >=11.10.1 - resolution: - integrity: sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ== - /@typescript-eslint/types/4.18.0: - dev: true - engines: - node: ^8.10.0 || ^10.13.0 || >=11.10.1 - resolution: - integrity: sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A== - /@typescript-eslint/typescript-estree/4.18.0_typescript@4.2.3: - dependencies: - '@typescript-eslint/types': 4.18.0 - '@typescript-eslint/visitor-keys': 4.18.0 + dependencies: + '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/visitor-keys': 4.22.0 debug: 4.3.1 globby: 11.0.2 is-glob: 4.0.1 semver: 7.3.4 tsutils: 3.21.0_typescript@4.2.3 typescript: 4.2.3 + transitivePeerDependencies: + - supports-color dev: true - engines: - node: ^10.12.0 || >=12.0.0 - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - resolution: - integrity: sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg== - /@typescript-eslint/visitor-keys/4.18.0: + + /@typescript-eslint/visitor-keys/4.22.0: + resolution: {integrity: sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dependencies: - '@typescript-eslint/types': 4.18.0 + '@typescript-eslint/types': 4.22.0 eslint-visitor-keys: 2.0.0 dev: true - engines: - node: ^8.10.0 || ^10.13.0 || >=11.10.1 - resolution: - integrity: sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw== + /acorn-jsx/5.3.1_acorn@7.4.1: + resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 7.4.1 dev: true - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - resolution: - integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + /acorn/7.4.1: - dev: true - engines: - node: '>=0.4.0' + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} hasBin: true - resolution: - integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + dev: true + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 dev: true - resolution: - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + /ajv/7.0.4: + resolution: {integrity: sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 dev: true - resolution: - integrity: sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw== + /ansi-colors/4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + /ansi-regex/2.1.1: + resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + /ansi-regex/5.0.0: - engines: - node: '>=8' - resolution: - integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} + engines: {node: '>=8'} + /ansi-styles/2.2.1: + resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - engines: - node: '>=4' - resolution: - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + /ansi-to-html/0.6.14: + resolution: {integrity: sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==} + hasBin: true dependencies: entities: 1.1.2 dev: false - hasBin: true - resolution: - integrity: sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA== + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true - resolution: - integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - resolution: - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + /aria-query/4.2.2: + resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} + engines: {node: '>=6.0'} dependencies: '@babel/runtime': 7.13.10 '@babel/runtime-corejs3': 7.13.10 dev: true - engines: - node: '>=6.0' - resolution: - integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + /array-includes/3.1.3: + resolution: {integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 @@ -1371,177 +1462,156 @@ packages: get-intrinsic: 1.1.1 is-string: 1.0.5 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + /array.prototype.flat/1.2.4: + resolution: {integrity: sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + /array.prototype.flatmap/1.2.4: + resolution: {integrity: sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0 function-bind: 1.1.1 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + /ast-types-flow/0.0.7: + resolution: {integrity: sha1-9wtzXGvKGlycItmCw+Oef+ujva0=} dev: true - resolution: - integrity: sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} dev: false - engines: - node: '>= 4.0.0' - resolution: - integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + /atom-message-panel/1.3.1: + resolution: {integrity: sha512-nLi19faNBl/kabrf6itBkHcLrnpUeiGbpda+dHufAODKH+I+odoPRCxx7EZ+mCHEsBMhHNXxLWOLA+Mm9pumbA==} dependencies: atom-space-pen-views: 2.2.0 dev: false - resolution: - integrity: sha512-nLi19faNBl/kabrf6itBkHcLrnpUeiGbpda+dHufAODKH+I+odoPRCxx7EZ+mCHEsBMhHNXxLWOLA+Mm9pumbA== + /atom-space-pen-views-plus/3.0.4: + resolution: {integrity: sha512-PfCBrD6RUN359P8Do3D3m2d1Ws2DyR7Jl1Ym97R2Gr9liM+5CYU5AvopJNL9m8pZqOBpu5ePcHjSrC/V1cL8oA==} dependencies: fs-extra: 9.1.0 fuzzaldrin: 2.1.0 space-pen-plus: 6.0.3 dev: false - resolution: - integrity: sha512-PfCBrD6RUN359P8Do3D3m2d1Ws2DyR7Jl1Ym97R2Gr9liM+5CYU5AvopJNL9m8pZqOBpu5ePcHjSrC/V1cL8oA== + /atom-space-pen-views/2.2.0: + resolution: {integrity: sha1-plsskg7QL3JAFPp9Plw9ePv1mZc=} dependencies: fuzzaldrin: 2.1.0 space-pen: 5.1.2 dev: false - resolution: - integrity: sha1-plsskg7QL3JAFPp9Plw9ePv1mZc= + /axe-core/3.5.5: + resolution: {integrity: sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==} + engines: {node: '>=4'} dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q== + /axe-core/4.1.3: + resolution: {integrity: sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==} + engines: {node: '>=4'} dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ== + /axobject-query/2.2.0: + resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} dev: true - resolution: - integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + /babel-code-frame/6.26.0: + resolution: {integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=} dependencies: chalk: 1.1.3 esutils: 2.0.3 js-tokens: 3.0.2 dev: true - resolution: - integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - /babel-eslint/10.1.0_eslint@7.22.0: - dependencies: - '@babel/code-frame': 7.12.13 - '@babel/parser': 7.13.11 - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 - eslint: 7.22.0 - eslint-visitor-keys: 1.3.0 - resolve: 1.20.0 - deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. - dev: true - engines: - node: '>=6' - peerDependencies: - eslint: '>= 4.12.1' - resolution: - integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + /babel-eslint/7.2.3: + resolution: {integrity: sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=} + engines: {node: '>=4'} + deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. dependencies: babel-code-frame: 6.26.0 babel-traverse: 6.26.0 babel-types: 6.26.0 babylon: 6.18.0 - deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc= + /babel-messages/6.23.0: + resolution: {integrity: sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=} dependencies: babel-runtime: 6.26.0 dev: true - resolution: - integrity: sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + /babel-plugin-dynamic-import-node/2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: object.assign: 4.1.2 dev: false - resolution: - integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + /babel-plugin-polyfill-corejs2/0.1.10_@babel+core@7.13.10: + resolution: {integrity: sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.13.12 '@babel/core': 7.13.10 '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 semver: 6.3.0 + transitivePeerDependencies: + - supports-color dev: false + + /babel-plugin-polyfill-corejs3/0.1.7_@babel+core@7.13.10: + resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA== - /babel-plugin-polyfill-corejs3/0.1.7_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 core-js-compat: 3.9.1 + transitivePeerDependencies: + - supports-color dev: false + + /babel-plugin-polyfill-regenerator/0.1.6_@babel+core@7.13.10: + resolution: {integrity: sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==} peerDependencies: '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== - /babel-plugin-polyfill-regenerator/0.1.6_@babel+core@7.13.10: dependencies: '@babel/core': 7.13.10 '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 + transitivePeerDependencies: + - supports-color dev: false - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== + /babel-runtime/6.26.0: + resolution: {integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4=} dependencies: core-js: 2.6.12 regenerator-runtime: 0.11.1 dev: true - resolution: - integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + /babel-traverse/6.26.0: + resolution: {integrity: sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=} dependencies: babel-code-frame: 6.26.0 babel-messages: 6.23.0 @@ -1553,78 +1623,79 @@ packages: invariant: 2.2.4 lodash: 4.17.21 dev: true - resolution: - integrity: sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + /babel-types/6.26.0: + resolution: {integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=} dependencies: babel-runtime: 6.26.0 esutils: 2.0.3 lodash: 4.17.21 to-fast-properties: 1.0.3 dev: true - resolution: - integrity: sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + /babylon/6.18.0: - dev: true + resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} hasBin: true - resolution: - integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - /babylon/7.0.0-beta.47: dev: true - engines: - node: '>=6.0.0' + + /babylon/7.0.0-beta.47: + resolution: {integrity: sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==} + engines: {node: '>=6.0.0'} hasBin: true - resolution: - integrity: sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ== + dev: true + /balanced-match/1.0.0: - resolution: - integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=} + + /binary-search-bounds/2.0.5: + resolution: {integrity: sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==} + dev: true + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.0 concat-map: 0.0.1 - resolution: - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + /browserslist/4.16.3: + resolution: {integrity: sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: caniuse-lite: 1.0.30001185 colorette: 1.2.1 electron-to-chromium: 1.3.657 escalade: 3.1.1 node-releases: 1.1.70 - engines: - node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 - hasBin: true - resolution: - integrity: sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + /buffer-from/1.1.1: + resolution: {integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==} dev: false - resolution: - integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.1 - resolution: - integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + /caniuse-lite/1.0.30001185: - resolution: - integrity: sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg== + resolution: {integrity: sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==} + /chalk/1.1.3: + resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=} + engines: {node: '>=0.10.0'} dependencies: ansi-styles: 2.2.1 escape-string-regexp: 1.0.5 @@ -1632,302 +1703,329 @@ packages: strip-ansi: 3.0.1 supports-color: 2.0.0 dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - engines: - node: '>=4' - resolution: - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + /chalk/4.1.0: + resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: true - engines: - node: '>=10' - resolution: - integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + + /character-entities-legacy/1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities/1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-reference-invalid/1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + /cli/1.0.1: + resolution: {integrity: sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=} + engines: {node: '>=0.2.5'} dependencies: exit: 0.1.2 glob: 7.1.6 dev: true - engines: - node: '>=0.2.5' - resolution: - integrity: sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ= + /coffeescript/1.12.7: - dev: true - engines: - node: '>=0.8.0' + resolution: {integrity: sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA==} + engines: {node: '>=0.8.0'} hasBin: true - resolution: - integrity: sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== + dev: true + /coffeescript/2.5.1: - engines: - node: '>=6' + resolution: {integrity: sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ==} + engines: {node: '>=6'} hasBin: true - resolution: - integrity: sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ== + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - resolution: - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true - engines: - node: '>=7.0.0' - resolution: - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + /color-name/1.1.3: - resolution: - integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - resolution: - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + /colorette/1.2.1: - resolution: - integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + resolution: {integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==} + /commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} dev: false - engines: - node: '>= 6' - resolution: - integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + + /comment-parser/1.1.5: + resolution: {integrity: sha512-RePCE4leIhBlmrqiYTvaqEeGYg7qpSl4etaIabKtdOQVi+mSTIBBklGUwIr79GXYnl3LpMwmDw4KeR2stNc6FA==} + engines: {node: '>= 10.0.0'} + dev: true + /commondir/1.0.1: + resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} dev: false - resolution: - integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + /concat-map/0.0.1: - resolution: - integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + /confusing-browser-globals/1.0.10: + resolution: {integrity: sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==} dev: true - resolution: - integrity: sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + /console-browserify/1.1.0: + resolution: {integrity: sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=} dependencies: date-now: 0.1.4 dev: true - resolution: - integrity: sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + /contains-path/0.1.0: + resolution: {integrity: sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + /convert-source-map/1.7.0: + resolution: {integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==} dependencies: safe-buffer: 5.1.2 - resolution: - integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + /core-js-compat/3.9.1: + resolution: {integrity: sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==} dependencies: browserslist: 4.16.3 semver: 7.0.0 dev: false - resolution: - integrity: sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== + /core-js-pure/3.9.1: - dev: true + resolution: {integrity: sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==} requiresBuild: true - resolution: - integrity: sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A== - /core-js/2.6.12: - deprecated: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3. dev: true + + /core-js/2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + deprecated: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. requiresBuild: true - resolution: - integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + dev: true + /core-js/3.9.1: - dev: false + resolution: {integrity: sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg==} requiresBuild: true - resolution: - integrity: sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== + dev: false + /core-util-is/1.0.2: + resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} dev: true - resolution: - integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 dev: true - engines: - node: '>= 8' - resolution: - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + /d/0.1.1: + resolution: {integrity: sha1-2hhMU10Y2O57oqoim5FACfrhEwk=} dependencies: es5-ext: 0.10.53 dev: false - resolution: - integrity: sha1-2hhMU10Y2O57oqoim5FACfrhEwk= + /d/1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} dependencies: es5-ext: 0.10.53 type: 1.2.0 dev: false - resolution: - integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + /damerau-levenshtein/1.0.6: + resolution: {integrity: sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==} dev: true - resolution: - integrity: sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + /date-now/0.1.4: + resolution: {integrity: sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=} dev: true - resolution: - integrity: sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} dependencies: ms: 2.0.0 dev: true - resolution: - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + /debug/4.3.1: - dependencies: - ms: 2.1.2 - engines: - node: '>=6.0' + resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - resolution: - integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms: 2.1.2 + /deep-is/0.1.3: + resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} dev: true - resolution: - integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + /define-properties/1.1.3: + resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + engines: {node: '>= 0.4'} dependencies: object-keys: 1.1.1 - engines: - node: '>= 0.4' - resolution: - integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + /doctrine/1.5.0: + resolution: {integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 isarray: 1.0.0 dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - engines: - node: '>=6.0.0' - resolution: - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + /dom-serializer/0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} dependencies: - domelementtype: 2.1.0 + domelementtype: 2.2.0 + entities: 2.2.0 + dev: true + + /dom-serializer/1.3.1: + resolution: {integrity: sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q==} + dependencies: + domelementtype: 2.2.0 + domhandler: 4.2.0 entities: 2.2.0 dev: true - resolution: - integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + /domelementtype/1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} dev: true - resolution: - integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + /domelementtype/2.1.0: + resolution: {integrity: sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==} + dev: true + + /domelementtype/2.2.0: + resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} dev: true - resolution: - integrity: sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + /domhandler/2.3.0: + resolution: {integrity: sha1-LeWaCCLVAn+r/28DLCsloqir5zg=} dependencies: domelementtype: 1.3.1 dev: true - resolution: - integrity: sha1-LeWaCCLVAn+r/28DLCsloqir5zg= + + /domhandler/4.2.0: + resolution: {integrity: sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.2.0 + dev: true + /domutils/1.5.1: + resolution: {integrity: sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=} dependencies: dom-serializer: 0.2.2 domelementtype: 1.3.1 dev: true - resolution: - integrity: sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + + /domutils/2.6.0: + resolution: {integrity: sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==} + dependencies: + dom-serializer: 1.3.1 + domelementtype: 2.2.0 + domhandler: 4.2.0 + dev: true + /electron-to-chromium/1.3.657: - resolution: - integrity: sha512-/9ROOyvEflEbaZFUeGofD+Tqs/WynbSTbNgNF+/TJJxH1ePD/e6VjZlDJpW3FFFd3nj5l3Hd8ki2vRwy+gyRFw== + resolution: {integrity: sha512-/9ROOyvEflEbaZFUeGofD+Tqs/WynbSTbNgNF+/TJJxH1ePD/e6VjZlDJpW3FFFd3nj5l3Hd8ki2vRwy+gyRFw==} + /emissary/1.3.3: + resolution: {integrity: sha1-phjZLWgrIy0xER3DYlpd9mF5lgY=} dependencies: es6-weak-map: 0.1.4 mixto: 1.0.0 property-accessors: 1.1.3 underscore-plus: 1.7.0 dev: false - resolution: - integrity: sha1-phjZLWgrIy0xER3DYlpd9mF5lgY= + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - resolution: - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - resolution: - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + /enquirer/2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.1 dev: true - engines: - node: '>=8.6' - resolution: - integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + /entities/1.0.0: + resolution: {integrity: sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=} dev: true - resolution: - integrity: sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY= + /entities/1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} dev: false - resolution: - integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - resolution: - integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true - resolution: - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + /es-abstract/1.18.0: + resolution: {integrity: sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 @@ -1945,204 +2043,209 @@ packages: string.prototype.trimend: 1.0.4 string.prototype.trimstart: 1.0.4 unbox-primitive: 1.0.0 - engines: - node: '>= 0.4' - resolution: - integrity: sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.3 is-date-object: 1.0.2 is-symbol: 1.0.3 - engines: - node: '>= 0.4' - resolution: - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + /es5-ext/0.10.53: + resolution: {integrity: sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==} dependencies: es6-iterator: 2.0.3 es6-symbol: 3.1.3 next-tick: 1.0.0 dev: false - resolution: - integrity: sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + /es6-iterator/0.1.3: + resolution: {integrity: sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=} dependencies: d: 0.1.1 es5-ext: 0.10.53 es6-symbol: 2.0.1 dev: false - resolution: - integrity: sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4= + /es6-iterator/2.0.3: + resolution: {integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c=} dependencies: d: 1.0.1 es5-ext: 0.10.53 es6-symbol: 3.1.3 dev: false - resolution: - integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + /es6-symbol/2.0.1: + resolution: {integrity: sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=} dependencies: d: 0.1.1 es5-ext: 0.10.53 dev: false - resolution: - integrity: sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M= + /es6-symbol/3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} dependencies: d: 1.0.1 ext: 1.4.0 dev: false - resolution: - integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + /es6-weak-map/0.1.4: + resolution: {integrity: sha1-cGzvnpmqI2undmwjnIueKG6n0ig=} dependencies: d: 0.1.1 es5-ext: 0.10.53 es6-iterator: 0.1.3 es6-symbol: 2.0.1 dev: false - resolution: - integrity: sha1-cGzvnpmqI2undmwjnIueKG6n0ig= + /escalade/3.1.1: - engines: - node: '>=6' - resolution: - integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + /escape-string-regexp/1.0.5: - engines: - node: '>=0.8.0' - resolution: - integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - /eslint-config-airbnb-base/14.2.1_23c541aea0503b6154366e35dc4fb8b3: - dependencies: - confusing-browser-globals: 1.0.10 - eslint: 7.22.0 - eslint-plugin-import: 2.22.1_eslint@7.22.0 - object.assign: 4.1.2 - object.entries: 1.1.3 - dev: true - engines: - node: '>= 6' + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + + /eslint-config-airbnb-base/14.2.1_100fce8e371568eec2fee09e99309cce: + resolution: {integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==} + engines: {node: '>= 6'} peerDependencies: eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 eslint-plugin-import: ^2.22.1 - resolution: - integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== - /eslint-config-airbnb/18.2.1_1d033471a3365693861bf07d097fd1b9: - dependencies: - eslint: 7.22.0 - eslint-config-airbnb-base: 14.2.1_23c541aea0503b6154366e35dc4fb8b3 - eslint-plugin-import: 2.22.1_eslint@7.22.0 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.22.0 - eslint-plugin-react: 7.22.0_eslint@7.22.0 + dependencies: + confusing-browser-globals: 1.0.10 + eslint: 7.25.0 + eslint-plugin-import: 2.22.1_eslint@7.25.0 object.assign: 4.1.2 object.entries: 1.1.3 dev: true - engines: - node: '>= 6' + + /eslint-config-airbnb/18.2.1_62de3eb514072adbed55d78ddf86a9cc: + resolution: {integrity: sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==} + engines: {node: '>= 6'} peerDependencies: eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 eslint-plugin-import: ^2.22.1 eslint-plugin-jsx-a11y: ^6.4.1 eslint-plugin-react: ^7.21.5 eslint-plugin-react-hooks: ^4 || ^3 || ^2.3.0 || ^1.7.0 - resolution: - integrity: sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== - /eslint-config-atomic/1.12.4_eslint@7.22.0: + dependencies: + eslint: 7.25.0 + eslint-config-airbnb-base: 14.2.1_100fce8e371568eec2fee09e99309cce + eslint-plugin-import: 2.22.1_eslint@7.25.0 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.25.0 + eslint-plugin-react: 7.23.2_eslint@7.25.0 + object.assign: 4.1.2 + object.entries: 1.1.3 + dev: true + + /eslint-config-atomic/1.14.3: + resolution: {integrity: sha512-VYjUvvRX3MzQXI6c6NONdWEX1zU+VoFzJ9MsOBwG8ZF2wXbWX7DdLgVW+EdgGpopokAjh1FcswOiUX8oKjz7yg==} dependencies: '@babel/core': 7.13.10 - '@typescript-eslint/eslint-plugin': 4.18.0_ef0f217f6395606fd8bbe7b0291eff7e - '@typescript-eslint/parser': 4.18.0_eslint@7.22.0+typescript@4.2.3 - babel-eslint: 10.1.0_eslint@7.22.0 + '@babel/eslint-parser': 7.13.14_1a3bc1182d5c5133083fda04736a15b5 + '@typescript-eslint/eslint-plugin': 4.22.0_4071adfaed07129e5a837ca668ea3c94 + '@typescript-eslint/parser': 4.22.0_eslint@7.25.0+typescript@4.2.3 coffeescript: 1.12.7 - eslint: 7.22.0 - eslint-config-prettier: 8.1.0_eslint@7.22.0 - eslint-plugin-coffee: 0.1.14_eslint@7.22.0 - eslint-plugin-import: 2.22.1_eslint@7.22.0 + eslint: 7.25.0 + eslint-config-prettier: 8.3.0_eslint@7.25.0 + eslint-plugin-coffee: 0.1.14_eslint@7.25.0 + eslint-plugin-html: 6.1.2 + eslint-plugin-import: 2.22.1_eslint@7.25.0 eslint-plugin-json: 2.1.2 - eslint-plugin-node: 11.1.0_eslint@7.22.0 + eslint-plugin-node: 11.1.0_eslint@7.25.0 eslint-plugin-only-warn: 1.0.2 eslint-plugin-optimize-regex: 1.2.0 - eslint-plugin-react: 7.22.0_eslint@7.22.0 - eslint-plugin-yaml: 0.4.1 + eslint-plugin-react: 7.23.2_eslint@7.25.0 + eslint-plugin-yaml: 0.4.2 prettier: 2.2.1 typescript: 4.2.3 + transitivePeerDependencies: + - eslint-plugin-react-hooks + - supports-color dev: true - peerDependencies: - eslint: '>=7' - resolution: - integrity: sha512-hsdvWQAhXvYY5B94RTDCtT1YMmOdZ4JSVuE45hANcTKYiIsv9LAyW0I05Cujrg60W0TXrfn0gmaTefBWXTTx2w== - /eslint-config-prettier/8.1.0_eslint@7.22.0: - dependencies: - eslint: 7.22.0 - dev: true + + /eslint-config-prettier/8.3.0_eslint@7.25.0: + resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} hasBin: true peerDependencies: eslint: '>=7.0.0' - resolution: - integrity: sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw== + dependencies: + eslint: 7.25.0 + dev: true + /eslint-import-resolver-node/0.3.4: + resolution: {integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==} dependencies: debug: 2.6.9 resolve: 1.20.0 dev: true - resolution: - integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + /eslint-module-utils/2.6.0: + resolution: {integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==} + engines: {node: '>=4'} dependencies: debug: 2.6.9 pkg-dir: 2.0.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - /eslint-plugin-coffee/0.1.14_eslint@7.22.0: + + /eslint-plugin-coffee/0.1.14_eslint@7.25.0: + resolution: {integrity: sha512-JwBminIlHz7XqZ8kbpNHDMG9y/tsHX8mwMZBxZaAlguyXIfYTrnY/nc+6+/X/DXfA//zDCs/lNARDciW3iJCOQ==} + peerDependencies: + eslint: '>=6.0.0' dependencies: axe-core: 3.5.5 babel-eslint: 7.2.3 babylon: 7.0.0-beta.47 coffeescript: 2.5.1 doctrine: 2.1.0 - eslint: 7.22.0 - eslint-config-airbnb: 18.2.1_1d033471a3365693861bf07d097fd1b9 - eslint-config-airbnb-base: 14.2.1_23c541aea0503b6154366e35dc4fb8b3 - eslint-plugin-import: 2.22.1_eslint@7.22.0 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.22.0 - eslint-plugin-react: 7.22.0_eslint@7.22.0 - eslint-plugin-react-native: 3.10.0_eslint@7.22.0 + eslint: 7.25.0 + eslint-config-airbnb: 18.2.1_62de3eb514072adbed55d78ddf86a9cc + eslint-config-airbnb-base: 14.2.1_100fce8e371568eec2fee09e99309cce + eslint-plugin-import: 2.22.1_eslint@7.25.0 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.25.0 + eslint-plugin-react: 7.23.2_eslint@7.25.0 + eslint-plugin-react-native: 3.10.0_eslint@7.25.0 eslint-scope: 3.7.3 eslint-utils: 1.4.3 eslint-visitor-keys: 1.3.0 jsx-ast-utils: 2.4.1 lodash: 4.17.21 + transitivePeerDependencies: + - eslint-plugin-react-hooks + - supports-color dev: true + + /eslint-plugin-es/3.0.1_eslint@7.25.0: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} peerDependencies: - eslint: '>=6.0.0' - resolution: - integrity: sha512-JwBminIlHz7XqZ8kbpNHDMG9y/tsHX8mwMZBxZaAlguyXIfYTrnY/nc+6+/X/DXfA//zDCs/lNARDciW3iJCOQ== - /eslint-plugin-es/3.0.1_eslint@7.22.0: + eslint: '>=4.19.1' dependencies: - eslint: 7.22.0 + eslint: 7.25.0 eslint-utils: 2.1.0 regexpp: 3.1.0 dev: true - engines: - node: '>=8.10.0' + + /eslint-plugin-html/6.1.2: + resolution: {integrity: sha512-bhBIRyZFqI4EoF12lGDHAmgfff8eLXx6R52/K3ESQhsxzCzIE6hdebS7Py651f7U3RBotqroUnC3L29bR7qJWQ==} + dependencies: + htmlparser2: 6.1.0 + dev: true + + /eslint-plugin-import/2.22.1_eslint@7.25.0: + resolution: {integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==} + engines: {node: '>=4'} peerDependencies: - eslint: '>=4.19.1' - resolution: - integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== - /eslint-plugin-import/2.22.1_eslint@7.22.0: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 dependencies: array-includes: 3.1.3 array.prototype.flat: 1.2.4 contains-path: 0.1.0 debug: 2.6.9 doctrine: 1.5.0 - eslint: 7.22.0 + eslint: 7.25.0 eslint-import-resolver-node: 0.3.4 eslint-module-utils: 2.6.0 has: 1.0.3 @@ -2152,22 +2255,20 @@ packages: resolve: 1.20.0 tsconfig-paths: 3.9.0 dev: true - engines: - node: '>=4' - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 - resolution: - integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + /eslint-plugin-json/2.1.2: + resolution: {integrity: sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q==} + engines: {node: '>=8.10.0'} dependencies: lodash: 4.17.21 vscode-json-languageservice: 3.11.0 dev: true - engines: - node: '>=8.10.0' - resolution: - integrity: sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q== - /eslint-plugin-jsx-a11y/6.4.1_eslint@7.22.0: + + /eslint-plugin-jsx-a11y/6.4.1_eslint@7.25.0: + resolution: {integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 dependencies: '@babel/runtime': 7.13.10 aria-query: 4.2.2 @@ -2177,136 +2278,127 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.6 emoji-regex: 9.2.2 - eslint: 7.22.0 + eslint: 7.25.0 has: 1.0.3 jsx-ast-utils: 3.2.0 language-tags: 1.0.5 dev: true - engines: - node: '>=4.0' + + /eslint-plugin-node/11.1.0_eslint@7.25.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - resolution: - integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== - /eslint-plugin-node/11.1.0_eslint@7.22.0: + eslint: '>=5.16.0' dependencies: - eslint: 7.22.0 - eslint-plugin-es: 3.0.1_eslint@7.22.0 + eslint: 7.25.0 + eslint-plugin-es: 3.0.1_eslint@7.25.0 eslint-utils: 2.1.0 ignore: 5.1.8 minimatch: 3.0.4 resolve: 1.20.0 semver: 6.3.0 dev: true - engines: - node: '>=8.10.0' - peerDependencies: - eslint: '>=5.16.0' - resolution: - integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + /eslint-plugin-only-warn/1.0.2: + resolution: {integrity: sha512-DCG8vuUynDnyfkm0POT50JoE9VJfbtKf+COHn3q79+ExW4dg9ZWM/hsMWX1mjZqxMjQledL/9TmGipon/vwWmw==} + engines: {node: '>=6'} dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-DCG8vuUynDnyfkm0POT50JoE9VJfbtKf+COHn3q79+ExW4dg9ZWM/hsMWX1mjZqxMjQledL/9TmGipon/vwWmw== + /eslint-plugin-optimize-regex/1.2.0: + resolution: {integrity: sha512-pzpF7bGsdXVPue/ubLqS0UbBGuBajxh2fO8OmBDoN0SHrxEBKf8WOAxkOI80lBb81yiZs7hj6ZxlflbrV3YrsA==} + engines: {node: '>=8'} dependencies: regexp-tree: 0.1.23 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-pzpF7bGsdXVPue/ubLqS0UbBGuBajxh2fO8OmBDoN0SHrxEBKf8WOAxkOI80lBb81yiZs7hj6ZxlflbrV3YrsA== + /eslint-plugin-react-native-globals/0.1.2: + resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==} dev: true - resolution: - integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g== - /eslint-plugin-react-native/3.10.0_eslint@7.22.0: + + /eslint-plugin-react-native/3.10.0_eslint@7.25.0: + resolution: {integrity: sha512-4f5+hHYYq5wFhB5eptkPEAR7FfvqbS7AzScUOANfAMZtYw5qgnCxRq45bpfBaQF+iyPMim5Q8pubcpvLv75NAg==} + peerDependencies: + eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 dependencies: '@babel/traverse': 7.13.0 - eslint: 7.22.0 + eslint: 7.25.0 eslint-plugin-react-native-globals: 0.1.2 + transitivePeerDependencies: + - supports-color dev: true + + /eslint-plugin-react/7.23.2_eslint@7.25.0: + resolution: {integrity: sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==} + engines: {node: '>=4'} peerDependencies: - eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 - resolution: - integrity: sha512-4f5+hHYYq5wFhB5eptkPEAR7FfvqbS7AzScUOANfAMZtYw5qgnCxRq45bpfBaQF+iyPMim5Q8pubcpvLv75NAg== - /eslint-plugin-react/7.22.0_eslint@7.22.0: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 dependencies: array-includes: 3.1.3 array.prototype.flatmap: 1.2.4 doctrine: 2.1.0 - eslint: 7.22.0 + eslint: 7.25.0 has: 1.0.3 jsx-ast-utils: 3.2.0 + minimatch: 3.0.4 object.entries: 1.1.3 object.fromentries: 2.0.4 object.values: 1.1.3 prop-types: 15.7.2 - resolve: 1.20.0 + resolve: 2.0.0-next.3 string.prototype.matchall: 4.0.4 dev: true - engines: - node: '>=4' - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - resolution: - integrity: sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== - /eslint-plugin-yaml/0.4.1: + + /eslint-plugin-yaml/0.4.2: + resolution: {integrity: sha512-spYMsdvr63XMTCb41w30L46B/rTmt2PKFKQsG8wbRzjBXhvikYwu0yxeMMfxvMXFkLBoKk5v7Cv7WOQe8z2o8w==} dependencies: - js-yaml: 4.0.0 + js-yaml: 4.1.0 jshint: 2.12.0 dev: true - resolution: - integrity: sha512-KS0evlxfJVxuFqXkZINTLa1koZvzSIC9WSrzcNvoW04QjJpBp6P6YuCi0J3YAaEy31poEHcm4o30iiNTnuxCEw== + /eslint-scope/3.7.3: + resolution: {integrity: sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==} + engines: {node: '>=4.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 dev: true - engines: - node: '>=4.0.0' - resolution: - integrity: sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 dev: true - engines: - node: '>=8.0.0' - resolution: - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + /eslint-utils/1.4.3: + resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} + engines: {node: '>=6'} dependencies: eslint-visitor-keys: 1.3.0 dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + /eslint-utils/2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} dependencies: eslint-visitor-keys: 1.3.0 dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + /eslint-visitor-keys/1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + /eslint-visitor-keys/2.0.0: + resolution: {integrity: sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==} + engines: {node: '>=10'} dev: true - engines: - node: '>=10' - resolution: - integrity: sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - /eslint/7.22.0: + + /eslint/7.25.0: + resolution: {integrity: sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true dependencies: '@babel/code-frame': 7.12.11 '@eslint/eslintrc': 0.4.0 @@ -2324,7 +2416,7 @@ packages: esutils: 2.0.3 file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 - glob-parent: 5.1.1 + glob-parent: 5.1.2 globals: 13.7.0 ignore: 4.0.6 import-fresh: 3.3.0 @@ -2345,79 +2437,71 @@ packages: table: 6.0.7 text-table: 0.2.0 v8-compile-cache: 2.2.0 + transitivePeerDependencies: + - supports-color dev: true - engines: - node: ^10.12.0 || >=12.0.0 - hasBin: true - resolution: - integrity: sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg== + /espree/7.3.1: + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: acorn: 7.4.1 acorn-jsx: 5.3.1_acorn@7.4.1 eslint-visitor-keys: 1.3.0 dev: true - engines: - node: ^10.12.0 || >=12.0.0 - resolution: - integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + /esprima/4.0.1: - dev: true - engines: - node: '>=4' + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true - resolution: - integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + dev: true + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.2.0 dev: true - engines: - node: '>=0.10' - resolution: - integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.2.0 dev: true - engines: - node: '>=4.0' - resolution: - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} dev: true - engines: - node: '>=4.0' - resolution: - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + /estraverse/5.2.0: + resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} + engines: {node: '>=4.0'} dev: true - engines: - node: '>=4.0' - resolution: - integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + /esutils/2.0.3: - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + /exit/0.1.2: + resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} + engines: {node: '>= 0.8.0'} dev: true - engines: - node: '>= 0.8.0' - resolution: - integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + /ext/1.4.0: + resolution: {integrity: sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==} dependencies: type: 2.1.0 dev: false - resolution: - integrity: sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - resolution: - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + /fast-glob/3.2.5: + resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} + engines: {node: '>=8'} dependencies: '@nodelib/fs.stat': 2.0.4 '@nodelib/fs.walk': 1.2.6 @@ -2426,133 +2510,114 @@ packages: micromatch: 4.0.2 picomatch: 2.2.2 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - resolution: - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + /fast-levenshtein/2.0.6: + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} dev: true - resolution: - integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + /fastq/1.11.0: + resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} dependencies: reusify: 1.0.4 dev: true - resolution: - integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true - engines: - node: ^10.12.0 || >=12.0.0 - resolution: - integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + /find-cache-dir/2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} dependencies: commondir: 1.0.1 make-dir: 2.1.0 pkg-dir: 3.0.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + /find-up/2.1.0: + resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + engines: {node: '>=4'} dependencies: locate-path: 2.0.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + /find-up/3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} dependencies: locate-path: 3.0.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.1.1 rimraf: 3.0.2 dev: true - engines: - node: ^10.12.0 || >=12.0.0 - resolution: - integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + /flatted/3.1.1: + resolution: {integrity: sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==} dev: true - resolution: - integrity: sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.5 jsonfile: 6.1.0 universalify: 2.0.0 dev: false - engines: - node: '>=10' - resolution: - integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + /fs.realpath/1.0.0: - resolution: - integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + /function-bind/1.1.1: - resolution: - integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} dev: true - resolution: - integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + /fuzzaldrin/2.1.0: + resolution: {integrity: sha1-kCBMPi/appQbso0WZF1BgGOpDps=} dev: false - resolution: - integrity: sha1-kCBMPi/appQbso0WZF1BgGOpDps= + /gensync/1.0.0-beta.2: - engines: - node: '>=6.9.0' - resolution: - integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + /get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.2 - resolution: - integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - /glob-parent/5.1.1: - dependencies: - is-glob: 4.0.1 - dev: true - engines: - node: '>= 6' - resolution: - integrity: sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.1 dev: true - engines: - node: '>= 6' - resolution: - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + /glob/7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2560,36 +2625,33 @@ packages: minimatch: 3.0.4 once: 1.4.0 path-is-absolute: 1.0.1 - resolution: - integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + /globals/11.12.0: - engines: - node: '>=4' - resolution: - integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + /globals/12.4.0: + resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} + engines: {node: '>=8'} dependencies: type-fest: 0.8.1 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + /globals/13.7.0: + resolution: {integrity: sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA== + /globals/9.18.0: + resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + /globby/11.0.2: + resolution: {integrity: sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -2598,71 +2660,63 @@ packages: merge2: 1.4.1 slash: 3.0.0 dev: true - engines: - node: '>=10' - resolution: - integrity: sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + /graceful-fs/4.2.5: + resolution: {integrity: sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==} dev: false - resolution: - integrity: sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw== + /graceful-fs/4.2.6: + resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} dev: true - resolution: - integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + /grim/1.5.0: + resolution: {integrity: sha1-sysI71Z88YUvgXWe2caLDXE5ajI=} dependencies: emissary: 1.3.3 dev: false - resolution: - integrity: sha1-sysI71Z88YUvgXWe2caLDXE5ajI= + /has-ansi/2.0.0: + resolution: {integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=} + engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + /has-bigints/1.0.1: - resolution: - integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + /has-flag/3.0.0: - engines: - node: '>=4' - resolution: - integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + /has-symbols/1.0.2: - engines: - node: '>= 0.4' - resolution: - integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + engines: {node: '>= 0.4'} + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - engines: - node: '>= 0.4.0' - resolution: - integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + /homedir-polyfill/1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} dependencies: parse-passwd: 1.0.0 dev: false - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + /hosted-git-info/2.8.8: + resolution: {integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==} dev: true - resolution: - integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + /htmlparser2/3.8.3: + resolution: {integrity: sha1-mWwosZFRaovoZQGn15dX5ccMEGg=} dependencies: domelementtype: 1.3.1 domhandler: 2.3.0 @@ -2670,199 +2724,210 @@ packages: entities: 1.0.0 readable-stream: 1.1.14 dev: true - resolution: - integrity: sha1-mWwosZFRaovoZQGn15dX5ccMEGg= + + /htmlparser2/6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + dependencies: + domelementtype: 2.1.0 + domhandler: 4.2.0 + domutils: 2.6.0 + entities: 2.2.0 + dev: true + /ignore/4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} dev: true - engines: - node: '>= 4' - resolution: - integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + /ignore/5.1.8: + resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} + engines: {node: '>= 4'} dev: true - engines: - node: '>= 4' - resolution: - integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + /imurmurhash/0.1.4: + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + engines: {node: '>=0.8.19'} dev: true - engines: - node: '>=0.8.19' - resolution: - integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} dependencies: once: 1.4.0 wrappy: 1.0.2 - resolution: - integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + /inherits/2.0.4: - resolution: - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.1.1 has: 1.0.3 side-channel: 1.0.4 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + /invariant/2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: loose-envify: 1.4.0 dev: true - resolution: - integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + + /is-alphabetical/1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumerical/1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} dev: true - resolution: - integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + /is-bigint/1.0.1: - resolution: - integrity: sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + resolution: {integrity: sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==} + /is-boolean-object/1.1.0: + resolution: {integrity: sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - engines: - node: '>= 0.4' - resolution: - integrity: sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + /is-callable/1.2.3: - engines: - node: '>= 0.4' - resolution: - integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + resolution: {integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==} + engines: {node: '>= 0.4'} + /is-core-module/2.2.0: + resolution: {integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==} dependencies: has: 1.0.3 - resolution: - integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + /is-date-object/1.0.2: - engines: - node: '>= 0.4' - resolution: - integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + resolution: {integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==} + engines: {node: '>= 0.4'} + + /is-decimal/1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + /is-glob/4.0.1: + resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + + /is-hexadecimal/1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + /is-negative-zero/2.0.1: - engines: - node: '>= 0.4' - resolution: - integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} + engines: {node: '>= 0.4'} + /is-number-object/1.0.4: - engines: - node: '>= 0.4' - resolution: - integrity: sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + resolution: {integrity: sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==} + engines: {node: '>= 0.4'} + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} dev: true - engines: - node: '>=0.12.0' - resolution: - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + /is-regex/1.1.2: + resolution: {integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-symbols: 1.0.2 - engines: - node: '>= 0.4' - resolution: - integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + /is-string/1.0.5: - engines: - node: '>= 0.4' - resolution: - integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + resolution: {integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==} + engines: {node: '>= 0.4'} + /is-symbol/1.0.3: + resolution: {integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.2 - engines: - node: '>= 0.4' - resolution: - integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + /isarray/0.0.1: + resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=} dev: true - resolution: - integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + /isarray/1.0.0: + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} dev: true - resolution: - integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} dev: true - resolution: - integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + /jquery/2.1.4: + resolution: {integrity: sha1-IoveaYoMYUMdwmMKahVPFYkNIxc=} dev: false - resolution: - integrity: sha1-IoveaYoMYUMdwmMKahVPFYkNIxc= + /jquery/3.5.1: + resolution: {integrity: sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==} dev: false - resolution: - integrity: sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== + /js-tokens/3.0.2: + resolution: {integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls=} dev: true - resolution: - integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls= + /js-tokens/4.0.0: - resolution: - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 dev: true + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - resolution: - integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - /js-yaml/4.0.0: dependencies: argparse: 2.0.1 dev: true - hasBin: true - resolution: - integrity: sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + /jsesc/0.5.0: - dev: false + resolution: {integrity: sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=} hasBin: true - resolution: - integrity: sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + dev: false + /jsesc/2.5.2: - engines: - node: '>=4' + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} hasBin: true - resolution: - integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + /jshint/2.12.0: + resolution: {integrity: sha512-TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==} + hasBin: true dependencies: cli: 1.0.1 console-browserify: 1.1.0 @@ -2873,295 +2938,305 @@ packages: shelljs: 0.3.0 strip-json-comments: 1.0.4 dev: true - hasBin: true - resolution: - integrity: sha512-TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA== + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - resolution: - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true - resolution: - integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} dev: true - resolution: - integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true dependencies: minimist: 1.2.5 dev: true - hasBin: true - resolution: - integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + /json5/2.2.0: + resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} + engines: {node: '>=6'} + hasBin: true dependencies: minimist: 1.2.5 - engines: - node: '>=6' - hasBin: true - resolution: - integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + /jsonc-parser/3.0.0: + resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} dev: true - resolution: - integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 - dev: false optionalDependencies: graceful-fs: 4.2.5 - resolution: - integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dev: false + /jsx-ast-utils/2.4.1: + resolution: {integrity: sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==} + engines: {node: '>=4.0'} dependencies: array-includes: 3.1.3 object.assign: 4.1.2 dev: true - engines: - node: '>=4.0' - resolution: - integrity: sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== + /jsx-ast-utils/3.2.0: + resolution: {integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==} + engines: {node: '>=4.0'} dependencies: array-includes: 3.1.3 object.assign: 4.1.2 dev: true - engines: - node: '>=4.0' - resolution: - integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + /language-subtag-registry/0.3.21: + resolution: {integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==} dev: true - resolution: - integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + /language-tags/1.0.5: + resolution: {integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=} dependencies: language-subtag-registry: 0.3.21 dev: true - resolution: - integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 dev: true - engines: - node: '>= 0.8.0' - resolution: - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + + /linguist-languages/7.14.0: + resolution: {integrity: sha512-VqnUYHOSqRqAGnIl+7SCnFxK+sX0x7LXe5qn0TG6t9SViofQgN7272PLCFZ/lgkT7tAO5CA/2pCsZGlGvGhfWA==} + dev: true + /load-json-file/2.0.0: + resolution: {integrity: sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=} + engines: {node: '>=4'} dependencies: graceful-fs: 4.2.6 parse-json: 2.2.0 pify: 2.3.0 strip-bom: 3.0.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + /locate-path/2.0.0: + resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + engines: {node: '>=4'} dependencies: p-locate: 2.0.0 path-exists: 3.0.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + /locate-path/3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} dependencies: p-locate: 3.0.0 path-exists: 3.0.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + /lodash.debounce/4.0.8: + resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} dev: false - resolution: - integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168= + /lodash/4.17.20: - resolution: - integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + resolution: {integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==} + /lodash/4.17.21: - resolution: - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: js-tokens: 4.0.0 dev: true - hasBin: true - resolution: - integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true - engines: - node: '>=10' - resolution: - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + /make-dir/2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} dependencies: pify: 4.0.1 semver: 5.7.1 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + + /mdast-util-from-markdown/0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.3 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string/2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} dev: true - engines: - node: '>= 8' - resolution: - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + + /micromark/2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.1 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /micromatch/4.0.2: + resolution: {integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==} + engines: {node: '>=8'} dependencies: braces: 3.0.2 picomatch: 2.2.2 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + /minimatch/3.0.4: + resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: brace-expansion: 1.1.11 - resolution: - integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + /minimist/1.2.5: - resolution: - integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + /mixto/1.0.0: + resolution: {integrity: sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY=} dev: false - resolution: - integrity: sha1-wyDvYbUvKJj1IuF9i7xtUG2EJbY= + /mkdirp/0.5.5: + resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} + hasBin: true dependencies: minimist: 1.2.5 dev: false - hasBin: true - resolution: - integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} dev: true - resolution: - integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /ms/2.1.2: - resolution: - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /natural-compare/1.4.0: + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} dev: true - resolution: - integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + /next-tick/1.0.0: + resolution: {integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw=} dev: false - resolution: - integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw= + /node-environment-flags/1.0.6: + resolution: {integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==} dependencies: object.getownpropertydescriptors: 2.1.2 semver: 5.7.1 dev: false - resolution: - integrity: sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== + /node-modules-regexp/1.0.0: + resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} + engines: {node: '>=0.10.0'} dev: false - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + /node-releases/1.1.70: - resolution: - integrity: sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== + resolution: {integrity: sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==} + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.8 resolve: 1.20.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true - resolution: - integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + /object-inspect/1.9.0: - resolution: - integrity: sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + resolution: {integrity: sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==} + /object-keys/1.1.1: - engines: - node: '>= 0.4' - resolution: - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 has-symbols: 1.0.2 object-keys: 1.1.1 - engines: - node: '>= 0.4' - resolution: - integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + /object.entries/1.1.3: + resolution: {integrity: sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0 has: 1.0.3 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + /object.fromentries/2.0.4: + resolution: {integrity: sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0 has: 1.0.3 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + /object.getownpropertydescriptors/2.1.2: + resolution: {integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==} + engines: {node: '>= 0.8'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0 dev: false - engines: - node: '>= 0.8' - resolution: - integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + /object.values/1.1.3: + resolution: {integrity: sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0 has: 1.0.3 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} dependencies: wrappy: 1.0.2 - resolution: - integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.3 fast-levenshtein: 2.0.6 @@ -3170,279 +3245,278 @@ packages: type-check: 0.4.0 word-wrap: 1.2.3 dev: true - engines: - node: '>= 0.8.0' - resolution: - integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + /p-limit/1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} dependencies: p-try: 1.0.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + /p-locate/2.0.0: + resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + engines: {node: '>=4'} dependencies: p-limit: 1.3.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + /p-locate/3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} dependencies: p-limit: 2.3.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + /p-try/1.0.0: + resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + engines: {node: '>=4'} dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + + /parse-entities/2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + /parse-json/2.2.0: + resolution: {integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=} + engines: {node: '>=0.10.0'} dependencies: error-ex: 1.3.2 dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + /parse-passwd/1.0.0: + resolution: {integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=} + engines: {node: '>=0.10.0'} dev: false - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + /path-exists/3.0.0: - engines: - node: '>=4' - resolution: - integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + engines: {node: '>=4'} + /path-is-absolute/1.0.1: - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + /path-parse/1.0.6: - resolution: - integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + resolution: {integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==} + /path-type/2.0.0: + resolution: {integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=} + engines: {node: '>=4'} dependencies: pify: 2.3.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + /picomatch/2.2.2: + resolution: {integrity: sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==} + engines: {node: '>=8.6'} dev: true - engines: - node: '>=8.6' - resolution: - integrity: sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + /pify/2.3.0: + resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + /pify/4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + /pirates/4.0.1: + resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} + engines: {node: '>= 6'} dependencies: node-modules-regexp: 1.0.0 dev: false - engines: - node: '>= 6' - resolution: - integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + /pkg-dir/2.0.0: + resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} + engines: {node: '>=4'} dependencies: find-up: 2.1.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + /pkg-dir/3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} dependencies: find-up: 3.0.0 dev: false - engines: - node: '>=6' - resolution: - integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} dev: true - engines: - node: '>= 0.8.0' - resolution: - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - /prettier-config-atomic/1.0.1: + + /prettier-config-atomic/2.0.3: + resolution: {integrity: sha512-t4ILoW9A6JrzPA64XtXcLxZ1DrsEh/7RuKblGrqy7aEBXbHOjBLfaIeOcQa1dRgZc9gphwB65FZxhcN9HfXBRw==} dependencies: prettier: 2.2.1 + prettier-plugin-jsdoc: 0.3.22_prettier@2.2.1 + transitivePeerDependencies: + - supports-color dev: true - resolution: - integrity: sha512-bNW8oMkuuVZI0OXEwwfbGGpdh1Jv4QfOzSMnmueBkSCYcCAnA9iHy+wRVsAeVRZPfB1hjqB9UtxGTnrflITtyg== - /prettier/2.2.1: + + /prettier-plugin-jsdoc/0.3.22_prettier@2.2.1: + resolution: {integrity: sha512-8CuzIovyy0FQmt2QgrueYlnqOiYfC68TZsMQ5NRJJEb+JkWJekpO/3KWRJIkBQE/9dIT4Y0CVDqng6TqnoKJvA==} + engines: {node: '>=12.0.0'} + peerDependencies: + prettier: '>=2.1.2' + dependencies: + binary-search-bounds: 2.0.5 + comment-parser: 1.1.5 + linguist-languages: 7.14.0 + mdast-util-from-markdown: 0.8.5 + prettier: 2.2.1 + transitivePeerDependencies: + - supports-color dev: true - engines: - node: '>=10.13.0' + + /prettier/2.2.1: + resolution: {integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==} + engines: {node: '>=10.13.0'} hasBin: true - resolution: - integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + dev: true + /progress/2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} dev: true - engines: - node: '>=0.4.0' - resolution: - integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + /prop-types/15.7.2: + resolution: {integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 dev: true - resolution: - integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + /property-accessors/1.1.3: + resolution: {integrity: sha1-Hd6EAkYxhlkJ7zBwM2VoDF+SixU=} dependencies: es6-weak-map: 0.1.4 mixto: 1.0.0 dev: false - resolution: - integrity: sha1-Hd6EAkYxhlkJ7zBwM2VoDF+SixU= + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + /queue-microtask/1.2.2: + resolution: {integrity: sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==} dev: true - resolution: - integrity: sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - resolution: - integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + /read-pkg-up/2.0.0: + resolution: {integrity: sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=} + engines: {node: '>=4'} dependencies: find-up: 2.1.0 read-pkg: 2.0.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + /read-pkg/2.0.0: + resolution: {integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=} + engines: {node: '>=4'} dependencies: load-json-file: 2.0.0 normalize-package-data: 2.5.0 path-type: 2.0.0 dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + /readable-stream/1.1.14: + resolution: {integrity: sha1-fPTFTvZI44EwhMY23SB54WbAgdk=} dependencies: core-util-is: 1.0.2 inherits: 2.0.4 isarray: 0.0.1 string_decoder: 0.10.31 dev: true - resolution: - integrity: sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + /regenerate-unicode-properties/8.2.0: + resolution: {integrity: sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 dev: false - engines: - node: '>=4' - resolution: - integrity: sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + /regenerate/1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: false - resolution: - integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + /regenerator-runtime/0.11.1: + resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} dev: true - resolution: - integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + /regenerator-runtime/0.13.7: - resolution: - integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + resolution: {integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==} + /regenerator-transform/0.14.5: + resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==} dependencies: '@babel/runtime': 7.13.10 dev: false - resolution: - integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + /regexp-tree/0.1.23: - dev: true + resolution: {integrity: sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==} hasBin: true - resolution: - integrity: sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw== + dev: true + /regexp.prototype.flags/1.3.1: + resolution: {integrity: sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 dev: true - engines: - node: '>= 0.4' - resolution: - integrity: sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + /regexpp/3.1.0: + resolution: {integrity: sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + /regexpu-core/4.7.1: + resolution: {integrity: sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 regenerate-unicode-properties: 8.2.0 @@ -3451,204 +3525,196 @@ packages: unicode-match-property-ecmascript: 1.0.4 unicode-match-property-value-ecmascript: 1.2.0 dev: false - engines: - node: '>=4' - resolution: - integrity: sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + /regjsgen/0.5.2: + resolution: {integrity: sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==} dev: false - resolution: - integrity: sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + /regjsparser/0.6.7: + resolution: {integrity: sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==} + hasBin: true dependencies: jsesc: 0.5.0 dev: false - hasBin: true - resolution: - integrity: sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + /resolve/1.20.0: + resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: is-core-module: 2.2.0 path-parse: 1.0.6 - resolution: - integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + + /resolve/2.0.0-next.3: + resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} + dependencies: + is-core-module: 2.2.0 + path-parse: 1.0.6 + dev: true + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - engines: - iojs: '>=1.0.0' - node: '>=0.10.0' - resolution: - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + /rimraf/2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true dependencies: glob: 7.1.6 dev: false - hasBin: true - resolution: - integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true dependencies: glob: 7.1.6 - hasBin: true - resolution: - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.2 dev: true - resolution: - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + /safe-buffer/5.1.2: - resolution: - integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true - resolution: - integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - resolution: - integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + /semver/7.0.0: - dev: false + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} hasBin: true - resolution: - integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + dev: false + /semver/7.3.4: + resolution: {integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 dev: true - engines: - node: '>=10' - hasBin: true - resolution: - integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + /shelljs/0.3.0: - dev: true - engines: - node: '>=0.8.0' + resolution: {integrity: sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=} + engines: {node: '>=0.8.0'} hasBin: true - resolution: - integrity: sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E= + dev: true + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 object-inspect: 1.9.0 dev: true - resolution: - integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 dev: true - engines: - node: '>=10' - resolution: - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + /source-map-support/0.5.19: + resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} dependencies: buffer-from: 1.1.1 source-map: 0.6.1 dev: false - resolution: - integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + /source-map/0.5.7: - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + engines: {node: '>=0.10.0'} + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} dev: false - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + /space-pen-plus/6.0.3: + resolution: {integrity: sha512-iqPZAQYP3xPDGxT6MxIwm4GQks91p2H4QeUUcjjzPyr2FEmpaqVLX6cDwjzf8HWMQ0r9fa3hSB9CzMODXVBe6g==} dependencies: jquery: 3.5.1 dev: false - resolution: - integrity: sha512-iqPZAQYP3xPDGxT6MxIwm4GQks91p2H4QeUUcjjzPyr2FEmpaqVLX6cDwjzf8HWMQ0r9fa3hSB9CzMODXVBe6g== + /space-pen/5.1.2: + resolution: {integrity: sha1-Ivu+EOCwROe3pHsCPamdlLWE748=} dependencies: grim: 1.5.0 jquery: 2.1.4 underscore-plus: 1.7.0 dev: false - resolution: - integrity: sha1-Ivu+EOCwROe3pHsCPamdlLWE748= + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.7 dev: true - resolution: - integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: true - resolution: - integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.7 dev: true - resolution: - integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + /spdx-license-ids/3.0.7: + resolution: {integrity: sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==} dev: true - resolution: - integrity: sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + /sprintf-js/1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} dev: true - resolution: - integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + /string-width/4.2.0: + resolution: {integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.0 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + /string.prototype.matchall/4.0.4: + resolution: {integrity: sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 @@ -3658,267 +3724,249 @@ packages: regexp.prototype.flags: 1.3.1 side-channel: 1.0.4 dev: true - resolution: - integrity: sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - resolution: - integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + /string.prototype.trimstart/1.0.4: + resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - resolution: - integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + /string_decoder/0.10.31: + resolution: {integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=} dev: true - resolution: - integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + /strip-ansi/3.0.1: + resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=} + engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + /strip-ansi/6.0.0: + resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.0 - engines: - node: '>=8' - resolution: - integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + /strip-bom/3.0.0: + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + engines: {node: '>=4'} dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + /strip-json-comments/1.0.4: - dev: true - engines: - node: '>=0.8.0' + resolution: {integrity: sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=} + engines: {node: '>=0.8.0'} hasBin: true - resolution: - integrity: sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E= + dev: true + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + /supports-color/2.0.0: + resolution: {integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=} + engines: {node: '>=0.8.0'} dev: true - engines: - node: '>=0.8.0' - resolution: - integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - engines: - node: '>=4' - resolution: - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + /table/6.0.7: + resolution: {integrity: sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==} + engines: {node: '>=10.0.0'} dependencies: ajv: 7.0.4 lodash: 4.17.21 slice-ansi: 4.0.0 string-width: 4.2.0 dev: true - engines: - node: '>=10.0.0' - resolution: - integrity: sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + /temp/0.9.4: + resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} + engines: {node: '>=6.0.0'} dependencies: mkdirp: 0.5.5 rimraf: 2.6.3 dev: false - engines: - node: '>=6.0.0' - resolution: - integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA== + /text-table/0.2.0: + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} dev: true - resolution: - integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + /to-fast-properties/1.0.3: + resolution: {integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + /to-fast-properties/2.0.0: - engines: - node: '>=4' - resolution: - integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true - engines: - node: '>=8.0' - resolution: - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + /tsconfig-paths/3.9.0: + resolution: {integrity: sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==} dependencies: '@types/json5': 0.0.29 json5: 1.0.1 minimist: 1.2.5 strip-bom: 3.0.0 dev: true - resolution: - integrity: sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - resolution: - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + /tsutils/3.21.0_typescript@4.2.3: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 typescript: 4.2.3 dev: true - engines: - node: '>= 6' - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - resolution: - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - engines: - node: '>= 0.8.0' - resolution: - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} dev: true - engines: - node: '>=10' - resolution: - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} dev: true - engines: - node: '>=8' - resolution: - integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + /type/1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} dev: false - resolution: - integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + /type/2.1.0: + resolution: {integrity: sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==} dev: false - resolution: - integrity: sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + /typescript/4.2.3: - dev: true - engines: - node: '>=4.2.0' + resolution: {integrity: sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==} + engines: {node: '>=4.2.0'} hasBin: true - resolution: - integrity: sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== + dev: true + /unbox-primitive/1.0.0: + resolution: {integrity: sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==} dependencies: function-bind: 1.1.1 has-bigints: 1.0.1 has-symbols: 1.0.2 which-boxed-primitive: 1.0.2 - resolution: - integrity: sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== + /underscore-plus/1.7.0: + resolution: {integrity: sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA==} dependencies: underscore: 1.12.0 dev: false - resolution: - integrity: sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA== + /underscore/1.12.0: + resolution: {integrity: sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==} dev: false - resolution: - integrity: sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ== + /underscore/1.12.1: + resolution: {integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==} dev: false - resolution: - integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + /unicode-canonical-property-names-ecmascript/1.0.4: + resolution: {integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==} + engines: {node: '>=4'} dev: false - engines: - node: '>=4' - resolution: - integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + /unicode-match-property-ecmascript/1.0.4: + resolution: {integrity: sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==} + engines: {node: '>=4'} dependencies: unicode-canonical-property-names-ecmascript: 1.0.4 unicode-property-aliases-ecmascript: 1.1.0 dev: false - engines: - node: '>=4' - resolution: - integrity: sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + /unicode-match-property-value-ecmascript/1.2.0: + resolution: {integrity: sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==} + engines: {node: '>=4'} dev: false - engines: - node: '>=4' - resolution: - integrity: sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + /unicode-property-aliases-ecmascript/1.1.0: + resolution: {integrity: sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==} + engines: {node: '>=4'} dev: false - engines: - node: '>=4' - resolution: - integrity: sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + + /unist-util-stringify-position/2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.3 + dev: true + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} dev: false - engines: - node: '>= 10.0.0' - resolution: - integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 dev: true - resolution: - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + /uuid/8.3.2: - dev: false + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - resolution: - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + dev: false + /v8-compile-cache/2.2.0: + resolution: {integrity: sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==} dev: true - resolution: - integrity: sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + /v8flags/3.2.0: + resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==} + engines: {node: '>= 0.10'} dependencies: homedir-polyfill: 1.0.3 dev: false - engines: - node: '>= 0.10' - resolution: - integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.1.1 spdx-expression-parse: 3.0.1 dev: true - resolution: - integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + /vscode-json-languageservice/3.11.0: + resolution: {integrity: sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==} dependencies: jsonc-parser: 3.0.0 vscode-languageserver-textdocument: 1.0.1 @@ -3926,77 +3974,48 @@ packages: vscode-nls: 5.0.0 vscode-uri: 2.1.2 dev: true - resolution: - integrity: sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA== + /vscode-languageserver-textdocument/1.0.1: + resolution: {integrity: sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==} dev: true - resolution: - integrity: sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA== + /vscode-languageserver-types/3.16.0-next.2: + resolution: {integrity: sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==} dev: true - resolution: - integrity: sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q== + /vscode-nls/5.0.0: + resolution: {integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==} dev: true - resolution: - integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA== + /vscode-uri/2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} dev: true - resolution: - integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.1 is-boolean-object: 1.1.0 is-number-object: 1.0.4 is-string: 1.0.5 is-symbol: 1.0.3 - resolution: - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 dev: true - engines: - node: '>= 8' - hasBin: true - resolution: - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} dev: true - engines: - node: '>=0.10.0' - resolution: - integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + /wrappy/1.0.2: - resolution: - integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - resolution: - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -specifiers: - '@babel/core': ^7.13.10 - '@babel/node': ^7.13.12 - '@babel/preset-env': ^7.13.12 - '@babel/preset-react': ^7.12.13 - '@types/atom': ^1.40.10 - '@types/jasmine': ^3.6.7 - '@types/node': ^14.14.35 - '@types/rimraf': ^3.0.0 - '@types/temp': ^0.8.34 - '@types/underscore': ^1.11.0 - '@types/uuid': ^8.3.0 - ansi-to-html: ^0.6.14 - atom-message-panel: 1.3.1 - atom-space-pen-views-plus: ^3.0.4 - coffeescript: ^2 - eslint: ^7.22.0 - eslint-config-atomic: ^1.12.4 - prettier: ^2.2.1 - prettier-config-atomic: ^1.0.1 - rimraf: ^3.0.2 - strip-ansi: ^6.0.0 - temp: ^0.9.4 - underscore: ^1.12.1 - uuid: ^8.3.2 From 0b446c3a0e63bf0128c1ffd029382300787093d5 Mon Sep 17 00:00:00 2001 From: aminya Date: Sun, 9 May 2021 08:30:45 +0000 Subject: [PATCH 385/410] chore: update devDependencies --- package.json | 8 ++--- pnpm-lock.yaml | 91 +++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 83 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 9130a2c7..1cc42e1e 100644 --- a/package.json +++ b/package.json @@ -37,16 +37,16 @@ }, "devDependencies": { "@types/atom": "^1.40.10", - "@types/jasmine": "^3.6.10", - "@types/node": "^15.0.1", + "@types/jasmine": "^3.7.1", + "@types/node": "^15.0.2", "@types/rimraf": "^3.0.0", "@types/temp": "^0.9.0", "@types/underscore": "^1.11.2", "@types/uuid": "^8.3.0", - "eslint": "^7.25.0", + "eslint": "^7.26.0", "eslint-config-atomic": "^1.14.3", "prettier": "^2.2.1", - "prettier-config-atomic": "^2.0.3" + "prettier-config-atomic": "^2.0.4" }, "activationCommands": { "atom-text-editor": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0043cba..a6a38965 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,8 @@ specifiers: '@babel/preset-env': ^7.13.12 '@babel/preset-react': ^7.12.13 '@types/atom': ^1.40.10 - '@types/jasmine': ^3.6.10 - '@types/node': ^15.0.1 + '@types/jasmine': ^3.7.1 + '@types/node': ^15.0.2 '@types/rimraf': ^3.0.0 '@types/temp': ^0.9.0 '@types/underscore': ^1.11.2 @@ -16,10 +16,10 @@ specifiers: atom-message-panel: 1.3.1 atom-space-pen-views-plus: ^3.0.4 coffeescript: ^2 - eslint: ^7.25.0 + eslint: ^7.26.0 eslint-config-atomic: ^1.14.3 prettier: ^2.2.1 - prettier-config-atomic: ^2.0.3 + prettier-config-atomic: ^2.0.4 rimraf: ^3.0.2 strip-ansi: ^6.0.0 temp: ^0.9.4 @@ -45,16 +45,16 @@ optionalDependencies: devDependencies: '@types/atom': 1.40.10 - '@types/jasmine': 3.6.10 - '@types/node': 15.0.1 + '@types/jasmine': 3.7.1 + '@types/node': 15.0.2 '@types/rimraf': 3.0.0 '@types/temp': 0.9.0 '@types/underscore': 1.11.2 '@types/uuid': 8.3.0 - eslint: 7.25.0 + eslint: 7.26.0 eslint-config-atomic: 1.14.3 prettier: 2.2.1 - prettier-config-atomic: 2.0.3 + prettier-config-atomic: 2.0.4 packages: @@ -1168,6 +1168,23 @@ packages: - supports-color dev: true + /@eslint/eslintrc/0.4.1: + resolution: {integrity: sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.1 + espree: 7.3.1 + globals: 12.4.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.0.4 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@nodelib/fs.scandir/2.1.4: resolution: {integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==} engines: {node: '>= 8'} @@ -1202,8 +1219,8 @@ packages: '@types/node': 14.14.35 dev: true - /@types/jasmine/3.6.10: - resolution: {integrity: sha512-yfCl7JGtIc5LjScFpeIGBBNhJFkJdAAcsAnAd9ZRHwzh+sR2zkt257BKkTCF5VpJ8wMPnzzZ8QatRdXM8tqpKA==} + /@types/jasmine/3.7.1: + resolution: {integrity: sha512-MP1bcwS0MXQSKPBd20wv0rqF+GOfHTchz4mKFkS4ajAmz2oYwhOpSE9FPe611TOOarA061itZwUQUYRI5mPJsA==} dev: true /@types/json-schema/7.0.7: @@ -1232,6 +1249,10 @@ packages: resolution: {integrity: sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==} dev: true + /@types/node/15.0.2: + resolution: {integrity: sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==} + dev: true + /@types/rimraf/3.0.0: resolution: {integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==} dependencies: @@ -2441,6 +2462,52 @@ packages: - supports-color dev: true + /eslint/7.26.0: + resolution: {integrity: sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true + dependencies: + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.1 + ajv: 6.12.6 + chalk: 4.1.0 + cross-spawn: 7.0.3 + debug: 4.3.1 + doctrine: 3.0.0 + enquirer: 2.3.6 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.0.0 + espree: 7.3.1 + esquery: 1.4.0 + esutils: 2.0.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.7.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.1 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash: 4.17.21 + minimatch: 3.0.4 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: 3.1.0 + semver: 7.3.4 + strip-ansi: 6.0.0 + strip-json-comments: 3.1.1 + table: 6.0.7 + text-table: 0.2.0 + v8-compile-cache: 2.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /espree/7.3.1: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3383,8 +3450,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-config-atomic/2.0.3: - resolution: {integrity: sha512-t4ILoW9A6JrzPA64XtXcLxZ1DrsEh/7RuKblGrqy7aEBXbHOjBLfaIeOcQa1dRgZc9gphwB65FZxhcN9HfXBRw==} + /prettier-config-atomic/2.0.4: + resolution: {integrity: sha512-EuJ8YVKVmgZBDRVKoCYHvuKfq+Dqd12bA3rD387n4zoB/KaeozEsCd48tYosx6+JxB2LFmN8rcl6qKERL6guZQ==} dependencies: prettier: 2.2.1 prettier-plugin-jsdoc: 0.3.22_prettier@2.2.1 From 16a07fdd44f1ad5499092ac444fef01c88d184ee Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 10 May 2021 22:13:10 -0500 Subject: [PATCH 386/410] fix: update dependencies --- package.json | 16 +- pnpm-lock.yaml | 1102 ++++++++++++++++++++++++------------------------ 2 files changed, 548 insertions(+), 570 deletions(-) diff --git a/package.json b/package.json index 1cc42e1e..a220012c 100644 --- a/package.json +++ b/package.json @@ -19,17 +19,17 @@ "test": "atom --test spec" }, "dependencies": { - "@babel/core": "^7.13.10", - "@babel/node": "^7.13.12", - "@babel/preset-env": "^7.13.12", - "@babel/preset-react": "^7.12.13", + "@babel/core": "^7.14.0", + "@babel/node": "^7.13.13", + "@babel/preset-env": "^7.14.1", + "@babel/preset-react": "^7.13.13", "ansi-to-html": "^0.6.14", "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", "rimraf": "^3.0.2", "strip-ansi": "^6.0.0", "temp": "^0.9.4", - "underscore": "^1.12.1", + "underscore": "^1.13.1", "uuid": "^8.3.2" }, "optionalDependencies": { @@ -37,15 +37,15 @@ }, "devDependencies": { "@types/atom": "^1.40.10", - "@types/jasmine": "^3.7.1", + "@types/jasmine": "^3.7.2", "@types/node": "^15.0.2", "@types/rimraf": "^3.0.0", "@types/temp": "^0.9.0", "@types/underscore": "^1.11.2", "@types/uuid": "^8.3.0", "eslint": "^7.26.0", - "eslint-config-atomic": "^1.14.3", - "prettier": "^2.2.1", + "eslint-config-atomic": "^1.14.4", + "prettier": "^2.3.0", "prettier-config-atomic": "^2.0.4" }, "activationCommands": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6a38965..e58b5c9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,12 +1,12 @@ lockfileVersion: 5.3 specifiers: - '@babel/core': ^7.13.10 - '@babel/node': ^7.13.12 - '@babel/preset-env': ^7.13.12 - '@babel/preset-react': ^7.12.13 + '@babel/core': ^7.14.0 + '@babel/node': ^7.13.13 + '@babel/preset-env': ^7.14.1 + '@babel/preset-react': ^7.13.13 '@types/atom': ^1.40.10 - '@types/jasmine': ^3.7.1 + '@types/jasmine': ^3.7.2 '@types/node': ^15.0.2 '@types/rimraf': ^3.0.0 '@types/temp': ^0.9.0 @@ -17,27 +17,27 @@ specifiers: atom-space-pen-views-plus: ^3.0.4 coffeescript: ^2 eslint: ^7.26.0 - eslint-config-atomic: ^1.14.3 - prettier: ^2.2.1 + eslint-config-atomic: ^1.14.4 + prettier: ^2.3.0 prettier-config-atomic: ^2.0.4 rimraf: ^3.0.2 strip-ansi: ^6.0.0 temp: ^0.9.4 - underscore: ^1.12.1 + underscore: ^1.13.1 uuid: ^8.3.2 dependencies: - '@babel/core': 7.13.10 - '@babel/node': 7.13.12_@babel+core@7.13.10 - '@babel/preset-env': 7.13.12_@babel+core@7.13.10 - '@babel/preset-react': 7.12.13_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/node': 7.13.13_@babel+core@7.14.0 + '@babel/preset-env': 7.14.1_@babel+core@7.14.0 + '@babel/preset-react': 7.13.13_@babel+core@7.14.0 ansi-to-html: 0.6.14 atom-message-panel: 1.3.1 atom-space-pen-views-plus: 3.0.4 rimraf: 3.0.2 strip-ansi: 6.0.0 temp: 0.9.4 - underscore: 1.12.1 + underscore: 1.13.1 uuid: 8.3.2 optionalDependencies: @@ -45,15 +45,15 @@ optionalDependencies: devDependencies: '@types/atom': 1.40.10 - '@types/jasmine': 3.7.1 + '@types/jasmine': 3.7.2 '@types/node': 15.0.2 '@types/rimraf': 3.0.0 '@types/temp': 0.9.0 '@types/underscore': 1.11.2 '@types/uuid': 8.3.0 eslint: 7.26.0 - eslint-config-atomic: 1.14.3 - prettier: 2.2.1 + eslint-config-atomic: 1.14.4 + prettier: 2.3.0 prettier-config-atomic: 2.0.4 packages: @@ -69,116 +69,127 @@ packages: dependencies: '@babel/highlight': 7.12.13 - /@babel/compat-data/7.13.11: - resolution: {integrity: sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==} + /@babel/compat-data/7.14.0: + resolution: {integrity: sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==} - /@babel/compat-data/7.13.12: - resolution: {integrity: sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==} - dev: false - - /@babel/core/7.13.10: - resolution: {integrity: sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==} + /@babel/core/7.14.0: + resolution: {integrity: sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.12.13 - '@babel/generator': 7.13.9 - '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 - '@babel/helper-module-transforms': 7.13.0 - '@babel/helpers': 7.13.10 - '@babel/parser': 7.13.11 + '@babel/generator': 7.14.1 + '@babel/helper-compilation-targets': 7.13.16_@babel+core@7.14.0 + '@babel/helper-module-transforms': 7.14.0 + '@babel/helpers': 7.14.0 + '@babel/parser': 7.14.1 '@babel/template': 7.12.13 - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 + '@babel/traverse': 7.14.0 + '@babel/types': 7.14.1 convert-source-map: 1.7.0 debug: 4.3.1 gensync: 1.0.0-beta.2 json5: 2.2.0 - lodash: 4.17.20 semver: 6.3.0 source-map: 0.5.7 transitivePeerDependencies: - supports-color - /@babel/eslint-parser/7.13.14_1a3bc1182d5c5133083fda04736a15b5: + /@babel/eslint-parser/7.13.14_@babel+core@7.14.0+eslint@7.26.0: resolution: {integrity: sha512-I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/core': 7.13.10 - eslint: 7.25.0 + '@babel/core': 7.14.0 + eslint: 7.26.0 eslint-scope: 5.1.1 eslint-visitor-keys: 1.3.0 semver: 6.3.0 dev: true - /@babel/generator/7.13.9: - resolution: {integrity: sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==} + /@babel/generator/7.14.1: + resolution: {integrity: sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==} dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.14.1 jsesc: 2.5.2 source-map: 0.5.7 /@babel/helper-annotate-as-pure/7.12.13: resolution: {integrity: sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==} dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.14.1 dev: false /@babel/helper-builder-binary-assignment-operator-visitor/7.12.13: resolution: {integrity: sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==} dependencies: '@babel/helper-explode-assignable-expression': 7.12.13 - '@babel/types': 7.13.12 + '@babel/types': 7.14.1 dev: false - /@babel/helper-compilation-targets/7.13.10_@babel+core@7.13.10: - resolution: {integrity: sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==} + /@babel/helper-compilation-targets/7.13.16_@babel+core@7.14.0: + resolution: {integrity: sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.13.11 - '@babel/core': 7.13.10 + '@babel/compat-data': 7.14.0 + '@babel/core': 7.14.0 '@babel/helper-validator-option': 7.12.17 browserslist: 4.16.3 semver: 6.3.0 - /@babel/helper-create-class-features-plugin/7.13.11_@babel+core@7.13.10: + /@babel/helper-create-class-features-plugin/7.13.11_@babel+core@7.14.0: resolution: {integrity: sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-function-name': 7.12.13 + '@babel/helper-member-expression-to-functions': 7.13.12 + '@babel/helper-optimise-call-expression': 7.12.13 + '@babel/helper-replace-supers': 7.13.12 + '@babel/helper-split-export-declaration': 7.12.13 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-create-class-features-plugin/7.14.1_@babel+core@7.14.0: + resolution: {integrity: sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.0 + '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-function-name': 7.12.13 - '@babel/helper-member-expression-to-functions': 7.13.0 + '@babel/helper-member-expression-to-functions': 7.13.12 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/helper-replace-supers': 7.13.0 + '@babel/helper-replace-supers': 7.13.12 '@babel/helper-split-export-declaration': 7.12.13 transitivePeerDependencies: - supports-color dev: false - /@babel/helper-create-regexp-features-plugin/7.12.13_@babel+core@7.13.10: + /@babel/helper-create-regexp-features-plugin/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-annotate-as-pure': 7.12.13 regexpu-core: 4.7.1 dev: false - /@babel/helper-define-polyfill-provider/0.1.5_@babel+core@7.13.10: - resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==} + /@babel/helper-define-polyfill-provider/0.2.0_@babel+core@7.14.0: + resolution: {integrity: sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 - '@babel/helper-module-imports': 7.12.13 + '@babel/core': 7.14.0 + '@babel/helper-compilation-targets': 7.13.16_@babel+core@7.14.0 + '@babel/helper-module-imports': 7.13.12 '@babel/helper-plugin-utils': 7.13.0 - '@babel/traverse': 7.13.0 + '@babel/traverse': 7.14.0 debug: 4.3.1 lodash.debounce: 4.0.8 resolve: 1.20.0 @@ -190,7 +201,7 @@ packages: /@babel/helper-explode-assignable-expression/7.12.13: resolution: {integrity: sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==} dependencies: - '@babel/types': 7.13.12 + '@babel/types': 7.14.1 dev: false /@babel/helper-function-name/7.12.13: @@ -198,55 +209,50 @@ packages: dependencies: '@babel/helper-get-function-arity': 7.12.13 '@babel/template': 7.12.13 - '@babel/types': 7.12.13 + '@babel/types': 7.14.1 /@babel/helper-get-function-arity/7.12.13: resolution: {integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==} dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.14.1 /@babel/helper-hoist-variables/7.13.0: resolution: {integrity: sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==} dependencies: - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.12 + '@babel/traverse': 7.14.0 + '@babel/types': 7.14.1 transitivePeerDependencies: - supports-color dev: false - /@babel/helper-member-expression-to-functions/7.13.0: - resolution: {integrity: sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==} + /@babel/helper-member-expression-to-functions/7.13.12: + resolution: {integrity: sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==} dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.14.1 - /@babel/helper-module-imports/7.12.13: - resolution: {integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==} + /@babel/helper-module-imports/7.13.12: + resolution: {integrity: sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==} dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.14.1 - /@babel/helper-module-transforms/7.13.0: - resolution: {integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==} + /@babel/helper-module-transforms/7.14.0: + resolution: {integrity: sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==} dependencies: - '@babel/helper-module-imports': 7.12.13 - '@babel/helper-replace-supers': 7.13.0 - '@babel/helper-simple-access': 7.12.13 + '@babel/helper-module-imports': 7.13.12 + '@babel/helper-replace-supers': 7.13.12 + '@babel/helper-simple-access': 7.13.12 '@babel/helper-split-export-declaration': 7.12.13 - '@babel/helper-validator-identifier': 7.12.11 + '@babel/helper-validator-identifier': 7.14.0 '@babel/template': 7.12.13 - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 - lodash: 4.17.20 + '@babel/traverse': 7.14.0 + '@babel/types': 7.14.1 transitivePeerDependencies: - supports-color /@babel/helper-optimise-call-expression/7.12.13: resolution: {integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==} dependencies: - '@babel/types': 7.13.12 - - /@babel/helper-plugin-utils/7.12.13: - resolution: {integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==} - dev: false + '@babel/types': 7.14.1 /@babel/helper-plugin-utils/7.13.0: resolution: {integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==} @@ -257,40 +263,43 @@ packages: dependencies: '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-wrap-function': 7.13.0 - '@babel/types': 7.13.12 + '@babel/types': 7.14.1 transitivePeerDependencies: - supports-color dev: false - /@babel/helper-replace-supers/7.13.0: - resolution: {integrity: sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==} + /@babel/helper-replace-supers/7.13.12: + resolution: {integrity: sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==} dependencies: - '@babel/helper-member-expression-to-functions': 7.13.0 + '@babel/helper-member-expression-to-functions': 7.13.12 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 + '@babel/traverse': 7.14.0 + '@babel/types': 7.14.1 transitivePeerDependencies: - supports-color - /@babel/helper-simple-access/7.12.13: - resolution: {integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==} + /@babel/helper-simple-access/7.13.12: + resolution: {integrity: sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==} dependencies: - '@babel/types': 7.13.0 + '@babel/types': 7.14.1 /@babel/helper-skip-transparent-expression-wrappers/7.12.1: resolution: {integrity: sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==} dependencies: - '@babel/types': 7.13.12 + '@babel/types': 7.14.1 dev: false /@babel/helper-split-export-declaration/7.12.13: resolution: {integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==} dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.14.1 /@babel/helper-validator-identifier/7.12.11: resolution: {integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==} + /@babel/helper-validator-identifier/7.14.0: + resolution: {integrity: sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==} + /@babel/helper-validator-option/7.12.17: resolution: {integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==} @@ -299,18 +308,18 @@ packages: dependencies: '@babel/helper-function-name': 7.12.13 '@babel/template': 7.12.13 - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.12 + '@babel/traverse': 7.14.0 + '@babel/types': 7.14.1 transitivePeerDependencies: - supports-color dev: false - /@babel/helpers/7.13.10: - resolution: {integrity: sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==} + /@babel/helpers/7.14.0: + resolution: {integrity: sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==} dependencies: '@babel/template': 7.12.13 - '@babel/traverse': 7.13.0 - '@babel/types': 7.13.0 + '@babel/traverse': 7.14.0 + '@babel/types': 7.14.1 transitivePeerDependencies: - supports-color @@ -321,14 +330,14 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/node/7.13.12_@babel+core@7.13.10: - resolution: {integrity: sha512-5+7atyeHEXNz795xEquNRNBXTb9a1Kr6nrvnKWhG0d8Q9BseNCj9dacqSSCN1fI/JUpkRZQBfsmUBR2NX98s1g==} + /@babel/node/7.13.13_@babel+core@7.14.0: + resolution: {integrity: sha512-gElSPunpriXoBGQxDkd5h9L13SVTyzFLTPv9jN1aXJNLR10iNs+MsfhYL/WGJGCJQFddHAdThY7CkmGVz2KPag==} hasBin: true peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/register': 7.13.8_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/register': 7.13.8_@babel+core@7.14.0 commander: 4.1.1 core-js: 3.9.1 node-environment-flags: 1.0.6 @@ -336,759 +345,806 @@ packages: v8flags: 3.2.0 dev: false - /@babel/parser/7.13.11: - resolution: {integrity: sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==} + /@babel/parser/7.14.1: + resolution: {integrity: sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==} engines: {node: '>=6.0.0'} hasBin: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.13.12_@babel+core@7.13.10: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.13.12_@babel+core@7.14.0: resolution: {integrity: sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 - '@babel/plugin-proposal-optional-chaining': 7.13.12_@babel+core@7.13.10 + '@babel/plugin-proposal-optional-chaining': 7.13.12_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-async-generator-functions/7.13.8_@babel+core@7.13.10: - resolution: {integrity: sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==} + /@babel/plugin-proposal-async-generator-functions/7.13.15_@babel+core@7.14.0: + resolution: {integrity: sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-remap-async-to-generator': 7.13.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.10 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.14.0 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-proposal-class-properties/7.13.0_@babel+core@7.13.10: + /@babel/plugin-proposal-class-properties/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.14.0 '@babel/helper-plugin-utils': 7.13.0 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-proposal-dynamic-import/7.13.8_@babel+core@7.13.10: + /@babel/plugin-proposal-class-static-block/7.13.11_@babel+core@7.14.0: + resolution: {integrity: sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg==} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.14.0 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-class-static-block': 7.12.13_@babel+core@7.14.0 + dev: false + + /@babel/plugin-proposal-dynamic-import/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.13.10: + /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-json-strings/7.13.8_@babel+core@7.13.10: + /@babel/plugin-proposal-json-strings/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-logical-assignment-operators/7.13.8_@babel+core@7.13.10: + /@babel/plugin-proposal-logical-assignment-operators/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.13.10 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-nullish-coalescing-operator/7.13.8_@babel+core@7.13.10: + /@babel/plugin-proposal-nullish-coalescing-operator/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.13.10: + /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.10 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-object-rest-spread/7.13.8_@babel+core@7.13.10: + /@babel/plugin-proposal-object-rest-spread/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.13.12 - '@babel/core': 7.13.10 - '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 + '@babel/compat-data': 7.14.0 + '@babel/core': 7.14.0 + '@babel/helper-compilation-targets': 7.13.16_@babel+core@7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.13.10 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-optional-catch-binding/7.13.8_@babel+core@7.13.10: + /@babel/plugin-proposal-optional-catch-binding/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-optional-chaining/7.13.12_@babel+core@7.13.10: + /@babel/plugin-proposal-optional-chaining/7.13.12_@babel+core@7.14.0: resolution: {integrity: sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.10 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.14.0 dev: false - /@babel/plugin-proposal-private-methods/7.13.0_@babel+core@7.13.10: + /@babel/plugin-proposal-private-methods/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-create-class-features-plugin': 7.13.11_@babel+core@7.14.0 + '@babel/helper-plugin-utils': 7.13.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-proposal-private-property-in-object/7.14.0_@babel+core@7.14.0: + resolution: {integrity: sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.0 + '@babel/helper-annotate-as-pure': 7.12.13 + '@babel/helper-create-class-features-plugin': 7.14.1_@babel+core@7.14.0 '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.0_@babel+core@7.14.0 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.13.10: + /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.13.10: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.14.0: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.13.10: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-plugin-utils': 7.13.0 + dev: false + + /@babel/plugin-syntax-class-static-block/7.12.13_@babel+core@7.14.0: + resolution: {integrity: sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.13.10: + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.14.0: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.13.10: + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.14.0: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.13.10: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.14.0: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.13.10: + /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.13.10: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.14.0: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.13.10: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.14.0: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.13.10: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.14.0: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.13.10: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.14.0: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.13.10: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.14.0: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.13.10: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.14.0: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-plugin-utils': 7.13.0 + dev: false + + /@babel/plugin-syntax-private-property-in-object/7.14.0_@babel+core@7.14.0: + resolution: {integrity: sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.13.10: + /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-arrow-functions/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-arrow-functions/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-async-to-generator/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-async-to-generator/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-module-imports': 7.12.13 + '@babel/core': 7.14.0 + '@babel/helper-module-imports': 7.13.12 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-remap-async-to-generator': 7.13.0 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-block-scoping/7.12.13_@babel+core@7.13.10: - resolution: {integrity: sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==} + /@babel/plugin-transform-block-scoping/7.14.1_@babel+core@7.14.0: + resolution: {integrity: sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-classes/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-classes/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-function-name': 7.12.13 '@babel/helper-optimise-call-expression': 7.12.13 '@babel/helper-plugin-utils': 7.13.0 - '@babel/helper-replace-supers': 7.13.0 + '@babel/helper-replace-supers': 7.13.12 '@babel/helper-split-export-declaration': 7.12.13 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-computed-properties/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-computed-properties/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-destructuring/7.13.0_@babel+core@7.13.10: - resolution: {integrity: sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==} + /@babel/plugin-transform-destructuring/7.13.17_@babel+core@7.14.0: + resolution: {integrity: sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-exponentiation-operator/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-exponentiation-operator/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-builder-binary-assignment-operator-visitor': 7.12.13 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-for-of/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-for-of/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-function-name': 7.12.13 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-literals/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-literals/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-modules-amd/7.13.0_@babel+core@7.13.10: - resolution: {integrity: sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==} + /@babel/plugin-transform-modules-amd/7.14.0_@babel+core@7.14.0: + resolution: {integrity: sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-module-transforms': 7.13.0 + '@babel/core': 7.14.0 + '@babel/helper-module-transforms': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-modules-commonjs/7.13.8_@babel+core@7.13.10: - resolution: {integrity: sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==} + /@babel/plugin-transform-modules-commonjs/7.14.0_@babel+core@7.14.0: + resolution: {integrity: sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-module-transforms': 7.13.0 + '@babel/core': 7.14.0 + '@babel/helper-module-transforms': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/helper-simple-access': 7.12.13 + '@babel/helper-simple-access': 7.13.12 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-modules-systemjs/7.13.8_@babel+core@7.13.10: + /@babel/plugin-transform-modules-systemjs/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-hoist-variables': 7.13.0 - '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-module-transforms': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/helper-validator-identifier': 7.12.11 + '@babel/helper-validator-identifier': 7.14.0 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-modules-umd/7.13.0_@babel+core@7.13.10: - resolution: {integrity: sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==} + /@babel/plugin-transform-modules-umd/7.14.0_@babel+core@7.14.0: + resolution: {integrity: sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-module-transforms': 7.13.0 + '@babel/core': 7.14.0 + '@babel/helper-module-transforms': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-named-capturing-groups-regex/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-named-capturing-groups-regex/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.14.0 dev: false - /@babel/plugin-transform-new-target/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-new-target/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/helper-replace-supers': 7.13.0 + '@babel/helper-replace-supers': 7.13.12 transitivePeerDependencies: - supports-color dev: false - /@babel/plugin-transform-parameters/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-parameters/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/core': 7.14.0 + '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-react-jsx-development/7.12.12_@babel+core@7.13.10: - resolution: {integrity: sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==} + /@babel/plugin-transform-react-jsx-development/7.12.17_@babel+core@7.14.0: + resolution: {integrity: sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/plugin-transform-react-jsx': 7.13.12_@babel+core@7.14.0 dev: false - /@babel/plugin-transform-react-jsx/7.12.13_@babel+core@7.13.10: - resolution: {integrity: sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA==} + /@babel/plugin-transform-react-jsx/7.13.12_@babel+core@7.14.0: + resolution: {integrity: sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-annotate-as-pure': 7.12.13 - '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-jsx': 7.12.13_@babel+core@7.13.10 - '@babel/types': 7.13.0 + '@babel/helper-module-imports': 7.13.12 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-jsx': 7.12.13_@babel+core@7.14.0 + '@babel/types': 7.14.1 dev: false - /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.13.10: + /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.14.0: resolution: {integrity: sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-annotate-as-pure': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-regenerator/7.12.13_@babel+core@7.13.10: - resolution: {integrity: sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==} + /@babel/plugin-transform-regenerator/7.13.15_@babel+core@7.14.0: + resolution: {integrity: sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 regenerator-transform: 0.14.5 dev: false - /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-spread/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-spread/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 dev: false - /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-template-literals/7.13.0_@babel+core@7.13.10: + /@babel/plugin-transform-template-literals/7.13.0_@babel+core@7.14.0: resolution: {integrity: sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.13.10: + /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.14.0: resolution: {integrity: sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-create-regexp-features-plugin': 7.12.13_@babel+core@7.14.0 '@babel/helper-plugin-utils': 7.13.0 dev: false - /@babel/preset-env/7.13.12_@babel+core@7.13.10: - resolution: {integrity: sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA==} + /@babel/preset-env/7.14.1_@babel+core@7.14.0: + resolution: {integrity: sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.13.12 - '@babel/core': 7.13.10 - '@babel/helper-compilation-targets': 7.13.10_@babel+core@7.13.10 + '@babel/compat-data': 7.14.0 + '@babel/core': 7.14.0 + '@babel/helper-compilation-targets': 7.13.16_@babel+core@7.14.0 '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-validator-option': 7.12.17 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.13.12_@babel+core@7.13.10 - '@babel/plugin-proposal-async-generator-functions': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-class-properties': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-proposal-dynamic-import': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-proposal-json-strings': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-logical-assignment-operators': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-proposal-object-rest-spread': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-optional-catch-binding': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-proposal-optional-chaining': 7.13.12_@babel+core@7.13.10 - '@babel/plugin-proposal-private-methods': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.10 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.13.10 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.10 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.10 - '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-arrow-functions': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-async-to-generator': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-block-scoping': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-classes': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-computed-properties': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-destructuring': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-for-of': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-modules-amd': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-modules-commonjs': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-transform-modules-systemjs': 7.13.8_@babel+core@7.13.10 - '@babel/plugin-transform-modules-umd': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-regenerator': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-spread': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-template-literals': 7.13.0_@babel+core@7.13.10 - '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.13.10 - '@babel/preset-modules': 0.1.4_@babel+core@7.13.10 - '@babel/types': 7.13.12 - babel-plugin-polyfill-corejs2: 0.1.10_@babel+core@7.13.10 - babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.13.10 - babel-plugin-polyfill-regenerator: 0.1.6_@babel+core@7.13.10 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.13.12_@babel+core@7.14.0 + '@babel/plugin-proposal-async-generator-functions': 7.13.15_@babel+core@7.14.0 + '@babel/plugin-proposal-class-properties': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-proposal-class-static-block': 7.13.11_@babel+core@7.14.0 + '@babel/plugin-proposal-dynamic-import': 7.13.8_@babel+core@7.14.0 + '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-proposal-json-strings': 7.13.8_@babel+core@7.14.0 + '@babel/plugin-proposal-logical-assignment-operators': 7.13.8_@babel+core@7.14.0 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.13.8_@babel+core@7.14.0 + '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-proposal-object-rest-spread': 7.13.8_@babel+core@7.14.0 + '@babel/plugin-proposal-optional-catch-binding': 7.13.8_@babel+core@7.14.0 + '@babel/plugin-proposal-optional-chaining': 7.13.12_@babel+core@7.14.0 + '@babel/plugin-proposal-private-methods': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-proposal-private-property-in-object': 7.14.0_@babel+core@7.14.0 + '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.14.0 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-syntax-class-static-block': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.14.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.14.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.14.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.0_@babel+core@7.14.0 + '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-arrow-functions': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-async-to-generator': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-block-scoping': 7.14.1_@babel+core@7.14.0 + '@babel/plugin-transform-classes': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-computed-properties': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-destructuring': 7.13.17_@babel+core@7.14.0 + '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-for-of': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-modules-amd': 7.14.0_@babel+core@7.14.0 + '@babel/plugin-transform-modules-commonjs': 7.14.0_@babel+core@7.14.0 + '@babel/plugin-transform-modules-systemjs': 7.13.8_@babel+core@7.14.0 + '@babel/plugin-transform-modules-umd': 7.14.0_@babel+core@7.14.0 + '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-regenerator': 7.13.15_@babel+core@7.14.0 + '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-spread': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-template-literals': 7.13.0_@babel+core@7.14.0 + '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.14.0 + '@babel/preset-modules': 0.1.4_@babel+core@7.14.0 + '@babel/types': 7.14.1 + babel-plugin-polyfill-corejs2: 0.2.0_@babel+core@7.14.0 + babel-plugin-polyfill-corejs3: 0.2.0_@babel+core@7.14.0 + babel-plugin-polyfill-regenerator: 0.2.0_@babel+core@7.14.0 core-js-compat: 3.9.1 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: false - /@babel/preset-modules/0.1.4_@babel+core@7.13.10: + /@babel/preset-modules/0.1.4_@babel+core@7.14.0: resolution: {integrity: sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 '@babel/helper-plugin-utils': 7.13.0 - '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.13.10 - '@babel/types': 7.13.12 + '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.14.0 + '@babel/types': 7.14.1 esutils: 2.0.3 dev: false - /@babel/preset-react/7.12.13_@babel+core@7.13.10: - resolution: {integrity: sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==} + /@babel/preset-react/7.13.13_@babel+core@7.14.0: + resolution: {integrity: sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-transform-react-display-name': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-react-jsx': 7.12.13_@babel+core@7.13.10 - '@babel/plugin-transform-react-jsx-development': 7.12.12_@babel+core@7.13.10 - '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-validator-option': 7.12.17 + '@babel/plugin-transform-react-display-name': 7.12.13_@babel+core@7.14.0 + '@babel/plugin-transform-react-jsx': 7.13.12_@babel+core@7.14.0 + '@babel/plugin-transform-react-jsx-development': 7.12.17_@babel+core@7.14.0 + '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.14.0 dev: false - /@babel/register/7.13.8_@babel+core@7.13.10: + /@babel/register/7.13.8_@babel+core@7.14.0: resolution: {integrity: sha512-yCVtABcmvQjRsX2elcZFUV5Q5kDDpHdtXKKku22hNDma60lYuhKmtp1ykZ/okRCPLT2bR5S+cA1kvtBdAFlDTQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 + '@babel/core': 7.14.0 find-cache-dir: 2.1.0 lodash: 4.17.21 make-dir: 2.1.0 @@ -1112,62 +1168,29 @@ packages: resolution: {integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==} dependencies: '@babel/code-frame': 7.12.13 - '@babel/parser': 7.13.11 - '@babel/types': 7.13.0 + '@babel/parser': 7.14.1 + '@babel/types': 7.14.1 - /@babel/traverse/7.13.0: - resolution: {integrity: sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==} + /@babel/traverse/7.14.0: + resolution: {integrity: sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==} dependencies: '@babel/code-frame': 7.12.13 - '@babel/generator': 7.13.9 + '@babel/generator': 7.14.1 '@babel/helper-function-name': 7.12.13 '@babel/helper-split-export-declaration': 7.12.13 - '@babel/parser': 7.13.11 - '@babel/types': 7.13.0 + '@babel/parser': 7.14.1 + '@babel/types': 7.14.1 debug: 4.3.1 globals: 11.12.0 - lodash: 4.17.20 transitivePeerDependencies: - supports-color - /@babel/types/7.12.13: - resolution: {integrity: sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==} - dependencies: - '@babel/helper-validator-identifier': 7.12.11 - lodash: 4.17.20 - to-fast-properties: 2.0.0 - - /@babel/types/7.13.0: - resolution: {integrity: sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==} - dependencies: - '@babel/helper-validator-identifier': 7.12.11 - lodash: 4.17.20 - to-fast-properties: 2.0.0 - - /@babel/types/7.13.12: - resolution: {integrity: sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==} + /@babel/types/7.14.1: + resolution: {integrity: sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==} dependencies: - '@babel/helper-validator-identifier': 7.12.11 - lodash: 4.17.21 + '@babel/helper-validator-identifier': 7.14.0 to-fast-properties: 2.0.0 - /@eslint/eslintrc/0.4.0: - resolution: {integrity: sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.1 - espree: 7.3.1 - globals: 12.4.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - js-yaml: 3.14.1 - minimatch: 3.0.4 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/eslintrc/0.4.1: resolution: {integrity: sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==} engines: {node: ^10.12.0 || >=12.0.0} @@ -1219,8 +1242,8 @@ packages: '@types/node': 14.14.35 dev: true - /@types/jasmine/3.7.1: - resolution: {integrity: sha512-MP1bcwS0MXQSKPBd20wv0rqF+GOfHTchz4mKFkS4ajAmz2oYwhOpSE9FPe611TOOarA061itZwUQUYRI5mPJsA==} + /@types/jasmine/3.7.2: + resolution: {integrity: sha512-w5Zc9pSwxlr1ne+froeIceYbrh0a2Us+0kTaX6JA0N7nPh+yv1zN10LyDMKwnT0x2AbIDGlrD1cv6plVjfCcZw==} dev: true /@types/json-schema/7.0.7: @@ -1278,8 +1301,8 @@ packages: resolution: {integrity: sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==} dev: true - /@typescript-eslint/eslint-plugin/4.22.0_4071adfaed07129e5a837ca668ea3c94: - resolution: {integrity: sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==} + /@typescript-eslint/eslint-plugin/4.23.0_985d30fb23f162c565c6278df78ebb3b: + resolution: {integrity: sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: '@typescript-eslint/parser': ^4.0.0 @@ -1289,11 +1312,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.22.0_eslint@7.25.0+typescript@4.2.3 - '@typescript-eslint/parser': 4.22.0_eslint@7.25.0+typescript@4.2.3 - '@typescript-eslint/scope-manager': 4.22.0 + '@typescript-eslint/experimental-utils': 4.23.0_eslint@7.26.0+typescript@4.2.3 + '@typescript-eslint/parser': 4.23.0_eslint@7.26.0+typescript@4.2.3 + '@typescript-eslint/scope-manager': 4.23.0 debug: 4.3.1 - eslint: 7.25.0 + eslint: 7.26.0 functional-red-black-tree: 1.0.1 lodash: 4.17.21 regexpp: 3.1.0 @@ -1304,17 +1327,17 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/4.22.0_eslint@7.25.0+typescript@4.2.3: - resolution: {integrity: sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==} + /@typescript-eslint/experimental-utils/4.23.0_eslint@7.26.0+typescript@4.2.3: + resolution: {integrity: sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: '*' dependencies: '@types/json-schema': 7.0.7 - '@typescript-eslint/scope-manager': 4.22.0 - '@typescript-eslint/types': 4.22.0 - '@typescript-eslint/typescript-estree': 4.22.0_typescript@4.2.3 - eslint: 7.25.0 + '@typescript-eslint/scope-manager': 4.23.0 + '@typescript-eslint/types': 4.23.0 + '@typescript-eslint/typescript-estree': 4.23.0_typescript@4.2.3 + eslint: 7.26.0 eslint-scope: 5.1.1 eslint-utils: 2.1.0 transitivePeerDependencies: @@ -1322,8 +1345,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser/4.22.0_eslint@7.25.0+typescript@4.2.3: - resolution: {integrity: sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==} + /@typescript-eslint/parser/4.23.0_eslint@7.26.0+typescript@4.2.3: + resolution: {integrity: sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -1332,31 +1355,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 4.22.0 - '@typescript-eslint/types': 4.22.0 - '@typescript-eslint/typescript-estree': 4.22.0_typescript@4.2.3 + '@typescript-eslint/scope-manager': 4.23.0 + '@typescript-eslint/types': 4.23.0 + '@typescript-eslint/typescript-estree': 4.23.0_typescript@4.2.3 debug: 4.3.1 - eslint: 7.25.0 + eslint: 7.26.0 typescript: 4.2.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/4.22.0: - resolution: {integrity: sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==} + /@typescript-eslint/scope-manager/4.23.0: + resolution: {integrity: sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dependencies: - '@typescript-eslint/types': 4.22.0 - '@typescript-eslint/visitor-keys': 4.22.0 + '@typescript-eslint/types': 4.23.0 + '@typescript-eslint/visitor-keys': 4.23.0 dev: true - /@typescript-eslint/types/4.22.0: - resolution: {integrity: sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==} + /@typescript-eslint/types/4.23.0: + resolution: {integrity: sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true - /@typescript-eslint/typescript-estree/4.22.0_typescript@4.2.3: - resolution: {integrity: sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==} + /@typescript-eslint/typescript-estree/4.23.0_typescript@4.2.3: + resolution: {integrity: sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: typescript: '*' @@ -1364,8 +1387,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 4.22.0 - '@typescript-eslint/visitor-keys': 4.22.0 + '@typescript-eslint/types': 4.23.0 + '@typescript-eslint/visitor-keys': 4.23.0 debug: 4.3.1 globby: 11.0.2 is-glob: 4.0.1 @@ -1376,11 +1399,11 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys/4.22.0: - resolution: {integrity: sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==} + /@typescript-eslint/visitor-keys/4.23.0: + resolution: {integrity: sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dependencies: - '@typescript-eslint/types': 4.22.0 + '@typescript-eslint/types': 4.23.0 eslint-visitor-keys: 2.0.0 dev: true @@ -1588,38 +1611,38 @@ packages: object.assign: 4.1.2 dev: false - /babel-plugin-polyfill-corejs2/0.1.10_@babel+core@7.13.10: - resolution: {integrity: sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==} + /babel-plugin-polyfill-corejs2/0.2.0_@babel+core@7.14.0: + resolution: {integrity: sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.13.12 - '@babel/core': 7.13.10 - '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 + '@babel/compat-data': 7.14.0 + '@babel/core': 7.14.0 + '@babel/helper-define-polyfill-provider': 0.2.0_@babel+core@7.14.0 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: false - /babel-plugin-polyfill-corejs3/0.1.7_@babel+core@7.13.10: - resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==} + /babel-plugin-polyfill-corejs3/0.2.0_@babel+core@7.14.0: + resolution: {integrity: sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-define-polyfill-provider': 0.2.0_@babel+core@7.14.0 core-js-compat: 3.9.1 transitivePeerDependencies: - supports-color dev: false - /babel-plugin-polyfill-regenerator/0.1.6_@babel+core@7.13.10: - resolution: {integrity: sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==} + /babel-plugin-polyfill-regenerator/0.2.0_@babel+core@7.14.0: + resolution: {integrity: sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.13.10 - '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.13.10 + '@babel/core': 7.14.0 + '@babel/helper-define-polyfill-provider': 0.2.0_@babel+core@7.14.0 transitivePeerDependencies: - supports-color dev: false @@ -1963,10 +1986,6 @@ packages: resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} dev: true - /domelementtype/2.1.0: - resolution: {integrity: sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==} - dev: true - /domelementtype/2.2.0: resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} dev: true @@ -2128,7 +2147,7 @@ packages: resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} engines: {node: '>=0.8.0'} - /eslint-config-airbnb-base/14.2.1_100fce8e371568eec2fee09e99309cce: + /eslint-config-airbnb-base/14.2.1_05d4fb7044661160135c97642add2911: resolution: {integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==} engines: {node: '>= 6'} peerDependencies: @@ -2136,13 +2155,13 @@ packages: eslint-plugin-import: ^2.22.1 dependencies: confusing-browser-globals: 1.0.10 - eslint: 7.25.0 - eslint-plugin-import: 2.22.1_eslint@7.25.0 + eslint: 7.26.0 + eslint-plugin-import: 2.22.1_eslint@7.26.0 object.assign: 4.1.2 object.entries: 1.1.3 dev: true - /eslint-config-airbnb/18.2.1_62de3eb514072adbed55d78ddf86a9cc: + /eslint-config-airbnb/18.2.1_b061a0696dfc4515a50173ff77a84ecd: resolution: {integrity: sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==} engines: {node: '>= 6'} peerDependencies: @@ -2152,48 +2171,48 @@ packages: eslint-plugin-react: ^7.21.5 eslint-plugin-react-hooks: ^4 || ^3 || ^2.3.0 || ^1.7.0 dependencies: - eslint: 7.25.0 - eslint-config-airbnb-base: 14.2.1_100fce8e371568eec2fee09e99309cce - eslint-plugin-import: 2.22.1_eslint@7.25.0 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.25.0 - eslint-plugin-react: 7.23.2_eslint@7.25.0 + eslint: 7.26.0 + eslint-config-airbnb-base: 14.2.1_05d4fb7044661160135c97642add2911 + eslint-plugin-import: 2.22.1_eslint@7.26.0 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.26.0 + eslint-plugin-react: 7.23.2_eslint@7.26.0 object.assign: 4.1.2 object.entries: 1.1.3 dev: true - /eslint-config-atomic/1.14.3: - resolution: {integrity: sha512-VYjUvvRX3MzQXI6c6NONdWEX1zU+VoFzJ9MsOBwG8ZF2wXbWX7DdLgVW+EdgGpopokAjh1FcswOiUX8oKjz7yg==} + /eslint-config-atomic/1.14.4: + resolution: {integrity: sha512-3FtEVTMdwnP3890US3AgVjZuaVHvfcmkB12CnXkIsUC3Rs9muiFXkKb6IUg7rZ7i0FMazV1ylbKfhc+sVWCmFQ==} dependencies: - '@babel/core': 7.13.10 - '@babel/eslint-parser': 7.13.14_1a3bc1182d5c5133083fda04736a15b5 - '@typescript-eslint/eslint-plugin': 4.22.0_4071adfaed07129e5a837ca668ea3c94 - '@typescript-eslint/parser': 4.22.0_eslint@7.25.0+typescript@4.2.3 + '@babel/core': 7.14.0 + '@babel/eslint-parser': 7.13.14_@babel+core@7.14.0+eslint@7.26.0 + '@typescript-eslint/eslint-plugin': 4.23.0_985d30fb23f162c565c6278df78ebb3b + '@typescript-eslint/parser': 4.23.0_eslint@7.26.0+typescript@4.2.3 coffeescript: 1.12.7 - eslint: 7.25.0 - eslint-config-prettier: 8.3.0_eslint@7.25.0 - eslint-plugin-coffee: 0.1.14_eslint@7.25.0 + eslint: 7.26.0 + eslint-config-prettier: 8.3.0_eslint@7.26.0 + eslint-plugin-coffee: 0.1.14_eslint@7.26.0 eslint-plugin-html: 6.1.2 - eslint-plugin-import: 2.22.1_eslint@7.25.0 - eslint-plugin-json: 2.1.2 - eslint-plugin-node: 11.1.0_eslint@7.25.0 + eslint-plugin-import: 2.22.1_eslint@7.26.0 + eslint-plugin-json: 3.0.0 + eslint-plugin-node: 11.1.0_eslint@7.26.0 eslint-plugin-only-warn: 1.0.2 eslint-plugin-optimize-regex: 1.2.0 - eslint-plugin-react: 7.23.2_eslint@7.25.0 + eslint-plugin-react: 7.23.2_eslint@7.26.0 eslint-plugin-yaml: 0.4.2 - prettier: 2.2.1 + prettier: 2.3.0 typescript: 4.2.3 transitivePeerDependencies: - eslint-plugin-react-hooks - supports-color dev: true - /eslint-config-prettier/8.3.0_eslint@7.25.0: + /eslint-config-prettier/8.3.0_eslint@7.26.0: resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 7.25.0 + eslint: 7.26.0 dev: true /eslint-import-resolver-node/0.3.4: @@ -2211,7 +2230,7 @@ packages: pkg-dir: 2.0.0 dev: true - /eslint-plugin-coffee/0.1.14_eslint@7.25.0: + /eslint-plugin-coffee/0.1.14_eslint@7.26.0: resolution: {integrity: sha512-JwBminIlHz7XqZ8kbpNHDMG9y/tsHX8mwMZBxZaAlguyXIfYTrnY/nc+6+/X/DXfA//zDCs/lNARDciW3iJCOQ==} peerDependencies: eslint: '>=6.0.0' @@ -2221,13 +2240,13 @@ packages: babylon: 7.0.0-beta.47 coffeescript: 2.5.1 doctrine: 2.1.0 - eslint: 7.25.0 - eslint-config-airbnb: 18.2.1_62de3eb514072adbed55d78ddf86a9cc - eslint-config-airbnb-base: 14.2.1_100fce8e371568eec2fee09e99309cce - eslint-plugin-import: 2.22.1_eslint@7.25.0 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.25.0 - eslint-plugin-react: 7.23.2_eslint@7.25.0 - eslint-plugin-react-native: 3.10.0_eslint@7.25.0 + eslint: 7.26.0 + eslint-config-airbnb: 18.2.1_b061a0696dfc4515a50173ff77a84ecd + eslint-config-airbnb-base: 14.2.1_05d4fb7044661160135c97642add2911 + eslint-plugin-import: 2.22.1_eslint@7.26.0 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.26.0 + eslint-plugin-react: 7.23.2_eslint@7.26.0 + eslint-plugin-react-native: 3.10.0_eslint@7.26.0 eslint-scope: 3.7.3 eslint-utils: 1.4.3 eslint-visitor-keys: 1.3.0 @@ -2238,13 +2257,13 @@ packages: - supports-color dev: true - /eslint-plugin-es/3.0.1_eslint@7.25.0: + /eslint-plugin-es/3.0.1_eslint@7.26.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 7.25.0 + eslint: 7.26.0 eslint-utils: 2.1.0 regexpp: 3.1.0 dev: true @@ -2255,7 +2274,7 @@ packages: htmlparser2: 6.1.0 dev: true - /eslint-plugin-import/2.22.1_eslint@7.25.0: + /eslint-plugin-import/2.22.1_eslint@7.26.0: resolution: {integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==} engines: {node: '>=4'} peerDependencies: @@ -2266,7 +2285,7 @@ packages: contains-path: 0.1.0 debug: 2.6.9 doctrine: 1.5.0 - eslint: 7.25.0 + eslint: 7.26.0 eslint-import-resolver-node: 0.3.4 eslint-module-utils: 2.6.0 has: 1.0.3 @@ -2277,15 +2296,15 @@ packages: tsconfig-paths: 3.9.0 dev: true - /eslint-plugin-json/2.1.2: - resolution: {integrity: sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q==} - engines: {node: '>=8.10.0'} + /eslint-plugin-json/3.0.0: + resolution: {integrity: sha512-7qoY5pbzBLEttJWy4/cDtULK3EKglgIwfXk5Yqp3StJaQ4Bu4Jmp0n2fJN5vBe/hLGaECupq3edn1j/k7O0bFA==} + engines: {node: '>=12.0'} dependencies: lodash: 4.17.21 - vscode-json-languageservice: 3.11.0 + vscode-json-languageservice: 4.1.3 dev: true - /eslint-plugin-jsx-a11y/6.4.1_eslint@7.25.0: + /eslint-plugin-jsx-a11y/6.4.1_eslint@7.26.0: resolution: {integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==} engines: {node: '>=4.0'} peerDependencies: @@ -2299,20 +2318,20 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.6 emoji-regex: 9.2.2 - eslint: 7.25.0 + eslint: 7.26.0 has: 1.0.3 jsx-ast-utils: 3.2.0 language-tags: 1.0.5 dev: true - /eslint-plugin-node/11.1.0_eslint@7.25.0: + /eslint-plugin-node/11.1.0_eslint@7.26.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 7.25.0 - eslint-plugin-es: 3.0.1_eslint@7.25.0 + eslint: 7.26.0 + eslint-plugin-es: 3.0.1_eslint@7.26.0 eslint-utils: 2.1.0 ignore: 5.1.8 minimatch: 3.0.4 @@ -2336,19 +2355,19 @@ packages: resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==} dev: true - /eslint-plugin-react-native/3.10.0_eslint@7.25.0: + /eslint-plugin-react-native/3.10.0_eslint@7.26.0: resolution: {integrity: sha512-4f5+hHYYq5wFhB5eptkPEAR7FfvqbS7AzScUOANfAMZtYw5qgnCxRq45bpfBaQF+iyPMim5Q8pubcpvLv75NAg==} peerDependencies: eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 dependencies: - '@babel/traverse': 7.13.0 - eslint: 7.25.0 + '@babel/traverse': 7.14.0 + eslint: 7.26.0 eslint-plugin-react-native-globals: 0.1.2 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-react/7.23.2_eslint@7.25.0: + /eslint-plugin-react/7.23.2_eslint@7.26.0: resolution: {integrity: sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==} engines: {node: '>=4'} peerDependencies: @@ -2357,7 +2376,7 @@ packages: array-includes: 3.1.3 array.prototype.flatmap: 1.2.4 doctrine: 2.1.0 - eslint: 7.25.0 + eslint: 7.26.0 has: 1.0.3 jsx-ast-utils: 3.2.0 minimatch: 3.0.4 @@ -2416,52 +2435,6 @@ packages: engines: {node: '>=10'} dev: true - /eslint/7.25.0: - resolution: {integrity: sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==} - engines: {node: ^10.12.0 || >=12.0.0} - hasBin: true - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.0 - ajv: 6.12.6 - chalk: 4.1.0 - cross-spawn: 7.0.3 - debug: 4.3.1 - doctrine: 3.0.0 - enquirer: 2.3.6 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.0.0 - espree: 7.3.1 - esquery: 1.4.0 - esutils: 2.0.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.7.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.1 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash: 4.17.21 - minimatch: 3.0.4 - natural-compare: 1.4.0 - optionator: 0.9.1 - progress: 2.0.3 - regexpp: 3.1.0 - semver: 7.3.4 - strip-ansi: 6.0.0 - strip-json-comments: 3.1.1 - table: 6.0.7 - text-table: 0.2.0 - v8-compile-cache: 2.2.0 - transitivePeerDependencies: - - supports-color - dev: true - /eslint/7.26.0: resolution: {integrity: sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2795,7 +2768,7 @@ packages: /htmlparser2/6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} dependencies: - domelementtype: 2.1.0 + domelementtype: 2.2.0 domhandler: 4.2.0 domutils: 2.6.0 entities: 2.2.0 @@ -3112,9 +3085,6 @@ packages: resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} dev: false - /lodash/4.17.20: - resolution: {integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==} - /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -3480,6 +3450,12 @@ packages: hasBin: true dev: true + /prettier/2.3.0: + resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + /progress/2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -3965,8 +3941,8 @@ packages: resolution: {integrity: sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==} dev: false - /underscore/1.12.1: - resolution: {integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==} + /underscore/1.13.1: + resolution: {integrity: sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==} dev: false /unicode-canonical-property-names-ecmascript/1.0.4: @@ -4032,30 +4008,32 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vscode-json-languageservice/3.11.0: - resolution: {integrity: sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==} + /vscode-json-languageservice/4.1.3: + resolution: {integrity: sha512-m/wUEt4zgCNUcvGmPr1ELo+ROQNKBgASpdOOAEpcSMwYE/6GzULZ1KfBhbX9or7qnC4E0oX+wwW+lrN3EUWCgw==} + engines: {npm: '>=7.0.0'} dependencies: jsonc-parser: 3.0.0 + minimatch: 3.0.4 vscode-languageserver-textdocument: 1.0.1 - vscode-languageserver-types: 3.16.0-next.2 + vscode-languageserver-types: 3.16.0 vscode-nls: 5.0.0 - vscode-uri: 2.1.2 + vscode-uri: 3.0.2 dev: true /vscode-languageserver-textdocument/1.0.1: resolution: {integrity: sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==} dev: true - /vscode-languageserver-types/3.16.0-next.2: - resolution: {integrity: sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==} + /vscode-languageserver-types/3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} dev: true /vscode-nls/5.0.0: resolution: {integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==} dev: true - /vscode-uri/2.1.2: - resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + /vscode-uri/3.0.2: + resolution: {integrity: sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==} dev: true /which-boxed-primitive/1.0.2: From 75bd9f5b0d978aadf10c55c9c0a7759d970bd96d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 10 May 2021 22:14:00 -0500 Subject: [PATCH 387/410] fix: fix kotlin for newer Kotlin versions (#2468) changed -d to -o that worked for me in the cmd before by itself and is the new way from https://kotlinlang.org/docs/native-command-line-compiler.html#compile-the-code-from-the-console Co-Authored-By: weather-tracker <34795700+weather-tracker@users.noreply.github.com> --- lib/grammars/java.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 0294f02e..09126d65 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -33,7 +33,7 @@ export const Java = { function KotlinArgs(filepath, jar) { const jarNew = (jar !== null ? jar : path.basename(filepath)).replace(/\.kt$/, ".jar") - const cmd = `kotlinc '${filepath}' -include-runtime -d ${jarNew} && java -jar ${jarNew}` + const cmd = `kotlinc '${filepath}' -include-runtime -o ${jarNew} && java -jar ${jarNew}` return GrammarUtils.formatArgs(cmd) } From 03cac354c327b29fde6395226ca8968e39b95fc9 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 10 May 2021 22:15:15 -0500 Subject: [PATCH 388/410] chore: remove direct prettier and eslint dependencies --- package.json | 2 -- pnpm-lock.yaml | 4 ---- 2 files changed, 6 deletions(-) diff --git a/package.json b/package.json index a220012c..bd964d38 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,7 @@ "@types/temp": "^0.9.0", "@types/underscore": "^1.11.2", "@types/uuid": "^8.3.0", - "eslint": "^7.26.0", "eslint-config-atomic": "^1.14.4", - "prettier": "^2.3.0", "prettier-config-atomic": "^2.0.4" }, "activationCommands": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e58b5c9c..23e87e28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,9 +16,7 @@ specifiers: atom-message-panel: 1.3.1 atom-space-pen-views-plus: ^3.0.4 coffeescript: ^2 - eslint: ^7.26.0 eslint-config-atomic: ^1.14.4 - prettier: ^2.3.0 prettier-config-atomic: ^2.0.4 rimraf: ^3.0.2 strip-ansi: ^6.0.0 @@ -51,9 +49,7 @@ devDependencies: '@types/temp': 0.9.0 '@types/underscore': 1.11.2 '@types/uuid': 8.3.0 - eslint: 7.26.0 eslint-config-atomic: 1.14.4 - prettier: 2.3.0 prettier-config-atomic: 2.0.4 packages: From 6fa1356716820f0aa8ef108fcea5696e83be1b52 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 10 May 2021 22:16:03 -0500 Subject: [PATCH 389/410] chore: pin strip-ansi --- package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index bd964d38..2998045e 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "atom-message-panel": "1.3.1", "atom-space-pen-views-plus": "^3.0.4", "rimraf": "^3.0.2", - "strip-ansi": "^6.0.0", + "strip-ansi": "<7.0.0", "temp": "^0.9.4", "underscore": "^1.13.1", "uuid": "^8.3.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 23e87e28..aa550cd1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ specifiers: eslint-config-atomic: ^1.14.4 prettier-config-atomic: ^2.0.4 rimraf: ^3.0.2 - strip-ansi: ^6.0.0 + strip-ansi: <7.0.0 temp: ^0.9.4 underscore: ^1.13.1 uuid: ^8.3.2 From a67221493d4919e2b63c666a52cc5ea5b33c6161 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 11 May 2021 03:23:08 +0000 Subject: [PATCH 390/410] chore(release): 3.31.2 [skip ci] --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0081bcd9..42a5b745 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [3.31.2](https://github.com/atom-ide-community/atom-script/compare/v3.31.1...v3.31.2) (2021-05-11) + + +### Bug Fixes + +* fix kotlin for newer Kotlin versions ([#2468](https://github.com/atom-ide-community/atom-script/issues/2468)) ([75bd9f5](https://github.com/atom-ide-community/atom-script/commit/75bd9f5b0d978aadf10c55c9c0a7759d970bd96d)) +* update dependencies ([16a07fd](https://github.com/atom-ide-community/atom-script/commit/16a07fdd44f1ad5499092ac444fef01c88d184ee)) + ## [3.31.1](https://github.com/atom-ide-community/atom-script/compare/v3.31.0...v3.31.1) (2021-03-23) diff --git a/package.json b/package.json index 2998045e..0d75164c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.31.1", + "version": "3.31.2", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From eb4700d08d085dec678e94ae9add0afe738f17b4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 10 May 2021 22:23:52 -0500 Subject: [PATCH 391/410] fix: set utf-8 encoding for Python --- lib/grammars/python.js | 13 +++++++++++++ spec/fixtures/issue_1166.py | 1 + 2 files changed, 14 insertions(+) create mode 100644 spec/fixtures/issue_1166.py diff --git a/lib/grammars/python.js b/lib/grammars/python.js index b29f1dae..f6be4b5d 100644 --- a/lib/grammars/python.js +++ b/lib/grammars/python.js @@ -2,10 +2,20 @@ import GrammarUtils from "../grammar-utils" +// https://github.com/atom-community/atom-script/issues/214#issuecomment-418766763 +let encodingSet = false +function setEncoding() { + if (!encodingSet) { + process.env.PYTHONIOENCODING = "utf-8" + encodingSet = true + } +} + export const Python = { "Selection Based": { command: "python", args(context) { + setEncoding() const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code) return ["-u", tmpFile] @@ -15,6 +25,7 @@ export const Python = { "File Based": { command: "python", args({ filepath }) { + setEncoding() return ["-u", filepath] }, }, @@ -26,6 +37,7 @@ export const Sage = { "Selection Based": { command: "sage", args(context) { + setEncoding() const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code) return [tmpFile] @@ -35,6 +47,7 @@ export const Sage = { "File Based": { command: "sage", args({ filepath }) { + setEncoding() return [filepath] }, }, diff --git a/spec/fixtures/issue_1166.py b/spec/fixtures/issue_1166.py new file mode 100644 index 00000000..da2d21e0 --- /dev/null +++ b/spec/fixtures/issue_1166.py @@ -0,0 +1 @@ +print ('汉语/漢語') From 443bf81df6c5df88ebbe74402ea96ad513fb4ee6 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 11 May 2021 03:38:49 +0000 Subject: [PATCH 392/410] chore(release): 3.31.3 [skip ci] --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42a5b745..88da6bd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.31.3](https://github.com/atom-ide-community/atom-script/compare/v3.31.2...v3.31.3) (2021-05-11) + + +### Bug Fixes + +* set utf-8 encoding for Python ([eb4700d](https://github.com/atom-ide-community/atom-script/commit/eb4700d08d085dec678e94ae9add0afe738f17b4)) + ## [3.31.2](https://github.com/atom-ide-community/atom-script/compare/v3.31.1...v3.31.2) (2021-05-11) diff --git a/package.json b/package.json index 0d75164c..3495d8e5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.31.2", + "version": "3.31.3", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 5a61f1ff733d0069bebac3c56f876a8583e11177 Mon Sep 17 00:00:00 2001 From: Manami Hatano Date: Wed, 12 May 2021 12:55:51 +0900 Subject: [PATCH 393/410] Fix Garbled message in non-English Windows Quick fix for the issue #1166, Java build in non-English editions of Window will result garbled message, stdout and stderr displayed. This fix would have further issue: if user's final target deployment would have different encodings from all-UTF-8 setup, (such as "normal" Windows cmd.exe, they normally have ANSI encodings for average users) so testing and evaluating might become more difficult. --- lib/grammars/java.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 09126d65..685ee2e2 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -20,7 +20,7 @@ export const Java = { const classPackages = GrammarUtils.Java.getClassPackage(context) const sourcePath = GrammarUtils.Java.getProjectPath(context) if (windows) { - return [`/c javac -Xlint ${context.filename} && java ${className}`] + return [`/c javac ーJ-Dfile.encoding=UTF-8 -Xlint ${context.filename} && java -Dfile.encoding=UTF-8 ${className}`] } else { return [ "-c", From d73f270b098d0c22144ec9b59c983bf62428f995 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 11 May 2021 23:29:56 -0500 Subject: [PATCH 394/410] fix: fix execution of Java files + support UTF-8 encoding --- examples/HelloWorld.java | 1 + lib/grammars/java.js | 11 +++-------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/examples/HelloWorld.java b/examples/HelloWorld.java index 3b449d9e..ada42c6b 100644 --- a/examples/HelloWorld.java +++ b/examples/HelloWorld.java @@ -1,5 +1,6 @@ class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); + System.out.println("سلام"); } } diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 685ee2e2..1732e7d9 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -19,14 +19,9 @@ export const Java = { const className = GrammarUtils.Java.getClassName(context) const classPackages = GrammarUtils.Java.getClassPackage(context) const sourcePath = GrammarUtils.Java.getProjectPath(context) - if (windows) { - return [`/c javac ーJ-Dfile.encoding=UTF-8 -Xlint ${context.filename} && java -Dfile.encoding=UTF-8 ${className}`] - } else { - return [ - "-c", - `javac -J-Dfile.encoding=UTF-8 -sourcepath '${sourcePath}' -d /tmp '${context.filepath}' && java -Dfile.encoding=UTF-8 -cp /tmp:%CLASSPATH ${classPackages}${className}`, - ] - } + const tempFolder = GrammarUtils.createTempFolder("jar-") + const cmd = `javac -encoding UTF-8 -sourcepath '${sourcePath}' -d '${tempFolder}' '${context.filepath}' && java -D'file.encoding'='UTF-8' -cp '${tempFolder}' ${classPackages}${className}` + return GrammarUtils.formatArgs(cmd) }, }, } From 0e1c38b11531e7d887bc7d29c6c5369f418f2ea8 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 11 May 2021 23:31:30 -0500 Subject: [PATCH 395/410] chore: remove unused parameter --- lib/grammars/java.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 1732e7d9..41b213ce 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -10,8 +10,6 @@ import path from "path" import GrammarUtils from "../grammar-utils" const { command } = GrammarUtils -const windows = GrammarUtils.OperatingSystem.isWindows() - export const Java = { "File Based": { command, From 29fbce7651ec803e3a90ee8cabbc84ace23dc5ec Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 11 May 2021 23:36:02 -0500 Subject: [PATCH 396/410] refactor: JavaArgs function --- lib/grammars/java.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 41b213ce..6b908190 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -10,16 +10,20 @@ import path from "path" import GrammarUtils from "../grammar-utils" const { command } = GrammarUtils +function JavaArgs(sourcePath, filepath, className, classPackages, tempFolder) { + const cmd = `javac -encoding UTF-8 -sourcepath '${sourcePath}' -d '${tempFolder}' '${filepath}' && java -D'file.encoding'='UTF-8' -cp '${tempFolder}' ${classPackages}${className}` + return GrammarUtils.formatArgs(cmd) +} + export const Java = { "File Based": { command, args(context) { + const sourcePath = GrammarUtils.Java.getProjectPath(context) const className = GrammarUtils.Java.getClassName(context) const classPackages = GrammarUtils.Java.getClassPackage(context) - const sourcePath = GrammarUtils.Java.getProjectPath(context) const tempFolder = GrammarUtils.createTempFolder("jar-") - const cmd = `javac -encoding UTF-8 -sourcepath '${sourcePath}' -d '${tempFolder}' '${context.filepath}' && java -D'file.encoding'='UTF-8' -cp '${tempFolder}' ${classPackages}${className}` - return GrammarUtils.formatArgs(cmd) + return JavaArgs(sourcePath, context.filepath, className, classPackages, tempFolder) }, }, } From 85152009948648b8cc702f6d0fd0369f6851b8b4 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 11 May 2021 23:41:56 -0500 Subject: [PATCH 397/410] feat: add selection based Java support --- lib/grammars/java.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 6b908190..6e35279c 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -16,6 +16,18 @@ function JavaArgs(sourcePath, filepath, className, classPackages, tempFolder) { } export const Java = { + "Selection Based": { + command, + args(context) { + const code = context.getCode() + const tmpFile = GrammarUtils.createTempFileWithCode(code, ".java") + const sourcePath = GrammarUtils.Java.getProjectPath(context) + const className = GrammarUtils.Java.getClassName(context) + const classPackages = GrammarUtils.Java.getClassPackage(context) + const tempFolder = GrammarUtils.createTempFolder("jar-") + return JavaArgs(sourcePath, tmpFile, className, classPackages, tempFolder) + }, + }, "File Based": { command, args(context) { From af697fccb275824ede7d98ef1df8bc6b120c624d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 11 May 2021 23:44:43 -0500 Subject: [PATCH 398/410] refactor: move the common parts into JavaArgs function --- lib/grammars/java.js | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index 6e35279c..cb612638 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -10,7 +10,11 @@ import path from "path" import GrammarUtils from "../grammar-utils" const { command } = GrammarUtils -function JavaArgs(sourcePath, filepath, className, classPackages, tempFolder) { +function JavaArgs(filepath, context) { + const sourcePath = GrammarUtils.Java.getProjectPath(context) + const className = GrammarUtils.Java.getClassName(context) + const classPackages = GrammarUtils.Java.getClassPackage(context) + const tempFolder = GrammarUtils.createTempFolder("jar-") const cmd = `javac -encoding UTF-8 -sourcepath '${sourcePath}' -d '${tempFolder}' '${filepath}' && java -D'file.encoding'='UTF-8' -cp '${tempFolder}' ${classPackages}${className}` return GrammarUtils.formatArgs(cmd) } @@ -21,21 +25,13 @@ export const Java = { args(context) { const code = context.getCode() const tmpFile = GrammarUtils.createTempFileWithCode(code, ".java") - const sourcePath = GrammarUtils.Java.getProjectPath(context) - const className = GrammarUtils.Java.getClassName(context) - const classPackages = GrammarUtils.Java.getClassPackage(context) - const tempFolder = GrammarUtils.createTempFolder("jar-") - return JavaArgs(sourcePath, tmpFile, className, classPackages, tempFolder) + return JavaArgs(tmpFile, context) }, }, "File Based": { command, args(context) { - const sourcePath = GrammarUtils.Java.getProjectPath(context) - const className = GrammarUtils.Java.getClassName(context) - const classPackages = GrammarUtils.Java.getClassPackage(context) - const tempFolder = GrammarUtils.createTempFolder("jar-") - return JavaArgs(sourcePath, context.filepath, className, classPackages, tempFolder) + return JavaArgs(context.filepath, context) }, }, } From c7a78bec13fed3f801880046f542c1779ba5d897 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 11 May 2021 23:45:41 -0500 Subject: [PATCH 399/410] chore: remove decaffeinate suggestions [skip ci] --- lib/grammars/java.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index cb612638..eac62878 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -1,11 +1,4 @@ "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 - */ import path from "path" import GrammarUtils from "../grammar-utils" const { command } = GrammarUtils From 91433000d7bd733150c6b05aa22d9c383225d695 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 12 May 2021 04:50:24 +0000 Subject: [PATCH 400/410] chore(release): 3.32.0 [skip ci] --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88da6bd6..013f2f00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [3.32.0](https://github.com/atom-ide-community/atom-script/compare/v3.31.3...v3.32.0) (2021-05-12) + + +### Bug Fixes + +* fix execution of Java files + support UTF-8 encoding ([d73f270](https://github.com/atom-ide-community/atom-script/commit/d73f270b098d0c22144ec9b59c983bf62428f995)) + + +### Features + +* add selection based Java support ([8515200](https://github.com/atom-ide-community/atom-script/commit/85152009948648b8cc702f6d0fd0369f6851b8b4)) + ## [3.31.3](https://github.com/atom-ide-community/atom-script/compare/v3.31.2...v3.31.3) (2021-05-11) diff --git a/package.json b/package.json index 3495d8e5..45bf785c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.31.3", + "version": "3.32.0", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From e730f08d2cc8954a6562fef4e905776585074b63 Mon Sep 17 00:00:00 2001 From: Manami Hatano Date: Thu, 13 May 2021 16:40:34 +0900 Subject: [PATCH 401/410] fix: add xlint and file.encoding to Java (#2471) Co-authored-by: weather-tracker <34795700+weather-tracker@users.noreply.github.com> Co-authored-by: Amin Yahyaabadi * Adding back '-J-Dfile.encoding=UTF-8' for javac so its warning messages are printed in UTF-8 as well as its source files are treated as UTF-8 encoding. * Adding back -Xlint for reporting detailed warning messages for compilers * removing quotation marks around file.encoding and UTF-8 for java command, since java command does not understand quotation marks when it is not removed by the shell (cmd.exe won't interpret that) update for issue #1166 --- lib/grammars/java.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/grammars/java.js b/lib/grammars/java.js index eac62878..de50aaf8 100644 --- a/lib/grammars/java.js +++ b/lib/grammars/java.js @@ -8,7 +8,7 @@ function JavaArgs(filepath, context) { const className = GrammarUtils.Java.getClassName(context) const classPackages = GrammarUtils.Java.getClassPackage(context) const tempFolder = GrammarUtils.createTempFolder("jar-") - const cmd = `javac -encoding UTF-8 -sourcepath '${sourcePath}' -d '${tempFolder}' '${filepath}' && java -D'file.encoding'='UTF-8' -cp '${tempFolder}' ${classPackages}${className}` + const cmd = `javac -encoding UTF-8 -J-Dfile.encoding=UTF-8 -Xlint -sourcepath '${sourcePath}' -d '${tempFolder}' '${filepath}' && java -Dfile.encoding=UTF-8 -cp '${tempFolder}' ${classPackages}${className}` return GrammarUtils.formatArgs(cmd) } From bebccac421edaa290ea1504047adda34d3765c00 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 13 May 2021 07:46:21 +0000 Subject: [PATCH 402/410] chore(release): 3.32.1 [skip ci] --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 013f2f00..d9ac938f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [3.32.1](https://github.com/atom-ide-community/atom-script/compare/v3.32.0...v3.32.1) (2021-05-13) + + +### Bug Fixes + +* add xlint and file.encoding to Java ([#2471](https://github.com/atom-ide-community/atom-script/issues/2471)) ([e730f08](https://github.com/atom-ide-community/atom-script/commit/e730f08d2cc8954a6562fef4e905776585074b63)), closes [#1166](https://github.com/atom-ide-community/atom-script/issues/1166) + # [3.32.0](https://github.com/atom-ide-community/atom-script/compare/v3.31.3...v3.32.0) (2021-05-12) diff --git a/package.json b/package.json index 45bf785c..a62a7cf0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.32.0", + "version": "3.32.1", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From 51132f06e2f4811e1a4aba226f0b400780043042 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 15 May 2021 08:57:29 -0500 Subject: [PATCH 403/410] fix: export gnuplot --- examples/gnuplot.gp | 14 ++++++++++++++ lib/grammars/doc.js | 1 + 2 files changed, 15 insertions(+) create mode 100644 examples/gnuplot.gp diff --git a/examples/gnuplot.gp b/examples/gnuplot.gp new file mode 100644 index 00000000..6f59dedf --- /dev/null +++ b/examples/gnuplot.gp @@ -0,0 +1,14 @@ +reset +set term pdfcairo color dashed enhanced size 15 cm, 10 cm + +set output "gnuplot.pdf" + +set key noauto bottom +set xlabel "x" +set ylabel "f(x)" + +f(x) = x/(1 + x) + +plot f(x) w l lw 2 + +set output diff --git a/lib/grammars/doc.js b/lib/grammars/doc.js index 436c8af5..aca7949f 100644 --- a/lib/grammars/doc.js +++ b/lib/grammars/doc.js @@ -103,6 +103,7 @@ const SCSS = Sass const Docs = { DOT, GNUPlot: gnuplot, + gnuplot, "Graphviz (DOT)": Graphviz, HTML, LaTeX, From 0c3a7c87f7924d02fdda0bbdbd36f69af5f89f41 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 15 May 2021 14:02:56 +0000 Subject: [PATCH 404/410] chore(release): 3.32.2 [skip ci] --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9ac938f..812f3cdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [3.32.2](https://github.com/atom-ide-community/atom-script/compare/v3.32.1...v3.32.2) (2021-05-15) + + +### Bug Fixes + +* export gnuplot ([51132f0](https://github.com/atom-ide-community/atom-script/commit/51132f06e2f4811e1a4aba226f0b400780043042)) +* fix gnuplot command was not exported ([#2474](https://github.com/atom-ide-community/atom-script/issues/2474)) ([3f3cc10](https://github.com/atom-ide-community/atom-script/commit/3f3cc1036a18e729593b5b39b27feabed54db90f)) + ## [3.32.1](https://github.com/atom-ide-community/atom-script/compare/v3.32.0...v3.32.1) (2021-05-13) diff --git a/package.json b/package.json index a62a7cf0..7a1c4946 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "script", "main": "./lib/script", - "version": "3.32.1", + "version": "3.32.2", "private": false, "description": "Run code in Atom!", "author": "Kyle Kelley ", From cc5cfa17338f58b06c4894e2e954caeb61b17270 Mon Sep 17 00:00:00 2001 From: aminya Date: Wed, 21 Jul 2021 17:47:46 -0500 Subject: [PATCH 405/410] chore: sync with the repository template --- .github/renovate.json | 24 +++++++++++ .github/workflows/bump_deps.yml | 70 --------------------------------- 2 files changed, 24 insertions(+), 70 deletions(-) create mode 100644 .github/renovate.json delete mode 100644 .github/workflows/bump_deps.yml diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 00000000..cd5e7695 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,24 @@ +{ + "schedule": ["every weekend"], + "labels": ["dependencies"], + "separateMajorMinor": "false", + "packageRules": [ + { + "matchDepTypes": ["devDependencies"], + "matchUpdateTypes": ["major", "minor", "patch", "pin", "digest", "lockFileMaintenance", "rollback", "bump"], + "groupName": "devDependencies", + "semanticCommitType": "chore", + "automerge": true + }, + { + "matchDepTypes": ["dependencies"], + "matchUpdateTypes": ["major", "minor", "patch", "pin", "digest", "lockFileMaintenance", "rollback", "bump"], + "groupName": "dependencies", + "semanticCommitType": "fix" + } + ], + "postUpgradeTasks": { + "commands": ["pnpm install"], + "fileFilters": ["pnpm-lock.yaml"] + } +} diff --git a/.github/workflows/bump_deps.yml b/.github/workflows/bump_deps.yml deleted file mode 100644 index 8b62dda0..00000000 --- a/.github/workflows/bump_deps.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Bump_Dependencies - -on: - schedule: - - cron: "5 8 * * Sun" # 8:05 every Sunday - -jobs: - Bump_Dependencies: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: "12" - - name: Setup PNPM - uses: pnpm/action-setup@master - with: - version: latest - - - name: setup npm-check-updates - run: pnpm install -g npm-check-updates - - - run: | - ncu -u --dep prod - pnpm install - - - uses: tibdex/github-app-token@v1 - id: generate-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: peter-evans/create-pull-request@v3 - with: - token: ${{ steps.generate-token.outputs.token }} - commit-message: "fix: update Dependencies" - title: "fix: update Dependencies" - labels: Dependencies - branch: "Bump_Dependencies" - - Bump_devDependencies: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: "12" - - name: Setup PNPM - uses: pnpm/action-setup@master - with: - version: latest - - - name: setup npm-check-updates - run: pnpm install -g npm-check-updates - - - run: | - ncu -u --dep dev - pnpm install - - - uses: tibdex/github-app-token@v1 - id: generate-token - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - - uses: peter-evans/create-pull-request@v3 - with: - token: ${{ steps.generate-token.outputs.token }} - commit-message: "chore: update devDependencies" - title: "chore: update devDependencies" - labels: Dependencies - branch: "Bump_devDependencies" From f258bd194971bf55a81b160556cd5819a3430256 Mon Sep 17 00:00:00 2001 From: aminya Date: Wed, 21 Jul 2021 17:59:40 -0500 Subject: [PATCH 406/410] chore: sync with the repository template --- .github/renovate.json | 6 +----- pnpm-workspace.yaml | 2 ++ 2 files changed, 3 insertions(+), 5 deletions(-) create mode 100644 pnpm-workspace.yaml diff --git a/.github/renovate.json b/.github/renovate.json index cd5e7695..7b36e667 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -16,9 +16,5 @@ "groupName": "dependencies", "semanticCommitType": "fix" } - ], - "postUpgradeTasks": { - "commands": ["pnpm install"], - "fileFilters": ["pnpm-lock.yaml"] - } + ] } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..ccbac807 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - "." From d36a9394c56eb0900a4e2d17589f69c1545d369b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 24 Jul 2021 00:19:11 +0000 Subject: [PATCH 407/410] chore(deps): update dependency @types/node to v16 --- package.json | 2 +- pnpm-lock.yaml | 106 ++++++++++++++++++++++++------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 7a1c4946..4476342c 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "devDependencies": { "@types/atom": "^1.40.10", "@types/jasmine": "^3.7.2", - "@types/node": "^15.0.2", + "@types/node": "^16.0.0", "@types/rimraf": "^3.0.0", "@types/temp": "^0.9.0", "@types/underscore": "^1.11.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aa550cd1..fd1677ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,56 +1,56 @@ lockfileVersion: 5.3 -specifiers: - '@babel/core': ^7.14.0 - '@babel/node': ^7.13.13 - '@babel/preset-env': ^7.14.1 - '@babel/preset-react': ^7.13.13 - '@types/atom': ^1.40.10 - '@types/jasmine': ^3.7.2 - '@types/node': ^15.0.2 - '@types/rimraf': ^3.0.0 - '@types/temp': ^0.9.0 - '@types/underscore': ^1.11.2 - '@types/uuid': ^8.3.0 - ansi-to-html: ^0.6.14 - atom-message-panel: 1.3.1 - atom-space-pen-views-plus: ^3.0.4 - coffeescript: ^2 - eslint-config-atomic: ^1.14.4 - prettier-config-atomic: ^2.0.4 - rimraf: ^3.0.2 - strip-ansi: <7.0.0 - temp: ^0.9.4 - underscore: ^1.13.1 - uuid: ^8.3.2 - -dependencies: - '@babel/core': 7.14.0 - '@babel/node': 7.13.13_@babel+core@7.14.0 - '@babel/preset-env': 7.14.1_@babel+core@7.14.0 - '@babel/preset-react': 7.13.13_@babel+core@7.14.0 - ansi-to-html: 0.6.14 - atom-message-panel: 1.3.1 - atom-space-pen-views-plus: 3.0.4 - rimraf: 3.0.2 - strip-ansi: 6.0.0 - temp: 0.9.4 - underscore: 1.13.1 - uuid: 8.3.2 - -optionalDependencies: - coffeescript: 2.5.1 - -devDependencies: - '@types/atom': 1.40.10 - '@types/jasmine': 3.7.2 - '@types/node': 15.0.2 - '@types/rimraf': 3.0.0 - '@types/temp': 0.9.0 - '@types/underscore': 1.11.2 - '@types/uuid': 8.3.0 - eslint-config-atomic: 1.14.4 - prettier-config-atomic: 2.0.4 +importers: + + .: + specifiers: + '@babel/core': ^7.14.0 + '@babel/node': ^7.13.13 + '@babel/preset-env': ^7.14.1 + '@babel/preset-react': ^7.13.13 + '@types/atom': ^1.40.10 + '@types/jasmine': ^3.7.2 + '@types/node': ^16.0.0 + '@types/rimraf': ^3.0.0 + '@types/temp': ^0.9.0 + '@types/underscore': ^1.11.2 + '@types/uuid': ^8.3.0 + ansi-to-html: ^0.6.14 + atom-message-panel: 1.3.1 + atom-space-pen-views-plus: ^3.0.4 + coffeescript: ^2 + eslint-config-atomic: ^1.14.4 + prettier-config-atomic: ^2.0.4 + rimraf: ^3.0.2 + strip-ansi: <7.0.0 + temp: ^0.9.4 + underscore: ^1.13.1 + uuid: ^8.3.2 + dependencies: + '@babel/core': 7.14.0 + '@babel/node': 7.13.13_@babel+core@7.14.0 + '@babel/preset-env': 7.14.1_@babel+core@7.14.0 + '@babel/preset-react': 7.13.13_@babel+core@7.14.0 + ansi-to-html: 0.6.14 + atom-message-panel: 1.3.1 + atom-space-pen-views-plus: 3.0.4 + rimraf: 3.0.2 + strip-ansi: 6.0.0 + temp: 0.9.4 + underscore: 1.13.1 + uuid: 8.3.2 + optionalDependencies: + coffeescript: 2.5.1 + devDependencies: + '@types/atom': 1.40.10 + '@types/jasmine': 3.7.2 + '@types/node': 16.4.1 + '@types/rimraf': 3.0.0 + '@types/temp': 0.9.0 + '@types/underscore': 1.11.2 + '@types/uuid': 8.3.0 + eslint-config-atomic: 1.14.4 + prettier-config-atomic: 2.0.4 packages: @@ -1268,8 +1268,8 @@ packages: resolution: {integrity: sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==} dev: true - /@types/node/15.0.2: - resolution: {integrity: sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==} + /@types/node/16.4.1: + resolution: {integrity: sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q==} dev: true /@types/rimraf/3.0.0: From 9cd280209a888ebe05c658fca52796366728a426 Mon Sep 17 00:00:00 2001 From: William Andrea Date: Thu, 3 Feb 2022 02:15:58 -0500 Subject: [PATCH 408/410] docs: minor fixes (#2637) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d3032da0..4fab7bed 100644 --- a/README.md +++ b/README.md @@ -320,7 +320,7 @@ If you _really_ wish to open atom from a launcher/icon, see [this issue for a va ## Usage -Make sure to run `atom` from the command line to get full access to your environment variables. Running Atom from the icon will launch using launchctl's environment. +Make sure to run `atom` from the command line to get full access to your environment variables. On macOS, running Atom from the icon will launch using launchctl's environment. **Script: Run** will perform a "File Based" run when no text is selected (default). @@ -328,7 +328,7 @@ Make sure to run `atom` from the command line to get full access to your environ **Script: Run by Line Number** to run using the specified line number. **Note** that if you select an entire line this number could be off by one due to the way Atom detects numbers while text is selected. -**Script: Configure Script** should be used to configure command options, program arguments, and environment variables overrides. Environment variables may be input into the options view in the form `VARIABLE_NAME_ONE=value;VARIABLE_NAME_TWO="other value";VARIABLE_NAME_3='test'`. +**Script: Run Options** should be used to configure command options, program arguments, and environment variables overrides. Environment variables may be input into the options view in the form `VARIABLE_NAME_ONE=value;VARIABLE_NAME_TWO="other value";VARIABLE_NAME_3='test'`. Also, in this dialog you can save options as a profile for future use. For example, you can add two profiles, one for `python2.7` and another for `python3` and run scripts with a specified profile, which will be more convinient than entering options every time you want to switch python versions. From 7cac1a7d3c27101c045683c4280b5d66953060b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 23:16:55 -0800 Subject: [PATCH 409/410] chore(deps): update actions/setup-node action to v2 (#2523) Co-authored-by: Renovate Bot --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 7529bed3..24d3c8c9 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -61,7 +61,7 @@ jobs: steps: - uses: actions/checkout@v2 - uses: UziTech/action-setup-atom@v1 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: node-version: "12.x" - name: NPM install From a8d3dfc217ff264d2b7eff8ed6eedece18858ba2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 23:17:07 -0800 Subject: [PATCH 410/410] chore(deps): update wagoid/commitlint-github-action action to v4 (#2525) Co-authored-by: Renovate Bot --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 24d3c8c9..09ddf6d7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -41,7 +41,7 @@ jobs: with: fetch-depth: 0 - name: Commit lint ✨ - uses: wagoid/commitlint-github-action@v2 + uses: wagoid/commitlint-github-action@v4 - name: Install dependencies run: npm install